跳到主要内容

从3.x迁移

当前发布版本为节点**4.1.0、钱包4.1.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:102。奖励步骤并非全部为减半;参见发行。

内核(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从3.6.0起由钱包使用,因此在4.x中并非新增内容,它添加了携带每条消息ID的Made确认,使slate仅在接收方确认已处理后才标记为已送达。与早于3.5.2的客户端的兼容性得以保留。参见协议。

广播后的内存池(mempool)确认​

钱包在广播交易后监视节点的内存池(mempool),并在交易出现时记录一个独立状态。这一等待是发送操作看起来无响应的原因,详见发送操作看似挂起;它还会将已广播的转账移出cancel_tx所接受的集合,详见取消操作的前提条件。

epicbox中继实现已变更​

中继是EpicCash/epic-epicbox-docker,Node.js配合Rust验证辅助程序。其部署拓扑和存储在epicbox参考中说明。

需在集成中检查的行为​

  • tx_lock_outputs在手动发送流程中是必需的。参见哪些操作会预留输出。
  • Epicbox将所有slate转换为V2,这会丢弃支付证明请求。参见传输方式对比。
  • change_password会删除备份助记词,除非传入--remove-backup。
  • 同步验证默认值的形式已变更。skip_pow_validation默认为true,disable_checkpoints默认为false。在mainnet上,工作量证明仅在最后一个检查点之前跳过,在其之上完整验证,且disable_checkpoints被忽略。参见节点与钱包设置。

4.1.0 的变更​

节点和钱包4.1.0收紧了身份验证。针对4.0.x正常工作的集成可能开始收到401响应。

  • 钱包Owner API需要HTTP Basic认证。/v3/owner和/v2/owner在v3令牌之上,还需要用户名epic和.owner_api_secret的内容。参见钱包的owner访问。
  • **节点的/v1和/v2/owner默认拒绝访问。**未配置机密时,它们返回401而非开放运行。只有GET /v1/version和一个普通get_status调用无需凭据即可响应。参见节点凭据。
  • 新增Foreign方法ready_for_txs,无需凭据即可报告节点是否已同步。钱包用它替代owner的get_status。参见各方法的归属。
  • **钱包发送节点机密的频率大幅降低。**它不再向/v2/foreign发送机密,因此设置了foreign_api_secret_path的节点无法为其提供服务。参见钱包向节点提交的凭据。
  • **/v1/kerneldownload已移除。**参见v1路由。
  • disable_checkpoints默认值为false,在mainnet上被忽略, 并且在区块高度3,710,000处新增了一个检查点,即13,移动了跳过范围的末端。请参阅同步验证设置。

下一步​