精华 准备好去Polkadot上开发
发布于 3 个月前 作者 yuelipeng 193 次浏览 来自 Polkadot 技术

译者:邬天博,原文:https://medium.com/polkadot-network/preparing-to-build-on-polkadot-349ff5002885

之前我们已大致说了Polkadot 吸引开发者的理由:Polkadot 会解决区块链普及和创新的最大问题。在这篇博文中,我们会给一些建议,帮助开发者为 Polkadot 的发行做好准备。

我们相信,让开发者继续使用他们已经熟练掌握的技术来开发是有可能的。在可开发性上,我们的目标是尽可能移除开发去中心化技术的障碍,虽然长远来看,切换到使用一门可以编译到 WASM 的语言来开发会更好。推导过程我们会在本文中详细说明。

现在我们要讨论两个主题:(1)部署在 Polkadot 平台上的去中心化应用的开发路径;(2)简单介绍开发者如何能够开发一条功能完整的平行链(Parachain),参与到 Polkadot 的多链环境中。

有意愿在 Polkadot 上部署智能合约的 dApp 开发者不是非得创建一条平行链,因为 Polkadot 将会有配备图灵完备状态机的平行链。如果你对开发一条平行链感兴趣,我们来深入了解下你需要实现的东西、你可以用来实现它的工具、以及一旦实现了你可以在链上做些什么。

在 Polkadot 上开发 dApp 和平行链

现在,有些开发者可能会问:“我们可以为 Polkadot 的发行做些什么准备工作吗?”

答案是“当然可以”!

我们非常乐意与想在 Polkadot 原生平行链上开发 dApp 或是开发新平行链的团队接洽。我们的建议是在一种可以编译到 Wasm 的语言上写智能合约以及平行链运行环境。

打造一条基于 EVM 的平行链、让开发者可以继续使用 Solidity 写智能合约也是有可能的。然而,我们并不推荐这样做,因为以太坊也希望在实现分片的时候(将虚拟机)转变为 Wasm。幸运的是,现在人们正在开发一种叫“Yul”的工具(原来叫 Julia),可以将 Solidity 编译到 Wasm。

从长期来看,我们希望 Wasm 对区块链开发者来说变成一种自然而然的选择,这也是为什么我们建议开发者应该开始研究 Wasm 智能合约。要阅读更多关于 Wasm 的材料,请看 Parity 对 Wasm 的解释以及他们的 Wasm 智能合约开发引论。

在 Polkadot 上开发 dApp

创建最终可以被部署到 Polkadot 上的智能合约,可以有两种主要的开发路径:(1)在 Wasm 上写合约,让它可以在原生平行链上运行,或者是(2)使用 Solidity 部署 dApp 在一条基于 EVM 的链上。后者对那些想要用现有可用工具来开发的开发者来说比较有吸引力,但从长期来看,切换到 Wasm 上会更好。

遵循选项(1)是为平行链在未来启动做的准备。在 Wasm 中开发和测试 dApp、以及在 Kovan 测试网 或是一个自己部署的 PoA(权威证明)网络上做测试都是有可行的。来自 Parity 的 Fredrik Harrysson 在 EthCC 上解释了如何在装载 WASM 的 Kovan 测试网上运行 Rust 合约。围绕 Wasm 智能合约的工具有限,可能让测试更加困难,但这一点不重要。更多信息可以看 Parity 博客中关于 Wasm 虚拟机和智能合约的推文。

对那些倾向于遵循选项(2)并继续使用 Solidity 来开发 dApp 的开发者来说,我们建议仿效选项(1)。当然,这要部署在基于 EVM 的 PoA 链上,这也会让开发者可以测试数据流并得到一个具备一定可扩展性的可用产品。当以太坊连接到 Polkadot 之时,现有的 dAPP 便可以从系统提供的新功能中受益,包括扩展以及跨链通信。

调试一条 PoA 链是非常简单的,现在已经有很多教程,并且最终来说,这些链也可以在 Polkadot 创世块构造好之后(预期在 2019 年第 3 季度)连接到 Polkadot。假设切换到 Wasm 的趋势会持续下去,而以太坊会成功地实现分片,我们强烈建议使用 Wasm 作为首选语言。

具体流程如下所示:

部署一条 PoA 链以及一个桥接合约(Bridge Contract)

让 dApp 在 PoA 链上跑起来

桥接合约提供了消息传递功能,让孤立的链可以跟 Polkadot 联系起来。Polkadot 平台会拥有很多不同的链,在类型上也会百花齐放。

开发一条平行链

平行链这个概念一开始是在我们的白皮书中提出的,一篇之前发表的名为《Polkadot: The Parachain》的博文则在细节上进一步阐发了这个概念。

“平行链(Parallelizable Chain,直译为‘可平行化链’)是区块链的一种更简单的形式,它会附加由一条‘中继链(Relay Chain)’提供的安全性,而不是由自己来提供。中继链为附属的平行链提供安全性,也提供平行链之间信息传递的安全保证。”

后者解除了对桥接合约的需要,因为信息传递功能已经被整合进了协议中。

创建一条原生于 Polkadot 的平行链需要理解 Substrate。更多细节请看 Gavin Wood 博士在 Event Horizon 中的演讲以及 Polkadot GitHub 的子目录 Substrate。

Polkadot 多链架构的设计让开发者可以自定义平行链的有效性。要实现一条平行链,开发者要实现一个状态转变验证函数、制定一种状态格式,一种交易收集机制。实现了自己的平行链之后,要将它与 Polkadot 整合起来和需要一系列额外的措施。要做到这一点,你还需要将状态转变验证函数部署到中继链上,然后发布一个带有交易收集功能的校验节点客户端(Collator Node Client)。

创建所有这些部分需要思考:一个校验节点应该如何打包链的区块、这些区块的有效性又如何能够被校验节点(Validator Node)检查和验证。这里有两个方法:(1)从头开始编写校验节点;或是(2)使用一个已有的可以运行各种状态机的校验节点。在写这篇文章的时候,我们还没有余裕来写一个校验节点,虽然更多细节会随着 PoC(概念验证)的发布而披露出来。

编写状态机的一个要求是使用一种可以编译到 Wasm 的语言。这是一种设计上的选择,可以保证足够的灵活性,比如为运行环境实时更新。研究在推进,平行链也可以容易地升级以实现最新的技术,比如分片。

我们希望一些热门平行链的代码可以被复制并重用到其他链上,甚至用到独立的区块链上。Web3 基金会邀请开发者们开始创建平行链以及所有其它对 Polkadot 的成功来说关键的通用组件,比如区块浏览器、钱包、中继节点和核对者节点的替代性实现。请移步 Riot以联系团队中的成员。

展望未来

Polkadot 启动以后能为开发者带来的好处是非常有吸引力的。无论是区块链之间和平行链之间的互操作性、可扩展性上的提升、海量交易的效率提升,还是动态链上治理系统,很多理由值得你考虑在 Polkadot 平台上开发。

我们希望,已经在以太坊上部署 dApp 的开发者们、正试图在 Polkadot 上开发的以及刚刚开始起步的开发者们,能够从本文中得到对必要迁移的更清楚的认识。

我们计划在 2019 年 第三季度启动 Polkadot 主网。因为我们正在推进概念验证和测试网,我们欢迎社区成员帮助我们推进项目;加入我们,让 Polkadot 网络落地。

我们邀请所有人下载 Polkadot 的代码,编译一下,连接到全球测试网。安装之后,请记得来 Riot 的聊天频道拿一些测试网的 DOT 代币!

开发快乐!

回到顶部