查看原文
其他

一起来看看 CKB 2021 主网升级!用 Cell 做分片?这样也行?|CKB Weekly #59

Nervos Community NervosCommunity 2021-07-30


火花


1Nervos CKB 第一次进行网络升级的 RFC 出现了

随着时间的推移,Nervos CKB 在今年的第一次主网升级的内容也已经要公诸于世了,在这里我们能够看到整个主网升级可以大致分成三个部分:

首先是针对 CKB VM 进行了主要升级,其中最重要的升级是加了宏指令融合以及 b 扩展(b extension),这将提高 CKB-VM 的性能;另外在未来升级后 CKB 上有多个版本的 VM 可供选择。

再来,我们也会看到像是新字段会出现在每个区块中,以便于未来 flyclient 等之后版本的升级,最后当然对于 Nervos 网络中既存的各个共识,也都有进行补丁和优化,例如有针对 since、celldeps 以及删除 header deps 不成熟期的这个规则。

这些升级都能够在 RFC 28~ RFC 36 等 RFC 看到,有兴趣的朋友也可以详读 RFC 37 文中对于 CKB 2021 的总览。

RFC 37:CKB 2021 链接:https://github.com/doitian/rfcs/blob/ckb2021-overview/rfcs/0037-ckb2021/0037-ckb2021.md

2、用 Cell 做为分片的基础模型可能吗?有什么好处?

分片是一种当今主流的公链扩容路线之一,分片的概念是将计算、状态存储划分到多条平行链上,以使得吞吐量和性能得以超越单一条链。

然而社区开发者香橙提出了一个有趣的观察:「好像大部分的分片都只考虑了账户模型,或者说 UTXO 模型只考虑转账,而极少有考虑 Extend-UTXO 模型的分片;然而在账户模型下,跨分片交易的设计极为复杂,使得现今的分片设计推进缓慢。」而他有一个有趣的想法,那便是 Nervos 的 Cell 模型很可能是最适合分片的编程模型,分片甚至还能够解决 Layer 2 上数据可用性的问题。

从这个角度出发,香橙提供了如何在单一分片以及多分片输入交易这两种情况下的设计,可能要注意的设计原则,同时提出了 CellDeps 届时也可能会成为 Cell 设计上的一大挑战,甚至可能要起一条所有节点都需要同步的分片链。

香橙说这还是个抛砖引玉的想法。如果对这个设计和主题有兴趣的小伙伴,欢迎点击下方链接,一起加入讨论。

链接:https://talk.nervos.org/t/cell/5988

本次的 CKB Weekly 我们非常感谢 Nervos 社区的香橙对于内容提出的建议和 ReviewCKB Weekly 也时时刻刻欢迎大家任何对于 Nervos 相关的创意和观点,让我们一起碰撞出更多的火花。


(CKB Weekly 火花专栏,随时欢迎你的火花)


CKB


  • (#2883)解决了 ckb2021 出现的所有问题
    https://github.com/nervosnetwork/ckb/pull/2883
  • (#2876) 内置矿工不应忽视区块模板中的扩展字
    https://github.com/nervosnetwork/ckb/pull/2876
  • (#2881) 将 ckb-vm 版本升级到 0.20.0-rc2
    https://github.com/nervosnetwork/ckb/pull/2881
  • (#2837) 当秘密的 REPO_ACCESS_TOKEN 未被设置时,跳过预检步骤
    https://github.com/nervosnetwork/ckb/pull/2837
  • (#2872) 将 semver 从 0.9.0 升级到 1.0.3
    https://github.com/nervosnetwork/ckb/pull/2872
  • (#2874) 将 syn 从 1.0.73 升级到 1.0.74
    https://github.com/nervosnetwork/ckb/pull/2874
  • (#2875) 将 proc-macro2 从 1.0.27 升级到 1.0.28
    https://github.com/nervosnetwork/ckb/pull/2875
  • (#2867) 更新 RFC 编号和链接
    https://github.com/nervosnetwork/ckb/pull/2867
  • (#2870) 用 opentelemetry-rust 取代 metrics-rs
    https://github.com/nervosnetwork/ckb/pull/2870
  • (#2869) 从 CODEOWNERS 中删除 nervosnetwork/ckb-code-review
    https://github.com/nervosnetwork/ckb/pull/2869
  • (#2868) 让脚本错误的构造函数公开以便于编写测试
    https://github.com/nervosnetwork/ckb/pull/2868
  • (#2864) 升级几个依赖项,删除小于v1.0 的 tokio
    https://github.com/nervosnetwork/ckb/pull/2864
  • (#2854) 更好地提示 「迁移 」子程序
    https://github.com/nervosnetwork/ckb/pull/2854
  • (#2777) 升级几个依赖项,以移除最老版本的 rand
    https://github.com/nervosnetwork/ckb/pull/2777
  • (#2857) 修复了标题同步的状态标记问题
    https://github.com/nervosnetwork/ckb/pull/2857
  • (#2863) 避免重复的单元格检查
    https://github.com/nervosnetwork/ckb/pull/2863
  • (#2844) 记录失败的交易结果
    https://github.com/nervosnetwork/ckb/pull/2844

Dev Tools


Godwoken-polyjuice[为 Godwoken 兼容以太坊]
  • (#67) 对 sparse-merkle-tree 进行升级
    https://github.com/nervosnetwork/godwoken-polyjuice/pull/67
  • (#65) 更新 Addition-Features.m
    https://github.com/nervosnetwork/godwoken-polyjuice/pull/65
  • (#64) 重构 evm 内存
    https://github.com/nervosnetwork/godwoken-polyjuice/pull/64
  • (#66) 修复模糊测试问题
    https://github.com/nervosnetwork/godwoken-polyjuice/pull/66

CKBExplorer


Explorer
  • (#816) 在 pool_transaction_entries 中添加 tx_status 的索引
    https://github.com/nervosnetwork/ckb-explorer/pull/816

Layer 2


Godwoken[CKB 上的 Rollup 框架]
  • (#281) 转储交易时花费了意外的 cycles
    https://github.com/nervosnetwork/godwoken/pull/281
  • (#274) 更新 rpc get_block,返回 L2BlockWithStatus
    https://github.com/nervosnetwork/godwoken/pull/274
  • (#280) 将 smt 升级到 0.5.2 rc1
    https://github.com/nervosnetwork/godwoken/pull/280
  • (#276) 处理 layer 1 分叉
    https://github.com/nervosnetwork/godwoken/pull/276
  • (#279) 取消挑战「not burn challenge ckb」
    https://github.com/nervosnetwork/godwoken/pull/276
  • (#277) 添加 to-short-address / to-eth-address cli
    https://github.com/nervosnetwork/godwoken/pull/277
  • (#270) 查询所有者单元格不要检查空游标
    https://github.com/nervosnetwork/godwoken/pull/270
  • (#271) 用 gw_ 或 test_ 作为 rpc 的前缀
    https://github.com/nervosnetwork/godwoken/pull/271
  • (#273)  添加 polyjuice 部署/发送/调用 cli
    https://github.com/nervosnetwork/godwoken/pull/273
  • (#275) 重新调用存储路径
    https://github.com/nervosnetwork/godwoken/pull/275

Cross-chain


Force-bridge[通用的 force bridge 组件]
  • (#180) 添加更改验证器 cli
    https://github.com/nervosnetwork/godwoken/pull/180
  • (#182) 删除具有相同 nonce 的签名记录
    https://github.com/nervosnetwork/force-bridge/pull/182
  • (#179) 添加监控器
    https://github.com/nervosnetwork/force-bridge/pull/179
  • (#177) 修复:linux 上的 docker 错误
    https://github.com/nervosnetwork/force-bridge/pull/177
  • (#176) 修正处理 tx 的限制
    https://github.com/nervosnetwork/force-bridge/pull/176

社区动态




原文链接:
https://ckbweekly.substack.com/
点击阅读原文,即可订阅 CKB Weekly。


点击👇关注即可查看更多精彩内容

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存