跳到主要内容

为mainnet设置节点和钱包

Mainnet使用真实价值。本文所有内容均假设你已完成运行本地网络和首次转账中的操作,因为两者的操作机制完全相同,但后果截然不同。

两个进程。一个节点负责验证和中继链,一个钱包负责持有密钥并向节点查询世界状态。你需要一个节点,不需要挖矿。

1. 启动节点​

mainnet是默认网络,因此无需任何参数:

epic

节点在首次运行时写入epic-server.toml,此后从该文件读取配置。编辑该文件是更改行为的常规方式,因为大多数设置仅以配置键的形式存在,而非命令行参数。每个键的修改都需要重启节点。

确认节点已启动。owner接口需要身份验证,机密文件会自动为你创建:

curl -s -u epic:$(cat ~/.epic/main/.api_secret) -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"get_status","params":[],"id":1}' \
http://127.0.0.1:3413/v2/owner

首次同步会下载并验证整条链。预计耗时较长,并会占用实际磁盘空间。

端口​

端口用途默认绑定
3413HTTP API127.0.0.1
3414P2P所有接口
3416Stratum挖矿服务器127.0.0.1,默认关闭

只有P2P端口需要对外部可达。将API保持在回环地址上,并在更改之前阅读身份验证与TLS。所有端口和网络偏移量均在CLI参考中列出。

同步验证设置​

skip_pow_validation默认为true,disable_checkpoints默认为false。在已检查点范围内跳过工作量证明(proof of work)是一种同步速度优化,而非降低安全性的默认设置:跳过的范围终止于一个硬编码检查点,该检查点的哈希值必须匹配,且范围内的每个区块头都链接回该检查点。只有位于13检查点高度处的区块头通过哈希进行比较,其间的区块头不做比较。

区块所在位置在mainnet上执行验证
在检查点范围内,最高至区块高度3,710,000检查点高度处的区块头与硬编码哈希进行比对,不匹配则中止同步。skip_pow_validation为true时跳过工作量证明验证
在最后一个检查点之上始终执行完整工作量证明,无论这些设置如何

只有当批次中的每个区块头都通过检查点验证时,该批次才被视为已检查点。

节点中编译了13个检查点,位于chain/src/types.rs:432。代码为check_header_against_checkpoints(),跳过决策为should_skip_pow(),节点在mainnet上启动时会记录日志,说明适用哪种策略。

disable_checkpoints在mainnet上被忽略。在测试网络上,当skip_pow_validation也为true时,它将跳过范围延伸至最后一个检查点之后,适用于距链顶端超过1,000个区块的区块(POW_VERIFICATION_THRESHOLD)。

将skip_pow_validation = false设置为自行验证所有历史工作量证明。这会导致初始同步时间大幅增加。

节点存储的内容​

chain_data、配置文件、日志文件和API机密。chain_data是占用空间较大的项目,且可以丢弃,因此删除它只需重新同步,不会有其他损失。节点不持有任何密钥,因此其数据目录中的内容无需备份。

2. 创建钱包​

epic-wallet init

系统会要求你设置密码,并显示一个恢复助记词。

Write the recovery phrase down before continuing

助记词是唯一能够重建你的资金的凭据。它仅在此处显示一次,之后只能通过epic-wallet recover查看,而该操作需要密码。

命令效果
epic-wallet init在默认位置创建钱包,~/.epic/main
epic-wallet init -w在当前目录创建。该参数不接受值
epic-wallet init -r从已有恢复助记词恢复

如果种子文件已存在,init -r将拒绝运行,因此若要恢复到一个已有钱包的目录,需先将该钱包移至其他位置。参见备份与恢复。

关闭Tor监听器​

钱包将use_tor_listener默认设置为true,并期望发布版本归档中未附带的Tor二进制文件,因此epic-wallet listen会启动一个后台线程并失败。有两种方式可以关闭它,其中一种是按命令生效:

epic-wallet.toml
[tor]
use_tor_listener = false
epic-wallet listen -n

-n仅在listen上声明(src/cmd/wallet_args.rs:123),因此必须在每个listen上重复指定。配置键适用于该钱包目录中的所有命令,是推荐使用的设置。两者均不影响节点对Tor的使用。

钱包存储的内容​

备份与恢复列出了钱包目录中的每个文件、其内容以及是否需要备份。恢复助记词可重建你的资金,但无法恢复历史记录。交易记录、账户标签和支付证明记录仅存储在数据库中,链上的任何内容都无法重建它们。

钱包开放的端口​

epic-wallet listen在3415上开启Foreign API,epic-wallet owner_api在3420上开启Owner API。Foreign端口由网络决定;Owner端口在所有网络上均为3420,因此同一台机器上的第二个钱包无论运行哪条链,都会在该端口发生冲突。覆盖owner_api_listen_port。完整列表见CLI参考。

3. 将钱包指向节点​

钱包默认连接到回环地址上端口3413的节点。无需配置。

钱包的调用发往节点中无需凭据的接口,因此移动任一目录不会导致连接中断。node_api_secret_path仅用于Tor洋葱地址查找;参见钱包向节点提交的凭据。如需连接其他节点,在epic-wallet.toml中设置check_node_api_http_addr。

epic-wallet info

余额为零且无报错,表示钱包已成功连接节点且节点已响应。401表示节点设置了foreign_api_secret_path,而epic-wallet 4.1.0无法与之配合使用。根据代码,版本早于4.1.0且设置了API机密的节点同样会返回401;该组合尚未经过测试。

将钱包指向公共节点可以正常使用。但该节点会看到钱包查询的输出(output),且钱包不会验证所获得的链状态。

下一步​