从3.x迁移
当前发布版本:节点**4.0.3,钱包4.0.0,epicbox协议3.0.0**。
API变更
total_difficulty 是一个对象
每种工作量证明算法的难度分别独立追踪:
{
"total_difficulty": {
"cuckaroo": 0,
"cuckatoo": 1234,
"randomx": 5678,
"progpow": 9012
}
}
区块头用两个字段描述证明
proof命名算法,solution是一个标记联合体,其结构取决于所用算法。在3.x中,单个标量字段承载解。
钱包输出(output)和交易读取支持分页
retrieve_outputs和retrieve_txs接受limit、offset和sort_order,需显式传入。
Status 新增供应量字段
supply和max_supply是以freemen为单位的金额。blocks_to_next_halving是区块数量,位于api/src/types.rs:96。奖励步骤并非全部为减半;参见发行。
内核(kernel)以两种形式出现
get_block返回扁平化的内核(kernel)。get_kernel和get_last_n_kernels返回带有外部标记features字段的原始类型。
命令行变更
参数已移动。当前目录的init -h现为-w,scan -h <height>现为-s <height>,节点的taxes参数现为start_height。新增钱包命令:export_tx、import_tx和change_password,以及转账命令上的--slate_version。所有命令和参数详见配置与CLI。
测试网络上的算法组合由配置键选择,而非命令行参数。参见区块策略。
工具链与构建
每个代码仓库固定了其Rust版本,因此安装rustup即可,不应自行固定版本。构建还需要Rust工具链之外的系统软件包,各平台所需软件包列于从源码构建。
存储变更
钱包以WAL模式将数据存储在db/sqlite/epic.db的SQLite中,其Tor目录为wallet_tor。任何直接读取3.x钱包数据库的代码均需重写。路径和键详见钱包配置。
新行为
捆绑的Tor
使用--features with-tor构建时会下载Tor专家包,并对照已提交的摘要进行验证。发布版本构建不启用该特性。参见本版本未涵盖的内容。
Epicbox确认投递
协议3.0.0新增了携带每条消息id的Made确认,因此只有在接收方确认已处理后,slate才被标记为已送达。与3.5.2之前的客户端保持兼容。参见协议。
广播后的内存池(mempool)确认
钱包在广播交易后监听节点的内存池(mempool),并在交易出现时记录一个独立状态。该等待过程是发送操作看起来无响应的原因,详见发送看起来卡住了;它还会将已广播的转账移出cancel_tx所接受的集合,详见取消有前提条件。
epicbox中继实现已变更
中继是EpicCash/epic-epicbox-docker,即带有Rust验证辅助模块的Node.js。其部署拓扑和存储详见epicbox参考。
需在集成中检查的行为
- 在手动发送流程中
tx_lock_outputs是必需的。参见什么会预留输出。 - Epicbox将所有slate转换为V2,这会丢弃支付证明请求。参见传输方式对比。
change_password会删除备份助记词,除非传入--remove-backup。- 同步验证默认值的形式已变更。
skip_pow_validation和disable_checkpoints默认为true,该模式对已检查点的历史跳过工作量证明验证,同时始终对最近1,000个区块进行完整验证。参见节点与钱包设置。