“佛罗伦萨”升级与未来:Tezos存储前瞻
与 Nomadic Labs,Marigold 和 DaiLambda 合作,我们很高兴宣布完成下一个 Tezos 协议提案:佛罗伦萨。
Tezos 是一个开源去中心化区块链网络,为智能合约和数字资产提供平台。Tezos 的一个关键功能是自我修正:网络参与者可以自己动态升级网络协议。当参与者提出提案并随后进行表决时,将启动此修订过程。在 Tezos 存储堆栈上工作了几年之后,这是我们对提案的第一个贡献。我们希望它将成为许多中的第一个!
正如 Nomadic Labs 在今天的公告中所详述的那样,佛罗伦萨提案包含了几个重要的变化,从引入烘焙帐户到为智能合约开发人员提供重大的生活质量改善。在所有这些更改中,我们对将“子树”(sub-trees)引入区块链“上下文”(context) API 感到特别兴奋。在本文中,我们将简要介绍这些子树将为 Tezos 的未来带来什么。但是首先,它们是什么?
Merkle 子树
Tezos 协议在被称为“上下文”的版本化的树的上面运行,该树保持链的状态(余额,合同等)。自从前 Alpha 时代以来,就已经使用 Irmin (一个开源 Merkle 树数据库,最初是由 MirageOS unikernels 为使用而编写的)执行 Tezos “上下文”了。
对于 MirageOS, Irmin 的主要优势在于灵活性:它可以在任意后端上运行。这对于必须灵活且可广泛部署的 Tezos 非常适合。实际上,从使用 Git 后端的初始原型到如今使用的优化的 irmin-pack 实施,Tezos 的前端已经多次利用了这种敏捷性。
但是 Irmin 不仅可以交换后端,还可以做更多的事情!它还允许用户使用高级 API 来操纵存储的基础 Merkle 树结构。从可合并数据类型( MRDTs )到零知识证明,“树” API 启用了很多有趣的 Irmin 用例。 Tezos 尚未直接使用这些更强大的功能。这就是 Merkle 证明的来源!
证明以及轻量级 Tezos 客户
由于 Tezos “上下文”跟踪记录了区块链的当前“状态”,因此每个参与者都需要自己的树副本来进行交易。该“上下文”可能会变得非常大,因此,尽可能紧凑地存储它很重要:此目标塑造了我们最新的 Irmin 后端 irmin-pack 的设计。
但是,可以通过 Merkle 树的魔力来进一步降低存储需求:个人只需要存储根树的一个片段,前提是他们可以通过向其他参与者发送其成员的“证明”来证明该片段是有效的。
该属性可用于支持超轻量的 Tezos 客户端, TweagIO 当前正在开发此功能。为了使之成为现实, Tezos 协议需要对“上下文”子树进行细粒度访问,以便从中构建 Merkle 证明。幸运的是, Irmin 已经支持了!我们扩展了协议以了解子树,从而为用户提升了 Merkle 树的能力。
我们很高兴与 TweagIO 和 Nomadic Labs 合作,降低进入 Tezos 生态系统的门槛,并期待看到它们通过子树实现的成就!
高效的 Merkle 证明表达
仅在 Tezos “上下文” API 中公开子树是不够的:轻量级客户端还需要有效地对其进行序列化,因为必须通过网络交换证明以在协作节点之间建立信任。进入 Plebeia 。
Plebeia 是由 DaiLambda 开发的 Tezos 替代存储层,具有与 Irmin 互补的优势。特别是, Plebeia 能够生成非常紧凑的 Merkle 证明。这在一方面是由于其专门的存储结构,一方面是由于巧妙的优化,例如路径压缩和内联。
我们正在与 DaiLambda 团队合作,以结合 Irmin 和 Plebeia 的优势,这将为 Tezos 存储堆栈带来内置的 Merkle 证明支持。Tezos 的 Merkle 证明的前途一片光明!
烘焙帐户迁移
树不仅可以启用新功能;它们对性能也有很大的影响!当前,对“上下文”的索引总是从其根开始的,这在访问树中深处的相邻值时会重复工作。幸运的是,新的子树为”上下文”中的“光标”提供了自然的表达,从而使协议可以优化其与存储层的交互。
仅举一例, DaiLambda 最近利用此功能将把烘焙帐户引入网络所需的迁移时间减少了 15 倍!我们将与 Nomadic Labs 和 DaiLambda 合作,以确保 Tezos 从其存储中提取每一个性能。
获得闪电般快速的存储迁移特别令人兴奋,因为这使 Tezos 甚至在生态系统扩展时也能快速发展。
其他语言存储
当然, Tezos 不仅是 OCaml 项目:存储层还具有高性能的 Rust 实施,作为 TezEdge 的一部分。我们正在与 Simple Staking 合作,通过 FFI 工具链将 Irmin 带入 Rust 社区,从而使不同的 Tezos 前端实施之间的联系更加紧密。
结论
总而言之,这是一个激动人心的时刻,与来自世界各地的许多开源合作伙伴一起致力于 Tezos 存储。我们非常高兴看到 Tezos 充分利用 Irmin 的功能,这将加强两个项目并帮助他们共同成长。
如果这一切听起来都很有趣,您可以使用最新发布的 Irmin 2.5.0 亲自体验。感谢您的阅读,并随时关注 Tezos 的未来开发更新!
Tezos 是一个开源去中心化区块链网络,为智能合约和数字资产提供平台。Tezos 的一个关键功能是自我修正:网络参与者可以自己动态升级网络协议。当参与者提出提案并随后进行表决时,将启动此修订过程。在 Tezos 存储堆栈上工作了几年之后,这是我们对提案的第一个贡献。我们希望它将成为许多中的第一个!
正如 Nomadic Labs 在今天的公告中所详述的那样,佛罗伦萨提案包含了几个重要的变化,从引入烘焙帐户到为智能合约开发人员提供重大的生活质量改善。在所有这些更改中,我们对将“子树”(sub-trees)引入区块链“上下文”(context) API 感到特别兴奋。在本文中,我们将简要介绍这些子树将为 Tezos 的未来带来什么。但是首先,它们是什么?
Merkle 子树
Tezos 协议在被称为“上下文”的版本化的树的上面运行,该树保持链的状态(余额,合同等)。自从前 Alpha 时代以来,就已经使用 Irmin (一个开源 Merkle 树数据库,最初是由 MirageOS unikernels 为使用而编写的)执行 Tezos “上下文”了。
对于 MirageOS, Irmin 的主要优势在于灵活性:它可以在任意后端上运行。这对于必须灵活且可广泛部署的 Tezos 非常适合。实际上,从使用 Git 后端的初始原型到如今使用的优化的 irmin-pack 实施,Tezos 的前端已经多次利用了这种敏捷性。
但是 Irmin 不仅可以交换后端,还可以做更多的事情!它还允许用户使用高级 API 来操纵存储的基础 Merkle 树结构。从可合并数据类型( MRDTs )到零知识证明,“树” API 启用了很多有趣的 Irmin 用例。 Tezos 尚未直接使用这些更强大的功能。这就是 Merkle 证明的来源!
证明以及轻量级 Tezos 客户
由于 Tezos “上下文”跟踪记录了区块链的当前“状态”,因此每个参与者都需要自己的树副本来进行交易。该“上下文”可能会变得非常大,因此,尽可能紧凑地存储它很重要:此目标塑造了我们最新的 Irmin 后端 irmin-pack 的设计。
但是,可以通过 Merkle 树的魔力来进一步降低存储需求:个人只需要存储根树的一个片段,前提是他们可以通过向其他参与者发送其成员的“证明”来证明该片段是有效的。
该属性可用于支持超轻量的 Tezos 客户端, TweagIO 当前正在开发此功能。为了使之成为现实, Tezos 协议需要对“上下文”子树进行细粒度访问,以便从中构建 Merkle 证明。幸运的是, Irmin 已经支持了!我们扩展了协议以了解子树,从而为用户提升了 Merkle 树的能力。
我们很高兴与 TweagIO 和 Nomadic Labs 合作,降低进入 Tezos 生态系统的门槛,并期待看到它们通过子树实现的成就!
高效的 Merkle 证明表达
仅在 Tezos “上下文” API 中公开子树是不够的:轻量级客户端还需要有效地对其进行序列化,因为必须通过网络交换证明以在协作节点之间建立信任。进入 Plebeia 。
Plebeia 是由 DaiLambda 开发的 Tezos 替代存储层,具有与 Irmin 互补的优势。特别是, Plebeia 能够生成非常紧凑的 Merkle 证明。这在一方面是由于其专门的存储结构,一方面是由于巧妙的优化,例如路径压缩和内联。
我们正在与 DaiLambda 团队合作,以结合 Irmin 和 Plebeia 的优势,这将为 Tezos 存储堆栈带来内置的 Merkle 证明支持。Tezos 的 Merkle 证明的前途一片光明!
烘焙帐户迁移
树不仅可以启用新功能;它们对性能也有很大的影响!当前,对“上下文”的索引总是从其根开始的,这在访问树中深处的相邻值时会重复工作。幸运的是,新的子树为”上下文”中的“光标”提供了自然的表达,从而使协议可以优化其与存储层的交互。
仅举一例, DaiLambda 最近利用此功能将把烘焙帐户引入网络所需的迁移时间减少了 15 倍!我们将与 Nomadic Labs 和 DaiLambda 合作,以确保 Tezos 从其存储中提取每一个性能。
获得闪电般快速的存储迁移特别令人兴奋,因为这使 Tezos 甚至在生态系统扩展时也能快速发展。
其他语言存储
当然, Tezos 不仅是 OCaml 项目:存储层还具有高性能的 Rust 实施,作为 TezEdge 的一部分。我们正在与 Simple Staking 合作,通过 FFI 工具链将 Irmin 带入 Rust 社区,从而使不同的 Tezos 前端实施之间的联系更加紧密。
结论
总而言之,这是一个激动人心的时刻,与来自世界各地的许多开源合作伙伴一起致力于 Tezos 存储。我们非常高兴看到 Tezos 充分利用 Irmin 的功能,这将加强两个项目并帮助他们共同成长。
如果这一切听起来都很有趣,您可以使用最新发布的 Irmin 2.5.0 亲自体验。感谢您的阅读,并随时关注 Tezos 的未来开发更新!