Posted on 0 comments

Nervos 怎么规划 Layer 2 计划?了解 Godwoken 与 Polyjuice

Nervos 怎么规划 Layer 2 计划?了解 Godwoken 与 Polyjuice

Polyjuice 供给了一种将自界说逻辑注入到 Godwoken 的 Rollup 计划,Godwoken 处理了 Polyjuice 的同享状况问题,一起也供给了更高的 TPS 潜力。…以太坊,技能,数据库,Nervos,Layer 2,Optimistic Rollup,ZK Rollup,Rollup,Polyjuice,项?开展,Godwoken 以太坊 技能 数据库 Nervos Layer 2 Optimistic Rollup ZK Rollup Rollup Polyjuice 项?开展 GodwokenNervos CKB(字节元) 图标 LogoNervos CKB(字节元)区块链作者,团队,专栏,大众号,头条· ·阅览约 8 分钟

Godwoken 和 Polyjuice 是互补的:Polyjuice 供给了一种将自界说逻辑注入到 Godwoken 的 Rollup 计划,Godwoken 处理了 Polyjuice 的同享状况问题,一起也供给了更高的 TPS 潜力。

原文标题:《CKB Style 的区块链乐高:Godwoken 上的 Polyjuice》
撰文:Xuejie Xiao

在研讨 Godwoken、Polyjuice 或其他与区块链相关的东西之前,让咱们首要从曩昔数据库范畴的故事开端说起。

几十年前,人们由于需求更好的东西来安排数据,所以 SQL 数据库 应运而生。ACID 特点 的规划是为了让数据能够在原始创立数年后,依然能够安全地写入和读取。在那个年代,一个数据库只服务于有限数量的人,一台机器(大型机,或后期强壮的微型计算机)就足以支撑一个数据库。

渐渐地,电脑开端遍及,互联网的爆破式开展更是加快了这一进程。很快,单台机器现已无法为数据库供给应有的支撑,所以分布式数据库开端呈现。但是,CAP 定理的发现(从一致性、可用性、分区容错性这三个特性中最多只能挑选两个)给软件工程师带来了巨大的应战。毕竟,他们被迫在 CP 和 AP 数据库之间做出挑选。为了便利参阅,咱们用一个简略的(尽管是独自面的)办法来差异 CP 数据库和 AP 数据库:

CP 数据库保证了整个分布式体系的大局一致性视图;

AP 数据库或许为不同的逻辑部分或分区供给不同的视图。

AP 数据库,来历:https://kgrvamsi.wordpress.com/2013/05/28/riak-in-depth/

从亚马逊的 DynamoDB,再到 MongoDB 的蓬勃开展,其间有一段时刻 AP 数据库受到了广泛的重视。处处都有人在呼叫: 「NoSQL 才是未来!SQL 便是一个过期的东西。」其时的确有许多人都挑选了 NoSQL 处理计划来构建自己的运用程序。在其时看来,数据库的未来处理计划好像的确便是分区的。

但故事并没有完毕。几年后,AP 数据库的缺陷开端浮出水面:当人们在规划体系架构时,来自不同分区的不同视图的确会影响人们的决议计划。

举个比方,假定你是一个依据传统 SQL 数据库构建的开发人员,你只需求关怀逻辑表和它们之间的衔接即可。偶然或许会需求更多的功用查询,但你的数据始终是坚持有序的。但是在 AP 数据库中,你只装备了键值(KV)存储或文档存储。咱们有必要首要规划形式,但在此之上,你有必要处理数据库不同分区发生的不一致写入。这大大添加了运用开发者的作业量,在许多状况下,这也会导致紊乱的数据存储。

即便从 CP 数据库处理计划 DynamoDB 上线并运用至今的 AWS 来看,传统的 SQL 数据库依然在被人们广泛运用。只需在特别状况下,比方购物车逻辑中存在特别的兼并功用,DynamoDB 才会得到许多选用。关于日常开发者正在构建的绝大部分运用来说,AP 数据库很难作为一个很好的挑选。

现在咱们来看看今日评论的热点话题:NewSQL,它坚持了本来 SQL 模型的 ACID 特点,在大多数用例中作为 NoSQL 的替代品而得到遍及。由于规划上的要求,NewSQL 的处理计划大多乃至全部都建立在 CP 模型上:

Google Spanner 是 Google 面向未来的、全球规划的数据库。它遵从 CP 规划,旨在供给比依据 AP 的 BigTable 更好的替代计划;CockroachDB 和 TiDB 都是依据 CP 模型构建的现代开源分布式 SQL 数据库;CitusDB,一个典型的依据 PostgreSQL 的可扩展数据库,也是依据 CP 模型构建的。

还有许多比方能够举,但趋势现已很显着了:开发者巴望经过 CP 体系以进步生产力。前史向 AP 时刻短地做了歪斜,但由于 CP 对开发者的友好性,人们毕竟又回到了 CP 的道路上。

从这个故事中,咱们能够看到,开发者毕竟仍是会挑选那些让他们更有功率的东西。

现在你或许会想:这是一个很长的故事,但这和区块链有什么关系呢?

在 Nervos 中,咱们深信分层的处理计划。这历来都是咱们深思熟虑的成果,是依据咱们在软件职业的丰厚经历而得出的定论。分层让咱们具有了一种设定鸿沟、封装复杂性和供给假定的办法。

咱们职业中有许多东西都是建立在分层架构之上的:网络仓库、编译器根底设施、CPU 架构等等,这样的比方不乏其人。在这个职业,以及人类创立的许多其他职业中,咱们能够看到一些层在构建时躲藏了细节,并一起为上层供给支撑。

即便关于那些以为区块链是一项全新技能的人来说,层的运用也呈现出显着的差异:

在一个分层网络中,中心区块链保证了其买卖的大局一致性;分片区块链的规划供给了不同的分片,每个分片都能够独立作业。

看到这儿,你有没有一种了解的感觉?你细心想想,区块链与分布式数据库是不是十分类似!尽管其间有很大的差异,但在咱们看来,关于分层和分片的评论,类似于曩昔 10 年咱们关于 CP 和 AP 数据库之间的评论:在分层区块链中,你是依据逻辑功用来对上层区块链进行分组,将跨链通讯的需求降到最低;而在分片区块链中,跨链通讯是扩展需求的根底,无法防止。

假以时日,咱们信任分层将会为一切 dApp 开发者带来更显着的优点,就像 NewSQL 数据库的兴起相同。

许多人一直都想知道 CKB 上的 Layer 2 处理计划会是什么姿态的,所以今日,咱们就在这儿向咱们介绍两个互补的项目:

Godwoken 的初始版别Polyjuice 的全面更新

Godwoken:无需答应的 Rollup 结构

现在区块链国际中存在许多扩展计划。有付出通道、Rollup、状况通道、Plasma 等等。

在 Nervos 上,咱们彻底能够支撑一切的这些计划,但实践上,咱们有必要从一个计划开端。在现有的处理计划中,Rollup 是最优的,也是最没有缺陷的。因而,咱们从 Rollup 开端了咱们的旅程。稍后咱们还会看到,由于 CKB 共同的规划,Rollup 比单纯提高 TPS 这种像类固醇般的计划来的更有意义。依据近一年的研讨、规划和完成,咱们现已发布了 Godwoken 的初始版别,也便是咱们的无需答应 Rollup 结构。

Godwoken 的作业原理是经过一组 aggregator 节点搜集专门规划的 Layer 2 买卖,然后将它们打包成 CKB 买卖,提交给 Layer 1 CKB 接纳。从这个意义上来说,Godwoken 的确是以 Layer 2 的方法作业的:

除了 CKB 节点外,还运转着特别的 Godwoken 聚合器节点选用专门规划的 Layer 2 买卖格局,来替代 CKB 的买卖格局由 Godwoken 节点提交一个特别的 CKB 买卖,也能够看作是 Layer 2 区块

尽管是 Layer 2 处理计划,但 Godwoken 背面的一个重要规划理念是,咱们正在构建一个无需答应的 Layer 2 处理计划。

就像 Layer 1 区块链供给的那样,Layer 2 买卖用买卖费用鼓励聚合器节点;在 Nervos CKB 上能够进行多个独自的 Godwoken 布置。每个布置都能够自由地做出自己的挑选。假如一个布置不能满意你的要求,你还能够自由地切换到另一种布置,乃至能够发动自己的布置;尽管一些布置或许会发生额定的约束,但 Godwoken 的中心规划是让每个人都能向 Layer 2 区块链提交区块,使其像真实的无需答应 Layer 1 区块链相同扩展。

为了展现更多关于 Godwoken 的内部信息,咱们将在近期发布一篇名为《Life of A Godwoken Transaction》的文章,在文章中咱们将介绍更多关于 Godwoken 规划和完成的细节。

值得一提的是,现在咱们只发布了 Godwoken 的第一个版别,它仅限于以下规划挑选:

将运用依据 Optimistic Rollup 的规划;

经过 Proof-of-Authority 来操控 Layer 2 区块的发行。

咱们将持续添加 Godwoken 的更多功用,其间包括:

一个真实依据 Proof-of-Stake 的区块发行和谐机制

依据 ZK Rollup 的设置

以及更多!

最近,咱们惊喜地发现,Rollup 正在区块链国际里敏捷 流行起来 。咱们很侥幸能够站在伟人的膀子上,而且十分期望能在这个范畴做出更超卓的作业,也期望能站在他人的膀子上有所立异。

不过,运用 Rollup 结构只能处理问题的一半。一个只能发送原生代币转账的处理计划毕竟不能处理一切问题。在竞赛剧烈且不断增加的区块链范畴,往往需求一个智能合约处理计划来开释更多的潜力。为了处理这另一半的问题,咱们还打造了 Polyjuice,它将与 Godwoken 互补运作。

Polyjuice:CKB 上 100% 兼容 EVM 的 Ethereum 处理计划

Polyjuice 是 CKB 上的以太坊处理计划,这意味着人们能够经过最小的改动,来将他们现有的运转在 Ethereum 上的 dApp 迁移到 CKB 上。Polyjuice 的规划方针是与 EVM 100%,乃至 120% 兼容,这意味着:

任安在 Ethereum 上运转的依据 Solidity 的智能合约都能够在 Polyjuice 上运转;Polyjuice 乃至能够供给更多今日在以太坊上无法完成的功用。比方你现在急需一个 EIP,Polyjuice 能够完成它来辅佐你的 dApp;

需求留意的是,兼容性规划只适用于 EVM,Ethereum 也有支撑的 RPC,运用程序能够经过 RPC 与链通讯。惋惜的是,由于 Polyjuice 和 Ethereum 之间的规划不同,咱们不能保证与 RPC 彻底兼容。这意味着将您现有的 Ethereum dApp 在布置到 Polyjuice 之前需求做一些作业。

不过,咱们将保证

a) 智能合约不需求更改;
b) 两套 RPC 互相类似。

咱们会将这些差异清楚地记录下来。这样一来,移植作业会尽或许地削减。咱们还将构建与 Portal Wallet 的集成,因而终端用户能够取得无缝的体会。

咱们在 2020 年 7 月份推出了 Polyjuice,之所以再次说到它,是由于咱们对 Polyjuice 进行了全面的检查和检修,并修正了它最大的问题:处理同享状况。

为了演示同享状况,咱们假定开发者现已将一个 Ethereum 智能合约布置到 Polyjuice 上。在咱们之前的模型中,人们会创立这样一个 Cell:

要调用这个智能合约,有必要要创立一个 CKB 买卖,耗费该合约 cell 并创立一个新的合约 cell。

这便是问题所在:当多个用户调用同一个智能合约时,他们都需求耗费偏从头创立合约 cell。实践上,他们在竞赛同享的合约状况 cell。在大多数状况下,用户不会知道其他人正在创立的买卖;他们中的每一个都会运用链上最新的实时合约状况 cell 创立一个买卖。

这会导致多个买卖耗费同一个合约状况 cell,矿工不得不挑选一个买卖,而这会导致一切其他买卖无效。这是 CKB 挑选依据 cell 模型形成的成果,但这不一定是缺陷:

不需求单一同享状况的状况还有许多,sUDT 便是这样一个比方。关于这些状况,依据 cell 的模型供给了改善,比方进步了可扩展性和确定性;

即便在同享状况不可防止的状况下(如投票运用,或 AMM),也有处理计划:

在许多状况下,能够使用简略的重试逻辑:能够创立这样一条规矩「只需买卖包括输入 1 和输出 1&2,我就不关怀输入 0 是什么,只需签名并发送买卖」。也能够给规矩附加一个超时时刻,比方 10 分钟的窗口。关于相对较小的 dApp 来说,比方投票运用,这现已足够了。

假如有些状况有其他需求,例如更高的 TPS 需求,那么重试逻辑就不可行了。Rollup 在这儿供给了一个不同的计划。经过在 Godwoken 之上构建 Polyjuice,每个独自的 Polyjuice 买卖就能够仅仅一个 Layer 2 的 Godwoken 买卖。这样就防止了同享状况问题,由于只需打包好的 Godwoken CKB 买卖才会耗费合约状况 cell,偏从头创立一个更新后的状况 cell。

在这儿,Godwoken 和 Polyjuice 是互补的:Polyjuice 供给了一种将自界说逻辑注入到 Godwoken 的 Rollup 处理计划,Godwoken 处理了 Polyjuice 的同享状况问题,一起也供给了更高的 TPS 潜力。咱们期望 Godwoken 和 Polyjuice 的结合,能对 Nervos CKB 仙界中的分层 dApp 规划有所启示。

值得指出的是,Polyjuice 并不是 Godwoken 的仅有虚拟机处理计划。咱们还能够将其他虚拟机与 Godwoken 集成,供给不同的 dApp 构建方法。例如,朴实的 JavaScript 虚拟机 是彻底能够完成的,因而咱们只需在区块链中直接用 JavaScript 编写即可。或许作为更远大的方针,在 Godwoken 的协助下 CKB 上的 Diem 也彻底能够完成。

为进一步解说 Polyjuice 的内部结构,咱们也将于近期宣布另一篇题为《Life of A Polyjuice Transaction》的文章。

展望未来

在 Nervos 中,咱们期望投合两种不同的开发者集体:

关于繁忙的运用开发者来说,咱们期望供给一站式的处理计划,让他们能够直接使用 Layer 2 EVM 驱动的区块链来发布他们想要的任何东西。例如,假如咱们告知你,Uniswap 只需进行少数的调整,就能够布置到 CKB 上,那会怎样?

关于更有冒险精力的人来说,CKB 供给了完美的乐高风格部件,你能够自己拆开和从头拼装。

不喜欢经过 Solidity 来编写智能合约?为什么不在 Godwoken 上建立自己的虚拟机来完成不相同的 Rollup 链呢?

Optimistic Rollup 听起来很无聊?您能够随意将其取出,并将其替换为更具应战性的部分,比方 ZK Rollup。

PoA 的机制对你来说像是定时炸弹?那就把它删掉,用你自己的 PoS 乃至 PoW 计划吧。

总而言之,咱们期望这个全新的 Layer 2 Godwoken/Polyjuice 在 CKB 上的布置,能够类似于你或许习气的轿车:你能够从经销商处购买后将它开走(原厂),也能够翻开它加装涡轮增压器,然后取得更微弱的动力。咱们现已做好了预备,你毕竟会对你全新「轿车」的一切改装感到惊奇。

免责声明:作为区块链信息渠道,本站所发布文章仅代表作者个人观点,与链闻 ChainNews 态度无关。文章内的信息、定见等均仅供参阅,并非作为或被视为实践出资主张。

[标签:作者]