Agent 配置
所有代理都使用相同的配置方法,这是一种多层配置方法,可以轻松地覆盖默认配置。每一层都会覆盖前一层中重叠的值。
配置layers
- ”默认部署“的基本配置在 monorepo 中,所有这些配置都会自动加载;
- 接下来将加载通过
CONFIG_FILES
env var 传入的配置文件;该 env var 应该是一个以逗号分隔的 json 文件路径列表,加载顺序为从第一个到最后一个; - 接下来将读取以
HYP_
为前缀的环境变量; HYP_<AGENT>_
前缀的环境变量将被读取并仅应用于当前代理。例如,RELAYER
、VALIDATOR
和SCRAPER
只读取各自的前缀;- 最后读取命令行参数。
命令行参数
在应用程序名称后添加命令行参数,例如./relayer --originChainNames="test1,test2,test3"
支持以下格式:
--argName argValue
--argName "argValue"
--argName 'argValue'
--argName=argValue
--argName="argValue"
--argName='argValue'
参数名是不区分大小写的,因此在本指南中,为了方便阅读,我们可能会用驼峰小写显示参数名,但 --argName
等同于 --ARGNAME
和 --argname.
。
示例:
{ "db": "/path/to/dir" }
can be set with--db "/path/to/dir"
{ "chains": { "ethereum": { "name": "ethereum" } } }
(abbreviated aschains.ethereum.name
orchains.<chain_name>.name
) can be set with--chains.ethereum.name ethereum
{ "chains": { "avalanche": { "customRpcUrls": "https://some-url.com" } } }
(abbreviated aschains.<chain_name>.customrpcurls
) can be set with--chains.avalanche.customrpcurls "https://some-url.com"
环境参数
配置文件格式是设置非机密内容的首选方式,每次运行都不需要更改,因为它是最容易检查和编辑的格式。如果使用正确的名称,文件中的每个配置值都可以设置为env-var,但是,有一些env-var不能在配置中设置,例如CONFIG_FILES
。
HYP_
和 HYP_<AGENT>_
是等效的前缀,唯一的区别 在于加载顺序,它们可以引用配置文件中的所有配置值。
env名称将是这两个前缀之一,然后是配置值的大写路径组件的下划线分隔路径。
示例:
{ "db": "/path/to/dir" }
可以用HYP_DB="/path/to/dir"
orHYP_RELAYER_DB="/path/to/dir"
{ "chains": { "ethereum": { "name": "ethereum" } } }
(abbreviated aschains.ethereum.name
orchains.<chain_name>.name
) 可以用HYP_CHAINS_ETHEREUM_NAME="ethereum"
orHYP_VALIDATOR_CHAINS_ETHEREUM_NAME="ethereum"
orHYP_RELAYER_CHAINS_ETHEREUM_NAME="ethereum"
...{ "chains": { "avalanche": { "customRpcUrls": "https://some-url.com" } } }
(abbreviated aschains.<chain_name>.customrpcurls
) 可以用HYP_CHAINS_AVALANCHE_CUSTOMRPCURLS="https://some-url.com"
orHYP_VALIDATOR_AVALANCHE_CUSTOMRPCURLS="https://some-url.com"
等等...
使用 Docker 配置文件
在Docker中运行代理会增加额外的复杂性,因为配置文件需要从Docker容器内部访问。可以在the repo中找到的基本配置已经是提供的 Docker 镜像的一部分,并且将默认加载所有配置文件。
要挂载单个配置文件,可以使用标志 --mount type=bind,source=$LOCAL_CONFIG_PATH,target=/config/$CONFIG_NAME,readonly
,然后将配置文件 添加到 CONFIG_FILES
中,以便加载它。
要挂载整个目录,可以使用标志 --mount source=$LOCAL_CONFIG_DIR_PATH,target=/config,readonly
,然后将您想要加载的个别配置文件添加到 CONFIG_FILES
中。
例如,假设您在本地机器上的路径 /home/workspace/ethereum.json
上有一个配置文件,并希望使用它来运行验证器。
docker run -it --mount type=bind,source=/home/workspace/ethereum.json,target=/config/ethereum.json,readonly -e CONFIG_FILES=/config/ethereum.json $DOCKER_IMAGE ./validator
source
是宿主机上的路径,而target
是容器内部相应路径。CONFIG_FILES
应指定容器内部的目标路径中的配置文件。