当前位置:主页 > 列表页 > 正文

Casper发布主网1.3.2版本技术更新细节,网络将优先认证使用验证器密钥的节点

2021-08-13 19:45 | 出处: 唐华斑竹


继2021年8月5日Casper测试网发布之后,Casper主网1.3.2版本也将于8月12日上线。以下为本次改版带来的技术升级细节。

亮点

重要时间节点

主网更新到1.3.2版本的重要里程碑。


重要变化

安全性能与稳健性提升

  1. 网络将优先认证使用验证器密钥的节点:与其它节点握手期间,可从公钥看出其是验证器或非验证器,验证器享有认证的优先权。(GitHub:https://github.com/casper-network/casper-node/pull/1428/commits)
  2. 通过删除通信的暂停和重启功能,来简化通信机制:暂停功能是之前版本的冗余功能,以应对路由表出现的大幅波动,由于这种情况未出现,所以目前将相关功能删除,来简化通信组件。(GitHub:https://github.com/casper-network/casper-node/pull/1475)
  3. 限定每个节点的输出流量值:在网络带宽有限的条件下,对于所有节点间的通信,验证器将优先于非验证器,以便在有限条件下共识能够延续。可设置config.toml中的max_non_validating_peer_request_rate。本变更是CEP58(GitHub:https://github.com/casper-network/casper-node/pull/1629GH)的一部分,请在附录中查阅设置细节。
  4. 实现了拒绝失效验证器出块的功能:该功能是CEP43(https://github.com/casper-network/ceps/blob/master/text/0043-better-eviction.md)的一部分,当某个代际中出现了失效或故障的验证器,则拒绝这些验证器在下一代际中出块,并用其它验证器取代它们的席位,这样可以降低丢块率以改善活性。(GitHub:https://github.com/casper-network/casper-node/pull/1404/commits)
  5. 出块器中的转账与其它部署现已分开:由于无法在哈希层面区分部署与转账,存在隐患,现已安排块验证器提前验证,以便于出块器中将它们区分开来。(GitHub:https://github.com/casper-network/casper-node/pull/1446/commits)
  6. 修复了升级后的节点在停止和重启后无法重新加入的问题

功能

  1. 修复了获取历史质押信息时出现的问题:修复前,用户只能通过RPC的state_get_auction_info方法获取历史余额信息,而无法获取历史质押信息;该问题现已通过选择block-identifier参数返回历史拍卖信息的方式予以修复。(GitHub:https://github.com/casper-network/casper-node/pull/1459,https://github.com/casper-network/casper-node/pull/1750)
  2. 修复了最近加入的节点不全被作为区块下载的备用源的问题:当同步线性链时,节点在首次尝试下载区块失败后将停止同步,此时,对于最近加入的节点(尝试加入已升级网络时)不作为区块下载的替代源的问题,已经得到了修复。(GitHub:https://github.com/casper-network/casper-node/pull/1492/commits)

事件流与指标

  1. 将终决签名和部署移至单独的SSE事件流:SSE事件流已一分为三,一个用于最终签名,一个用于部署,第三个用于其他事件。之前的端点将停止工作,请查看终决签名端点URL(https://github.com/casper-network/casper-node/pull/1472)和部署流变更(https://github.com/casper-network/casper-node/pull/1634),此外,已接受的部署其描述也有变化,目前与其它SSE一同包含在DeployAccepted类型中。(GitHub:https://github.com/casper-network/casper-node/pull/1751)
  2. 修复了current_era指标的问题:已修复升级后的current_era指标在首个代际被临时设置为0的问题。

智能合约

  1. 根据Quantstamp审计意见进行第二阶段调整:调整引入了新的基于合约直接调用者,而非发起部署的用户账户/合约的结构来验证拍卖合约功能。在Rust版本合约API库运行环境模块中新增get_call_stack方法,可验证合约的直接调用者及主机端验证调用者的逻辑。(GitHub:https://github.com/casper-network/casper-node/pull/1627/commits)
  2. 改进了本地密钥的支持:合约头介绍引发了版本控制问题,由于本地密钥和合约在不同的存储层,意味着两个不同版本的合约可能访问同一本地密钥下的数据。作为CEP39(https://github.com/mpapierski/ceps/blob/ee-1212-local-key-proposal/text/0039-dictionary.md)的一部分,本地密钥被弃用并在存储层增加了字典密钥API作为单独的密钥空间。合约开发人员将采用字典密钥的方式在单独的密钥空间储存数据。该空间将以URef地址为前缀的格式提供给用户。(GitHub:https://github.com/casper-network/casper-node/pull/1467/commits)
  3. 新增get-account-info客户端命令和RPC:为了查询账户,我们请求全局状态可以通过调用RPC的state_get_item方法,这是1.2.0版本中的非必要功能。在当前1.3.2版本中,客户端新增了RPC的state_get_account_info方法和get-account-info命令来查询账户以精简功能。(GitHub:https://github.com/casper-network/casper-node/pull/1568/commits)

存在的问题

目前该版本未发现恶化的、严重的或高优先级的问题。

行动呼吁

请参考下表,了解Casper主网各用户应采取的行动以及注意事项。


工作规划

下表为路线图及正在开展的新版工作以及cspr.live的变化。


附录



作者郑重申明:截至发文时,作者与文中提及项目皆不存在任何利益关系。
相关文章