Skip to main content

参考配置

CONFIG_FILES

说明:(仅限环境变量)要加载的附加配置文件路径列表(例如 hyperlane-monorepo/rust/config 中的路径)。它们将按照从第一个到最后一个的顺序进行合并,因此如果第一个和最后一个都指定了特定的配置路径,那么将使用最后一个文件中设置的值。

这些文件必须在代理程序可以访问的文件系统中可访问。如果您正在运行Docker,请参阅代理配置指南中有关将配置文件挂载到 Docker 容器中的提示。

Optional: Yes

Agents: All

Type: string (用逗号分隔的文件路径列表)

在参数不支持。

chains

说明: 每个代理必须使用的链的配置。

Optional: No

Agents: All

Type: Map<string, ChainSetup (Object)> (See chains.* for ChainSetup values)

--chains.${CHAIN_NAME}.*

chains.<chain_name>.name

说明: 域名的名称。允许指定与链的真实名称不同的名称。这几乎总是应该与 chain_name 相同。

Requires: 如果是已知的域名,则需要与域 ID 对齐。

Optional: No

Agents: All

Type: string

--chains.${CHAIN_NAME}.name $DOMAIN_NAME
--chains.ethereum.name ethereum

chains.<chain_name>.domain

说明: 用于唯一标识域的hyperlane域ID。另请参阅:Domain Identifiers

Requires: 如果是已知域名,则与域名一致。

Optional: No

Agents: All

Type: Numeric (string | number)

--chains.${CHAIN_NAME}.domain $DOMAIN_ID
--chains.ethereum.domain 1

chains.<chain_name>.mailbox

说明: 链上邮箱合约的地址。另请参阅 [contract addresses](.../reference/contract-addresses.mdx)。

Optional: No

Agents: All

Type: Hash (string)

--chains.${CHAIN_NAME}.mailbox "$MAILBOX_ADDRESS"
--chains.ethereum.mailbox "0x35231d4c2D8B8ADcB5617A638A0c4548684c7C70"

chains.<chain_name>.interchainGasPaymaster

说明: 链上链间燃料主合同的地址。另请参阅 [contract addresses](.../reference/contract-addresses.mdx)。

Optional: No

Agents: All

Type: Hash (string)

--chains.${CHAIN_NAME}.interchainGasPaymaster "$IGP_ADDRESS"
--chains.ethereum.interchainGasPaymaster "0x6cA0B6D22da47f091B7613223cD4BB03a2d77918"

chains.<chain_name>.validatorAnnounce

说明: 链上验证公告合约的地址。另请参阅 [contract addresses](.../reference/contract-addresses.mdx)。

Optional: No

Agents: All

Type: Hash (string)

--chains.${CHAIN_NAME}.validatorAnnounce "$VALIDATOR_ANNOUNCE_ADDRESS"
--chains.ethereum.validatorAnnounce "0x9bBdef63594D5FFc2f370Fe52115DdFFe97Bc524"

chains.<chain_name>.merkleTreeHook

说明: 链上merkle树钩子合约的地址。另请参阅 [contract addresses](.../reference/contract-addresses.mdx)。

Optional: No

Agents: All

Type: Hash (string)

--chains.${CHAIN_NAME}.merkleTreeHook "$MERKLE_TREE_HOOK_ADDRESS"
--chains.ethereum.merkleTreeHook "0x48e6c30B97748d1e2e03bf3e9FbE3890ca5f8CCA"

chains.<chain_name>.signer

说明: 本链应使用的签名者

Optional: Yes(如果未指定,将使用 defaultsigner)

Agents: All

Type: SignerConf (Object)

--chains.${CHAIN_NAME}.signer.*

chains.<chain_name>.signer.type

说明: 定义的签名者类型。HexKey 签名者使用私钥,Aws 签名者使用基于 AWS 的 KMS,而 Node 则假设本地节点将签署 RPC 调用。

Optional: Yes;默认设置为 node,除非指定了 key,在这种情况下默认设置为 hexKey

Agents: All

Type: Enum ("hexKey" | "aws" | "cosmosKey" | "node")

Accepted values for the different VMs are:

  • EVM: hexKey (ECDSA) or aws (ECDSA)
  • sealevel: hexKey (ED25519)
  • cosmos: cosmosKey
--chains.${CHAIN_NAME}.signer.type hexKey
--chains.ethereum.signer.type node

chains.<chain_name>.signer.key

说明: 本地十六进制密钥。私人密钥的十六进制字符串。

Requires: chains.<chain_name>.signer.type = "hexKey" | undefined

Optional: No(如果符合要求)

Agents: All

Type: string

--chains.${CHAIN_NAME}.signer.key "8166f546bab6da521a8369cab06c5d2b9e46670292d85c875ee9ec20e84ffb61"

chains.<chain_name>.signer.id

说明: 标识 AWS KMS 密钥的 UUID

Requires: chains.<chain_name>.signer.type = "aws"

Optional: No(如果符合要求)

Agents: All

Type: string

--chains.ethereum.signer.type "alias/validator-signer-ethereum"

chains.<chain_name>.signer.region

说明: AWS 区域

Requires: chains.<chain_name>.signer.type = "aws"

Optional: No(如果符合要求)

Agents: All

Type: string

--chains.${CHAIN_NAME}.signer.region us-east-1

chains.<chain_name>.protocol

说明:* 使用的连接协议。

Optional: 默认设置为"ethereum"

Agents: All

Type: Enum ("ethereum" | "fuel")

--chains.${CHAIN_NAME}.protocol ethereum
--chains.ethereum.protocol ethereum

chains.<chain_name>.rpcConsensusType

info

共识类型目前只适用于 EVM 链。

与非 EVM 链的连接只支持一个 RPC url。如果在 rpcUrls中指定了多个 RPC 网址,则只会使用第一个。

**说明:**与提供者进行通信的方式

  • "single" 使用基本的 http 连接
  • "fallback" 将首先尝试第一个 URL,然后在连接或其他提供者故障时自动“退回”到下一个提供者;这应该只重新尝试由于提供者而失败的调用,而不是调用本身;例如,不足的 gas 错误不会回退。
  • "quorum" 要求大多数 URL 同步一致,但提交事务除外;如果没有指定,它会自动协调 "最新 "区块,以减少同步错误。

Requires: chains.<chain_name>.protocol = "ethereum" | undefined

Optional: Defaults to "fallback"

Agents: All

Type: Enum ("fallback", "single", "quorum")

--chains.${CHAIN_NAME}.rpcConsensusType single

chains.<chain_name>.customRpcUrls

info

与非 EVM 链的连接只支持一个 RPC 网址。如果指定了多个 RPC 网址,则只会使用第一个。

*说明:**用于连接提供者的URL逗号以分隔。customRpcUrlsrpcUrls 之间的区别在于,customRpcUrls 允许从 CLI 或环境变量中输入更加用户友好的内容(逗号分隔 vs 数组)。

Type: string (以逗号分隔的网址列表,不含空格)

--chains.${CHAIN_NAME}.customrpcurls "$CONNECTION_URLS"
--chains.ethereum.customrpcurls "http://127.0.0.1:8545,http://127.0.0.1:8546,http://127.0.0.1:8547"

chains.<chain_name>.rpcUrls

info

与非 EVM 链的连接只支持一个 RPC 网址。如果指定了多个 RPC 网址,则只会使用第一个。

说明: 用于连接提供者的 URL。最初使用第一个,如果失败,则尝试其他的。有关更多信息,请参阅 rpcConsensusType

Requires:

(chains.`<chain_name>`.protocol = "ethereum" | undefined)
AND (chains.`<chain_name>`.connection.type = "fallback" | "quorum")
OR chains.`<chain_name>`.protocol = "cosmos" | "sealevel" | "fuel"

Optional: No (如果满足要求)

Agents:

Type: string

--chains.${CHAIN_NAME}.rpcurls.0.https "$CONNECTION_URL_0"
--chains.${CHAIN_NAME}.rpcurls.1.https "$CONNECTION_URL_1"
--chains.${CHAIN_NAME}.rpcurls.2.https "$CONNECTION_URL_2"
--chains.ethereum.rpcurls.0.https "http://127.0.0.1:8545"
--chains.ethereum.rpcurls.1.https "http://127.0.0.1:8546"
--chains.ethereum.rpcurls.2.https "http://127.0.0.1:8547"

chains.<chain_name>.index.from

说明: 开始索引合约的高度。

Optional: Defaults to 0

Agents: Relayer & Scraper

Type: Numeric (string | number)

--chains.${CHAIN_NAME}.index.from 0
--chains.ethereum.index.from 16271503

chains.<chain_name>.index.chunk

说明: 一次查询索引合约的区块数。请注意,配置的提供者必须支持设置的任何值。默认值几乎适用于所有提供者。

Optional: 默认设置为 1999

Agents: Relayer & Scraper

Type: Numeric (string | number)

--chains.${CHAIN_NAME}.index.chunk 1999
--chains.ethereum.index.chunk 1999

defaultsigner

info

由于每个 VM 支持不同的签名者类型,因此默认签名者只能支持单个 VM 类型。例如,如果默认签名者是 ECDSA 类型,则只能在 EVM 链上签名。

说明: 默认的签名者应该用于所有没有指定自己的链。

Optional: Yes

Agents: All

Type: SignerConf (Object)

--defaultSigner.*

defaultsigner.type

说明: 已定义的签名者类型。HexKey "签名者使用私钥,"Aws "签名者使用基于 AWS 的 KMS,而 "Node "则假定本地节点将签署 RPC 调用。

Optional: 是;默认设置为 node,除非指定了 key,在这种情况下默认设置为 hexKey

Agents: All

Type: Enum ("hexKey" | "aws" | "cosmosKey" | "node")

--defaultSigner.type hexKey

defaultsigner.key

说明: 本地十六进制密钥。私人密钥的十六进制字符串。

Requires: defaultsigner.type = "hexKey" | undefined

Optional: No (如果符合要求)

Agents: All

Type: string

--defaultSigner.key "8166f546bab6da521a8369cab06c5d2b9e46670292d85c875ee9ec20e84ffb61"

defaultsigner.id

说明: 识别 AWS KMS 密钥的 UUID

Requires: defaultsigner.type = "aws"

Optional: No (如果符合要求)

Agents: All

Type: string

--defaultSigner.id "alias/validator-signer-ethereum"

defaultsigner.region

说明:* AWS 区域

Requires: defaultsigner.type = "aws"

Optional: No (如果符合要求)

Agents: All

Type: string

--defaultSigner.region us-east-1

metricsport

说明: 在以下平台上公开 prometheus 指标的端口

Optional: Defaults to 9090

Agents: All

Type: Numeric (string | number)

--metrics-port 9090

log.fmt

说明: 日志模块的配置。它控制日志记录。

Optional: 默认设置为 pretty

Agents: All

Type: Enum ("pretty" | "json" | "full" | "compact")

--log.fmt pretty

log.level

Description: 日志模块的配置。这控制了日志记录。要获得完整的详细信息(包括依赖项),请使用dependencyTrace

Optional: 默认设置为 info

Agents: All

Type: Enum ("dependencyTrace" | "trace" | "debug" | "info" | "warn" | "error" | "off")

--log.level info

originchainname

说明: 验证者应验证的链的名称以及中继器应从中中继消息的链的名称。 已弃用 Relayer,请使用 #relaychains 代替。

Optional: No - Validators; Yes - Relayer

Agents: Validator & Relayer

Type: string

--originChainName ethereum

validator

说明: 验证器应使用的签名。

Optional: Yes

Agents: All

Type: SignerConf (Object)

--validator.*

validator.type

说明: 已定义的 EVM 签名器类型。请注意,无论验证器在哪个虚拟机上运行,检查点始终使用 EVM ECDSA 曲线签名。HexKey "签名器使用私钥,"Aws "签名器使用基于 AWS 的 KMS,而 "Node "则假定本地节点将签署 RPC 调用。

Optional: Yes; 默认为 node,除非指定了一个 key,在这种情况下,默认为 hexKey

Agents: All

Type: Enum ("hexKey" | "aws" | "node")

--validator.type hexKey

validator.key

说明: 一个本地的十六进制密钥。私钥的十六进制字符串。

Requires: validator.type = "hexKey" | undefined

Optional: No (如果符合要求)

Agents: All

Type: string

--validator.key 8166f546bab6da521a8369cab06c5d2b9e46670292d85c875ee9ec20e84ffb61

validator.id

说明: 标识 AWS KMS 密钥的 UUID

Requires: validator.type = "aws"

Optional: No (如果符合条件)

Agents: All

Type: string

--validator.id "alias/validator-signer-ethereum"

validator.region

说明: AWS 地区

Requires: validator.type = "aws"

Optional: No (如果符合条件)

Agents: All

Type: string

--validator.region us-east-1

checkpointsyncer.type

说明: 定义同步检查点的方法

Optional: No

Agents: Validator

Type: Enum ("localStorage" | "s3")

--checkpointSyncer.type localStorage

checkpointsyncer.path

说明: 本地存储类型检查点同步器配置在本地磁盘上的路径。

Requires: checkpointsyncer.type = "localStorage"

Optional: No (如果符合条件)

Agents: Validator

Type: string

--checkpointSyncer.path "/tmp/syncer"

checkpointsyncer.bucket

说明: S3 存储名称

Requires: checkpointsyncer.type = "s3"

Optional: No (如果符合条件)

Agents: Validator

Type: string

--checkpointSyncer.bucket signatures-ethereum

checkpointsyncer.region

说明: S3 存储地区

Requires: checkpointsyncer.type = "s3"

Optional: No (如果符合条件)

Agents: Validator

Type: string

--checkpointSyncer.region us-east-1

interval

说明: 验证器检查新检查点的频率(以秒为单位)。另请参阅latencies

Optional: No

Agents: Validator

Type: Numeric (string | number)

--interval 30

db

说明: 这是代理在磁盘上存储相关数据的本地文件系统路径。每个代理的路径必须是唯一的! 多个代理必须有不同的路径。如果路径不是以系统定义的根路径(如 unix 上的 /)开始,则是相对于当前工作目录的路径。使用 docker 镜像时,请确保该文件夹在运行过程中得到持久保存。

对于 scraper,这是 postgresql 数据库的连接字符串。

Optional: 对于验证器和中继器来说,它是可选项,默认为当前工作目录中包含 originchainname 的路径。对于scraper则为必填项。

Agents: All

Type: string

# Validator
--db "/tmp/hyp/validator/ethereum-cache"

# Relayer
--db "/tmp/hyp/relayer/ethereum-cache"

# Scraper
--db "postgresql://postgres:password@localhost:5432/dbname"

relaychains

说明: 在两个链之间传递信息的链列表。

Optional: No

Agents: Relayer

Type: string (逗号分隔列表)

--relayChains "arbitrum,ethereum,bsc"

gaspaymentenforcement

说明: 以最高优先级为第一的 JSON 字符串化数组,其中包含燃料支付执行配置。最后一个策略应该是一个全捕获策略,处理任何未匹配到之前策略的消息。

Optional: 默认为不强制执行 ([{"type": "none"}])

Agents: Relayer

Type: JSON (string)

type gaspaymentenforcement = Array<GasPaymentEnforcementPolicy>;

type GasPaymentEnforcementPolicy =
( // 每种类型的特定字段...
// 无要求--无论是否支付燃气费,所有信息均得到处理
{ type: "none" }
// 将处理已支付最低金额的信息
& { type: "minimum", payment: U256 }
// 外链上所需的燃料费已按以下规定支付
// 到链上费用报价。`gasfraction` 默认为 "1 / 2"。
& { type: "onChainFeeQuoting", gasfraction?: GasFraction }
) | { // 所有类型都有以下字段...
// 如果有匹配的信息,就会使用该策略。
// 如果没有指定匹配列表,则所有信息都将匹配。
matchingList?: MatchingList
};

// 一组匹配规则。如果消息符合列表中的任何规则,则认为匹配。
// 元素与消息匹配。
type MatchingList = Array<MatchingListElement>;

// 如果提供的任何值匹配,则匹配消息。
interface MatchingListElement {
originDomain?: NumericFilter
senderAddress?: HashFilter
destinationDomain?: NumericFilter
recipientAddress?: HashFilter
}

type NumericFilter = Wildcard | U32 | Array<U32>;
type HashFilter = Wildcard | H256 | Array<H256>;

// 32-bit unsigned integer
type U32 = number | string;
// 256-bit unsigned integer; Note: `number` type has limited precision.
type U256 = string | number;
// 256-bit hash (can also be less) encoded as hex
type H256 = string;
// Matches anything
type Wildcard = "*";
// 一个形式为 `{分子} / {分母}` 的数字字符串,例如 "1 / 2"。
type GasFraction = string;
--gasPaymentEnforcement '[{"type": "none", "matchingList": [{"senderAddress": "0xa441b15fe9a3cf56661190a0b93b9dec7d041272"}]}, {"type": "minimum", "payment": 100000}]'

whitelist

说明: 匹配列表,用于定义应允许哪些消息。任何不符合此列表的消息都不会被中继。如果未提供白名单,则将允许所有消息。

另请参阅 信息过滤

Optional: Yes

Agents: Relayer

Type: JSON (string)

// 匹配规则列表。如果消息与列表中的任何规则匹配,则视为匹配。
// 元素与消息匹配。
type MatchingList = Array&#x3C;MatchingListElement>;

// 如果提供的任何值匹配,则匹配消息。
interface MatchingListElement {
originDomain?: NumericFilter
senderAddress?: HashFilter
destinationDomain?: NumericFilter
recipientAddress?: HashFilter
}

type NumericFilter = Wildcard | U32 | Array&#x3C;U32>;
type HashFilter = Wildcard | H256 | Array&#x3C;H256>;

// 32-bit unsigned integer
type U32 = number | string;
// 256-bit hash (can also be less) encoded as hex
type H256 = string;
// Matches anything
type Wildcard = "*";
--whitelist '[{"senderAddress": "0xa441b15fe9a3cf56661190a0b93b9dec7d041272", "originDomain": [1, 42]}, {"destinationDomain": 1}]'

blacklist

说明: 一个匹配列表,用于定义应该被忽略的消息。与此列表匹配的任何消息都不会被中继。如果未提供黑名单,则将允许所有消息。

另请参阅 信息过滤

Optional: Yes

Agents: Relayer

Type: JSON (string)

type blacklist = MatchingList | undefined;

// 一个匹配规则列表。如果消息与列表中的任何规则匹配,则匹配。
// 元素与消息匹配。
type MatchingList = Array<MatchingListElement>;

// 如果提供的任何值匹配,则匹配消息。
interface MatchingListElement {
originDomain?: NumericFilter
senderAddress?: HashFilter
destinationDomain?: NumericFilter
recipientAddress?: HashFilter
}

type NumericFilter = Wildcard | U32 | Array<U32>;
type HashFilter = Wildcard | H256 | Array<H256>;

// 32-bit unsigned integer
type U32 = number | string;
// 256-bit hash (can also be less) encoded as hex
type H256 = string;
// Matches anything
type Wildcard = "*";
--blacklist '[{"senderAddress": "0xa441b15fe9a3cf56661190a0b93b9dec7d041272", "originDomain": [1, 42]}, {"destinationDomain": 1}]'

transactiongaslimit

说明: 中继交易的最大允许燃料。

Optional: 默认设置无限制

Agents: Relayer

Type: Numeric (string | number)

--transactionGasLimit 250000000

skiptransactiongaslimitfor

说明: 跳过应用 transactiongaslimit 的域 ID 列表。

Optional: 默认情况下,所有域都使用 "transactiongaslimit"。

Agents: Relayer

Type: string (以逗号分隔的域 ID 列表)

--skipTransactionGasLimitFor "43114,10,42220"

allowlocalcheckpointsyncers

说明: 是否允许本地 checkpointsyncer 类型,如果为 false,则忽略它们。

Optional: 默认设置为 false

Agents: Relayer

Type: boolean

--allowLocalCheckpointSyncers false

AWS_ACCESS_KEY_ID

说明: (仅限 Env)验证器的 AWS IAM 用户的访问密钥 ID。

Optional: 如果签名者配置中使用了 aws 则必须填写

Agents: Relayer & Validator

Type: string

Not supported as an argument

AWS_SECRET_ACCESS_KEY

说明: (仅限 Env)验证器 AWS IAM 用户的秘密访问密钥。

Optional: 如果签名者配置中使用了 aws 则必须填写

Agents: Relayer & Validator

Type: string

Not supported as an argument