Skip to main content

Agent 配置

所有代理都使用相同的配置方法,这是一种多层配置方法,可以轻松地覆盖默认配置。每一层都会覆盖前一层中重叠的值。

配置layers

  1. ”默认部署“的基本配置在 monorepo 中,所有这些配置都会自动加载;
  2. 接下来将加载通过 CONFIG_FILES env var 传入的配置文件;该 env var 应该是一个以逗号分隔的 json 文件路径列表,加载顺序为从第一个到最后一个;
  3. 接下来将读取以 HYP_ 为前缀的环境变量;
  4. HYP_<AGENT>_ 前缀的环境变量将被读取并仅应用于当前代理。例如,RELAYERVALIDATORSCRAPER 只读取各自的前缀;
  5. 最后读取命令行参数。

命令行参数

在应用程序名称后添加命令行参数,例如./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 as chains.ethereum.name or chains.<chain_name>.name) can be set with --chains.ethereum.name ethereum
  • { "chains": { "avalanche": { "customRpcUrls": "https://some-url.com" } } } (abbreviated as chains.<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" or HYP_RELAYER_DB="/path/to/dir"
  • { "chains": { "ethereum": { "name": "ethereum" } } } (abbreviated as chains.ethereum.name or chains.<chain_name>.name) 可以用 HYP_CHAINS_ETHEREUM_NAME="ethereum" or HYP_VALIDATOR_CHAINS_ETHEREUM_NAME="ethereum" or HYP_RELAYER_CHAINS_ETHEREUM_NAME="ethereum" ...
  • { "chains": { "avalanche": { "customRpcUrls": "https://some-url.com" } } } (abbreviated as chains.<chain_name>.customrpcurls) 可以用 HYP_CHAINS_AVALANCHE_CUSTOMRPCURLS="https://some-url.com" or HYP_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应指定容器内部的目标路径中的配置文件。