Tezos是一个开源的去中心化区块链网络,为智能合约和数字资产提供了一个平台。tezos的关键功能之一是自校正:网络参与者可以自己动态地升级网络协议。这一修订过程将在与会者提出建议并进行表决时启动。在tezos存储堆栈上工作了几年之后,这是我们对这个提议的第一个贡献。我们希望这将是第一次!
正如游牧实验室在今天的公告中所详述的,佛罗伦萨的提案包括几个重要的变化,从引入烘焙账户到为智能合约开发者提供显著的生活质量改善。在所有这些变化中,我们对在区块链上下文API中引入“子树”感到特别兴奋。在本文中,我们将简要介绍这些子树在未来将给tezos带来什么。但首先,它们是什么?
梅克尔子树
tezos协议运行在一个名为“context”的版本树之上,该树维护链的状态(平衡、契约等)。从alpha时代之前开始,irmin,一个最初由mirageos unikernels编写的开源Merkle树数据库,就被用来执行tezos的“上下文”操作。
对于mirageos来说,irmin的主要优势是灵活性:它可以在任何后端运行。这是tezos的理想选择,tezos必须具有灵活性和广泛的可部署性。事实上,从最初使用git后端的原到irmin包的优化实现,tezos前端已经多次利用了这种灵活性。
但irmin不仅可以交换后端,还可以做更多的事情!它还允许用户使用**API操纵存储的底层Merkle树结构。从mrdts到零知识证明,“树”;API支持许多有趣的irmin用例;Tezos没有直接使用这些更强大的功能。这就是梅克尔证据的来源!
久经考验的轻量级tezos客户
由于tezos“上下文”跟踪区块链的当前“状态”,每个参与者都需要自己的树副本来交易。这个“上下文”可能变得非常大,所以尽可能紧凑地存储它是很重要的:这个目标塑造了我们**的irmin后端irmin包的设计。
然而,Merkle树的魔力可以进一步降低存储需求:个人只需要存储根树的一个片段,前提是他们可以通过向其他参与者发送其成员的“证明”来证明该片段是有效的。
这个属性可以用来支持超轻量级的tezos客户端,它目前正由tweeagio开发。为了使之成为现实,tezos协议需要细粒度地访问“上下文”子树,从中构建Merkle证明。幸运的是,irmin支持它!我们将协议扩展到子树的理解,提高了Merkle树对用户的理解能力。
我们很高兴与tweeagio和nomadic实验室合作,降低进入tezos生态系统的障碍,并期待他们通过子树取得的成就!
有效的Merkle证明表达式
仅仅在tezos“context”API中公开子树是不够的:轻量级客户机还需要有效地序列化它们,因为它们必须通过网络交换来证明,以在协作节点之间建立信任。进入平民区。
Plebeia是Dai lambda开发的tezos替代存储层,与irmin优势互补。特别是,平民可以产生非常紧凑的梅克尔证明。这一方面得益于其特殊的存储结构,另一方面也得益于其巧妙的优化,如路径压缩和内联等。
我们正在与Dai lambda团队合作,将irmin和plebeia的优势结合起来,这将为tezos存储堆栈带来内置的Merkle-proof支持。Tezos的Merkle证明了一个光明的未来!
烘焙帐户迁移
树不仅可以启用新功能;它们对性能也有很大的影响!当前,上下文的索引总是从它的根开始,当访问树深处的相邻值时,它会重复。幸运的是,新的子树为“上下文”中的“游标”提供了一个自然的表达式,因此协议可以优化它与存储层的交互。
举一个例子,Dai lambda最近使用了这个特性,将把烘焙帐户引入网络所需的迁移时间减少了15倍!我们将与nomadic labs和Dai lambda合作,确保tezos从其存储中提取每一项性能。
获得闪电般快速的存储迁移尤其令人兴奋,因为它允许tezos在生态系统扩张的同时不断增长。
其他语言存储
当然,tezos不仅仅是一个Ocaml项目:存储层也有一个高性能的rust实现作为tezoEdge的一部分。我们正在使用简单的堆栈,通过FFI工具链将irmin引入rust社区,从而使不同的tezos前端实现之间的连接更加紧密。
结论
总而言之,这是一个激动人心的时刻,可以与来自世界各地的许多开放源码合作伙伴在tezos存储方面进行合作。我们很高兴看到tezos充分利用了irmin的能力,这将加强这两个项目,帮助他们共同成长。
如果这一切听起来很有趣,那么您可以通过irmin2.5.0的**版本亲自体验一下。感谢您的阅读,并时刻关注tezos的未来发展!
文章链接:https://www.btchangqing.cn/255999.html
更新时间:2021年05月12日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。