前置条件
- monad 版本
0.12.3或更高 - 用于从您所选的归档来源(AWS、R2、MongoDB、MinIO 等)读取的凭证与配置。这些凭证与
monad-archiver所使用的相同;详情请参阅运行归档服务器。
设置
1. 准备区块数据库目录
选择一个目录用于存储 EVM 格式的历史区块。本指南将其称为block-db。
2. 初始化 triedb
创建一个空的triedb:
3. 启动区块写入器
在tmux 中运行或创建一个 systemd 服务以持续下载区块:
monad-archiver 相同的格式,例如 "aws mainnet-deu-009-0" 或 "mongodb ..."。
区块写入器将:
- 从数据源下载所有区块
- 将其转换为 EVM 格式
- 使用 Brotli 压缩数据
- 将区块写入形如
block-db/XM/<block_number>的子目录,其中X = block_number / 1_000_000(每个目录一百万个区块)
block-db 目录下保存一个 latest 文件。如果进程停止,下次启动时会读取 latest 并与 --block-data-source 中可用的最新区块进行比较,然后从该处继续。
4. 配置重放服务
在monad-block-writer 运行的同时,在另一个终端中为 monad-execution 添加以下 systemd 覆盖配置:
请确保
$CHAIN 已在环境中定义。有效选项:ethereum_mainnetmonad_devnetmonad_testnetmonad_mainnet
--block-db-timeout 设置重放服务等待新区块出现在区块数据库中的秒数。如果超时后仍无新区块,重放服务将崩溃并由 systemd 重启。如果发生这种情况,请检查第 3 步中的区块写入器是否仍在运行并向磁盘写入区块。将其设为 0 可禁用重试。
5. 重新加载并启动
在重放主机上运行 RPC
如果您希望在此主机上运行monad-rpc,则必须从 monad-rpc 的 systemd 配置中移除 --ipc-path 标志。
