跳到主要内容

从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_outputsretrieve_txs接受limitoffsetsort_order,需显式传入。

Status 新增供应量字段

supplymax_supply是以freemen为单位的金额。blocks_to_next_halving是区块数量,位于api/src/types.rs:96。奖励步骤并非全部为减半;参见发行

内核(kernel)以两种形式出现

get_block返回扁平化的内核(kernel)。get_kernelget_last_n_kernels返回带有外部标记features字段的原始类型。

命令行变更

参数已移动。当前目录的init -h现为-wscan -h <height>现为-s <height>,节点的taxes参数现为start_height。新增钱包命令:export_tximport_txchange_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_validationdisable_checkpoints默认为true,该模式对已检查点的历史跳过工作量证明验证,同时始终对最近1,000个区块进行完整验证。参见节点与钱包设置

下一步