PDP 全流程体验揭秘:从构建、部署到访问,Rollup 启动如此简单!
加入 PolkaWorld 社区,共建 Web 3.0!
过去,在 Polkadot 上部署一个 Rollup 从来不是一件轻松的事。因为越灵活的系统,往往也意味着越复杂的部署流程:从 SDK 的更新,到插槽拍卖,再到治理与运行时升级,每一个环节都可能成为团队的挑战。
为了改变这一现状,Parity 在今年推出了 Polkadot Deployment Portal(PDP) —— 一个从构建、部署到接入的"一站式入口"。它的目标很明确:降低门槛,简化流程,让任何团队都能快速、稳定地在 Polkadot 上启动并运行自己的 Rollup。
在本篇文章中,Parity 产品开发负责人 Santi Balaguer 将带我们回顾过去几年 Polkadot 部署体验的演变,解析 PDP 背后的设计理念,并分享这一工具如何一步步改变 Rollup 的启动方式。
在 Polkadot 上的部署体验:越灵活的系统,往往越复杂
Jay:欢迎来到 Space Monkeys,今天我们邀请了 Parity 负责产品开发的 Santi Balaguer。我们今天要聊 PDP,PDP 的全称是?
Santi:是 Polkadot Deployment Portal —— Polkadot 部署门户。
Jay:在开始做 PDP 之前,你这四五年在 Parity 主要都在负责什么?
Santi:过去一直都在跟开发者社区紧密接触,主要是帮助他们在 Polkadot 上启动平行链和 Rollups。就像你说的,我从平行链还没上线的时候就已经在 Parity 了。
Jay:你经常接触的一些项目里,有哪些是我们比较熟悉的?
Santi:我之前负责 Substrate Builders 项目,里面有很多大家熟知的项目。印象最深的是 Hydration 团队。我还记得 Jakub 做演示的时候,介绍他们的 Omnipool 想法和 Hydration 要解决的问题。他放了一张很经典的"money printer goes brrrr"(印钞机疯狂开动)的梗图,用来解释为什么他们要提出新的解决方案。到现在我还经常和 Jakub 开这个玩笑。
Jay:哈哈,太棒了。你肯定见过很多项目在 Polkadot 成功落地,也一定听到过不少他们的痛点。能不能聊聊过去几年里,在 Polkadot 上部署项目最让人头疼的地方?
Santi:当然。Polkadot 本身是一个非常复杂的系统,你必须真正理解它,项目才能顺利运行。这种复杂性其实来自它的灵活性 —— 越灵活的系统,往往也就越复杂。
在早期,要想在 Polkadot 上跑一个平行链,首先得想办法应对 SDK 的各种"破坏性更新"。那时候还没有 Polkadot SDK,只有 Substrate,跟现在还不一样。等你搞定开发环境之后,还得去社区拉票,参与插槽拍卖。拍卖本身也很有挑战,你需要足够多的人支持你,而且拍卖结果直到最后一刻才知道。即便赢了,你还得等上三个月,平行链才能真正上线。而且插槽只会租给你两年。所以当时你要同时在技术开发和社区动员两方面都全力以赴,才能在 Polkadot 上获得一席之地。
Jay:对啊。后来这几年,体验已经改善了不少。能聊聊这段变化的过程吗?
Santi:当然。我觉得 Parity 做了很大努力,尤其是在减少 Polkadot SDK 的破坏性更新方面。
虽然现在还是会有更新,但和以前相比稳定多了,版本之间的兼容性也好很多。现在开发者能比较放心地依赖自己用的 SDK 版本。甚至有些平行链还在用旧的 Substrate 版本,但依然能在 Polkadot 上正常运行。
另外就是 Cortime 的引入(虽然它本身也有一定复杂度),但确实大大降低了开发者的门槛。它让大家更容易去尝试,把进入 Polkadot 的壁垒拉低了很多,我觉得我们应该尽可能好好利用这一点。
现在为什么项目要选择部署在 Polkadot,而不是做以太坊的 L2?
Jay:尽管当时有很多挑战,不过现在已经解决了不少。那你觉得为什么今天一个项目会选择部署在 Polkadot?为什么不去以太坊做 L2,或者直接发一个自己的 L1 呢?原因是什么?
Santi:这是个很有意思的问题。首先我觉得,作为社区,我们应该在这方面做更多沟通和宣传。就我个人的理解和观点,Polkadot 是目前唯一一个从一开始就被设计成能原生承载 Rollup 的区块链。它给开发者提供了很多其他地方没有的基础设施。
比如说,Polkadot 给 Rollup 提供的数据可用性层(data availability)非常大,而如果你在以太坊 L2 上,就得依赖一些外部系统或"blob"去解决。
再比如平行链之间的原生消息传递(跨链通信),这在其他 Rollup 上是不存在的。缺少这个功能,会让系统在安全性上打折扣。
再看性能,Spamming 已经验证过,Polkadot 的 Rollup TPS 水平在整个行业里都是非常突出的。
还有弹性扩容这一点,Polkadot 是现在唯一一个能根据需求随时扩展或缩减基础设施的系统。举个例子,如果 Mythical 突然要上线一款新游戏,预期第一周用户会暴涨 10 倍,他们几乎不用改什么,就能马上支持这个流量。
我觉得我们在过去关于"分区(partition)和 Rollup"的讨论里,没能让 Polkadot 成为主角,错过了一点机会。但现在还来得及,我们还有机会重新把它放到舞台中央。
Jay:是啊,你之前还跟我说过,Polkadot 从底层架构设计的时候,就是为 Rollup 准备的。只是最早我们没把它叫做 Rollup。
Santi:没错,还有一点我们常常视而不见,那就是共享安全。回顾整个区块链的发展脉络:最早是比特币,然后有了以太坊。后来大家开始发各种新的"以太坊",对外宣传说"我的链更好,因为有 A、B、C 特性"。但问题是,要保证一条新链的安全性非常难。你得有一个足够大、足够强的验证人集合,这不是件容易的事。
当时 Gavin 就想:为什么我不把安全性作为服务提供出来,内置到基础层呢?这就是 Polkadot 独特之处。它不仅能提供共享安全,还能在这些 Rollup 之间实现高效的通信,这是 Polkadot 特别擅长的。
PDP 的想法是怎么产生的?
Jay:太棒了。如果一个 Rollup 想要内置的数据可用性(而且要很大规模的),而不是靠拼凑其他项目来实现,还希望 TPS 和吞吐量强大,还能和其他 Rollup 无缝通信,那 Polkadot 确实很有吸引力。不过在 PDP 出现之前,部署一个平行链还是很复杂、很耗时间。那最初为什么会有做 PDP 这个工具的想法?
Santi:其实这个想法酝酿有一段时间了,虽然我们真正开始动手是在去年 11 月。
然后我们团队大概从今年三、四月份开始全职投入这个项目,现在团队进展很快,大家正在把这个想法一步步变成现实。这件事酝酿已久,而且行业里也已经有了一些类似的解决方案。比如以太坊生态里有 Conduit、Gelato;在 Polkadot 这边之前也有 Tanssi,不过后来他们也主要转去以太坊了,思路类似。
我们看到 Polkadot 这边迟迟没能落地,于是就决定亲自下场来做,确保这件事能成。毕竟我们对 Polkadot 的理解更深入,也更知道怎样让它变得对开发者更轻松地部署项目,这就是 PDP 想要解决的目标。
我们不替开发者做决定,而是提供指引和选择
Jay:那 PDP 面向的到底是哪些人?我记得 Polkadot 早期有个问题,就是有些项目一开始就去做 Rollup,但其实做成智能合约就够了。你觉得什么样的项目才真正适合有自己的一条 Rollup?
Santi:这是个好问题,但我觉得没有一个固定的答案。到现在我们仍然会发现一些项目,其实做成合约可能也说得通。但有时候项目方需要独立性,他们不想依赖其他链的基础设施;有时候他们预期未来的吞吐量会非常大,所以宁可一开始就选择做 Rollup,诸如此类的原因会让他们需要自己的链,或者需要在基础架构上有更高的独立性。
再比如 Hydration 的 Omnipool,我们也可以争论它能不能只是一个合约,但我觉得不是,它做成一条链是合理的。另一边看看以太坊的 Uniswap,它一开始就是合约,后来才去搞自己的链,但他们现在真的需要一条链吗?可能未必,不过他们有自己的商业考量。
所以这其实没有绝对,更多是技术与商业共同驱动的结果。对我来说,最重要的是:我们不要替开发者做决定,我们要做的是提供指引,让他们自己选择。而无论他们要做 Rollup 还是合约,都应该能很容易地尝试和实验。
PDP 全流程体验揭秘:从构建、部署到访问,Rollup 启动如此简单
Jay:好的,那假设一个团队做了决定,不管是他们自己决定的,还是通过像 Magenta Labs 或者 BD 团队引导的。最终他们决定要在 Polkadot 上部署 rollup。那么他们进入 PDP 之后,会有什么体验?现在部署的流程是怎样的?
Santi:在 PDP 的设计里,我们把流程分成三个主要阶段:Build(构建)—Deploy(部署)—Access(访问),这三部分是互相关联的。
在"构建"阶段,核心问题是"我该怎么开始"。我们的想法是:最好的方式就是通过运行时模板(runtime templates)。目前 OpenZeppelin 正在开发相关模板,Pop CLI 团队和 ROG 团队也在做这方面工作。Pop CLI 本质上是一款你可以在自己电脑上使用的工具,用来编写 Rollup。我们和他们合作,把它和 PDP 的另外两个环节(部署和访问)打通了。
比如说,你在 Pop CLI 上构建完一个 Rollup,就可以直接通过它连接 PDP,把 Rollup 部署上去,我们就是这样设计并实现的。这样一来,开发者可以用 CLI 的方式走完整个流程,就像 Web2 里的 Heroku 或 Vercel 那样,它们都有自己的 CLI。如果你习惯这种方式,可以直接用 CLI;当然你也可以完全走图形化界面的路线。两种方式都行。
Jay:也就是说,除了用模板构建,还能用 Pop CLI 来构建,然后进行部署。那 PDP 本身会帮开发者做一些选择吗?还是说它只是一个工具,更多要靠团队自己操作?
Santi:两种都有。我们希望 PDP 可以作为一个自助工具,让开发者自己去用。但如果遇到关键问题,我们当然会在旁边支持,确保他们得到应有的帮助。当然啦,如果有人就是想自己试试,也完全没问题哈哈。
Jay:挺好玩的。那你能举几个具体的模板例子吗?有哪些你比较喜欢的?
Santi:比如说,ROG 团队有一个现成的 Pilot Revive 模板,你可以直接用来启动。OpenZeppelin 这边有 Frontier 模板,你要跑一个带有 EVM 功能的链,就可以直接用它。
Jay:挺酷的,相当于几种智能合约相关的选择。
Santi:没错。还有不带智能合约的模板。比如有人只想做一个托管资产的链,尤其是现实世界资产(RWA)相关的项目,那也有对应的模板。总之起步阶段会有不少选项供你选择,然后再在这个基础上继续扩展。
Jay:那模板能不能根据自己需要加新的 Pallet?
Santi:一开始不行。设计思路是你先从模板启动,然后我们会一步步引导你去做运行时升级。我们希望通过这种方式,让团队逐渐找到产品市场匹配点。这个设计其实很有意思,也是我们当前重点打造的功能之一,现在我们正在用一个 Puppet 团队做的非常有意思的工具,它能对比你即将升级的 runtime 和当前已经部署的 runtime,生成一份报告,告诉你哪些东西发生了变化,哪些可能会影响开发者,以及需要注意什么。
Jay:对对对,我看到你们刚集成了这个,太棒了。
Santi:对,就这周才完成的。这样你会得到一份运行时升级的报告,确保你要推送的内容和预期一致。接下来我们还想加一个功能:帮你在后台模拟运行几个区块,测试新的 runtime。如果一切正常,我们就提示你"可以上线";如果有问题,就告诉你"我们这边测试不通过,你最好再检查一下"。这样可以避免团队在升级时犯错误。我们认为 Polkadot 的优势之一就是支持这种灵活的运行时升级,团队完全可以利用这一点去快速迭代,找到产品市场契合度。
Jay:等一下,所以这部分已经算"部署"环节了吗?我们刚刚说的从构建到运行时,这算是在部署了吗?
Santi:对,这里其实有点交叉。可以这么理解:构建更多是从模板开始;部署则涉及到底层的基础设施。以前你需要有自己的 DevOps 团队来搭建 collator 节点、做各种运维,现在刚起步时这些都不用管。如果项目发展得好,有了资金和资源,你完全可以再组建自己的运维团队,到时候我们也能帮你做迁移。但在刚开始的时候,这些事我们来帮你搞定。
Jay:那现在是谁来做这些?
Santi:目前是 Parity 在提供。但未来我们会让开发者自由选择部署在哪个云平台,甚至可能是 IBP(基础设施提供商),只是抽象出这一层需要点时间,所以现在为了确保体验,我们用 Parity 自己的基础设施来承载,但最终会开放更多选择。
我们还推出了一个概念叫 BDU(Basic Deployment Unit,基础部署单元),只要你要在生产网络部署 Rollup,我们就会为你部署一套标准化的基础设施,里面包括三个 collator 节点,其中一个还能作为 RPC 端点供你使用,同时我们还会给你配一个 indexer。
现在我们正在和 Subscan 合作,他们有一个开源的解决方案,我们计划把它集成到 PDP 里。这样你不仅有 indexer,还有一个区块浏览器,过去这些东西都需要团队花很久时间来搭建,现在我们帮你一站式搞定,这个设计挺不错的。
Jay:哇,听起来很棒。这部分算是构建吗?
Santi:这是部署。
Jay:明白了,那到这一步 Rollup 已经运行了?开始产块了?团队也能做运行时升级来不断试错和迭代并找到产品市场契合点了?那接下来就是最后一步"访问(Access)",对吧?这又是什么?
Santi:对!Access 就是 Polkadot 的亮点,我觉得这正是 Polkadot 能为 Rollup 团队带来独特价值的地方。构建和部署这一块,涉及运行时和基础设施,大家大概都能比较快摸索出来,但真正把 Polkadot 的特性用起来,差异就出来了。比如 Coretime ,它是 Access 的一部分,PDP 会提前预购 Coretime,这样开发者一旦要部署 Rollup,就能立即用上,不用再等 28 天才能开始产块,这对用户体验是一个巨大的提升。
Jay:如果我是要部署的话,是不是要自己去 PDP 购买 Coretime?
Santi:我们会帮你买,然后再向你收取费用。实际上,我们对 Coretime 提供了不同的选择。比如你想一开始就全力以赴,可以直接用一个完整核心。但我们也提供"切片核心",也就是核心的一个部分,比如你想先试试水,不想花太多钱,想看看效果如何,那就可以只用一小部分核心。
Jay:这个功能现在已经能用了吗?
Santi:在 PDP 上已经可以用了。目前已在 Westend 和 Paseo 网络上运行。Paseo 最近刚刚上线了切片核心,而在 Westend 你可以直接交易出一部分核心,缺点是你的出块时间会变得更长一些,但好处是大大降低了门槛,你几乎可以很低成本地试水。如果效果不错,你就可以升级到完整核心,享受六秒出块的速度,而且这一切都能在 PDP 上完成。不过接入机制仍需解决如何有效利用 Polkadot 的问题。目前 Polkadot Hub 作为重要功能模块即将上线,我们对此充满期待。
原视频:https://www.youtube.com/watch?v=HkIrGOOf26c
PolkaWorld Telegram 群:
https://t.me/+z7BUktDraU1mNWE1
PolkaWorld Youtube 频道:
https://www.youtube.com/c/PolkaWorld
PolkaWorld Twitter:
@polkaworld_org
更多内容
关注 PolkaWorld
发现 Web 3.0 时代新机遇
点个 "在看" 再走吧!
没有评论:
发表评论