eRPC配置指南:YAML/TypeScript配置文件与validate、dump命令完全掌握
2026/8/27 15:03:47 网站建设 项目流程

eRPC配置指南:YAML/TypeScript配置文件与validate、dump命令完全掌握

【免费下载链接】erpceRPC — fault-tolerant evm rpc proxy项目地址: https://gitcode.com/gh_mirrors/erpc1/erpc

eRPC 是一个容错型 EVM RPC 代理,它的核心就是一份配置文件:你可以用 YAML 或 TypeScript 描述上游节点、网络、缓存与限流策略,然后用validate命令在部署前查错、用dump命令查看引擎实际加载的最终配置。这篇 eRPC 配置指南带你快速上手这两类配置文件和这两个命令。

eRPC 配置文件如何被找到?

eRPC 启动时会按固定顺序自动查找配置文件,找到第一个存在的即使用:

优先级文件位置
1当前目录下的erpc.yamlerpc.ymlerpc.tserpc.js
2根目录/erpc.yaml/erpc.yml/erpc.ts/erpc.js
3/root/erpc.yaml等同类文件

你也可以用--config指定任意路径,或通过第一个位置参数直接传入(如erpc validate ./config.yaml)。如果什么都没找到,eRPC 会回退到内置的公共 RPC 端点——生产环境建议加上--require-config强制显式配置。

自动发现逻辑在 cmd/erpc/main.go 的getConfig函数中实现。

两种配置格式:YAML 与 TypeScript

YAML(推荐入门):项目自带完整示例 erpc.dist.yaml,涵盖日志级别、JSON-RPC 缓存、限流预算、项目与上游等全部模块,复制后填入 API Key 即可使用。YAML 支持$VAR/${VAR}环境变量展开,密码类字段建议加引号,例如:

redis: addr: "${REDIS_URL}"

TypeScript(推荐进阶):erpc.dist.ts 展示了如何用createConfig构造配置。TS 配置的优势是可以用process.env注入密钥、在selectionPolicy.evalFunc里编写自定义路由函数。两个注意事项:

  • export default必须是文件最后一条语句,否则配置对象会被覆盖丢失;
  • TS 函数在加载时会被转成__ts_fn__:fn_N哨兵标记——这正是dump命令的用途。

用 validate 命令做部署前体检

validate会加载配置、检查未知字段(YAML 严格模式,拼错 key 直接报错)、孤儿限流预算、公共端点等静态问题,输出包含errorswarningsnoticesresources四类信息的报告,并以退出码为准:无错误退出 0,有错误退出 1——天然适合接入 CI 流水线:

# JSON 报告,只看错误列表 erpc validate --config ./erpc.yaml --format json | jq .errors # Markdown 报告,适合贴进 PR 评论 erpc validate --config ./erpc.ts --format md

注意:validate会静默所有日志,问题都体现在输出里,不用担心 stderr 干扰。校验报告由 erpc/config_analyzer.go 生成。

用 dump 命令查看"真实生效"的配置

配置文件里大量字段省略了默认值,TS 函数也不会原样出现在配置里——dump命令解决的就是"我到底在跑什么"这个疑问。它会:

  1. 补全所有默认值(SetDefaults同款逻辑);
  2. 把每个网络的selectionPolicy填充为引擎实际使用的有效策略;
  3. 将 TS 函数解析回源码形态,让你确认闭包是否被正确识别。
# 默认输出 YAML erpc dump --config ./erpc.ts --format yaml # 输出 JSON,方便做程序化 diff erpc dump --config ./erpc.ts --format json | jq .

调试 TypeScript 配置时,先在 dump 输出里看到__ts_fn__:fn_0这样的哨兵,就能确认函数没有被静默丢弃。

环境变量:密钥不要写进配置文件

eRPC 启动时会自动加载当前目录的.env文件,之后 YAML 里的$VAR占位符会被展开。常用变量:

变量作用
LOG_LEVEL运行时覆盖配置中的logLevel,线上排障神器
LOG_WRITER=console本地开发时切换为人类可读日志
INSTANCE_ID多副本部署时标识实例,避免共享状态冲突

避坑清单

  • YAML 拼错字段名 = 启动失败:严格模式拒绝未知字段,是特性不是缺陷,validate能第一时间抓出;
  • 含特殊字符(:{)的展开值必须加引号,否则 YAML 解析静默出错;
  • --config指定的路径不存在时直接以 1001 退出,不会回退到自动发现;
  • --set覆盖参数目前未实现,想临时改值请改文件或走环境变量;
  • 退出码约定:1001表示配置加载或启动失败,1002表示 HTTP/gRPC 服务致命错误,便于脚本判断。

小结

一份erpc.yaml(或erpc.ts)定义全部行为,validate保证它没有拼写和引用错误,dump让你看到最终生效的完整形态——这三步组合起来,就是 eRPC 配置从编写到上线的完整闭环。配置生效后,还能配合监控面板观察每个上游的错误率与请求分布,随时校准你的 failsafe 策略(hedge、retry、timeout 等)。

【免费下载链接】erpceRPC — fault-tolerant evm rpc proxy项目地址: https://gitcode.com/gh_mirrors/erpc1/erpc

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询