“波卡知识图谱”是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识,今天是该栏目的第60期,Substrate框架的出现,大大缩短了开发和启动新链所需要的时间,这为波卡生态的建设者的创新路径提供了“捷径”,因此建设者入门指南能够帮助开发者们更好的构建他们的愿景。
Polkadot是一个区块链协议,有两个目标:在所有连接的平行链之间提供共享的安全性,并允许所有连接的链通过使用XCM进行互操作。
随着Parity Substrate和Cumulus等PDK的出现,开发和启动新链所需的时间显着减少。在过去推出一条新链需要数年时间,而现在可能只需要数周甚至数天。
本指南将引导你完成今天可以采取的步骤,开始使用Polkadot构建你的愿景。它将解释平行链和智能合约之间的区别(以及为什么一个可能更适合你的应用程序而不是另一个)。
波卡生态系统网络
- 主网:波卡
- 金丝雀网络:Kusama
Kusama是一个有价值的金丝雀网络,它在波卡之前获得了功能。期待混乱。
- 官方测试网:
Westend:功能等同于当前的波卡主网,可能不时地对功能进行下一代测试,并最终将其迁移到波卡上。永久测试网(不会重置回创世块)。
Canvas:基于Wasm的智能合约启用测试网,主要用于ink!开发。
Rococo:平行链和XCM测试网。偶尔重置网络(使用新的创世块重新开始)。
波卡主网自2020年5月开始运行,并以从Rust到JavaScript的各种编程语言实现。目前,主要的实现是在Rust中构建的,并使用Substrate框架构建。
工具正在迅速发展以与网络交互;有很多方法可以开始!
但是在你直接进入代码之前,你应该考虑你想要创建的去中心化应用程序类型,并理解希望在波卡上构建的开发人员可以使用的不同范式。
构建平行链、平行线程或智能合约之间有什么区别?
波卡为你提供了几种部署应用程序的方法:作为现有平行链上的智能合约,作为你自己的平行链或者作为平行线程。在使用这些方法时需要权衡取舍,阅读本部分将有助于你理解它们。
平行链和平行线程
平行链是包含自己Runtime逻辑的平行链,受益于波卡中继链提供的共享安全性和跨链消息传递。
平行链允许高度的灵活性和定制性,但随着时间的推移需要更多的努力来创建和维护。
平行线程类似于平行链,使开发人员能够对其应用程序的逻辑进行较低级的控制。两者之间的主要区别在于经济性,因为平行线程的安全成本要比平行链低得多。
平行线程的成本较低是因为平行线程只在需要的时候才会产生一个区块,这与平行链不同,平行链在中继链的每个块上都有一个插槽来生成一个区块。
当构建平行线程时,你将使用相同的工具(如PDK),你将获得构建平行链的所有好处,而没有成本的缺点。
平行链赋予创造者更多空间来从头开始构建货币系统和链的其他方面。与智能合约平台相比,它们将复杂的逻辑执行变得更加简洁和高效。
平行链在治理形式上提供了更大的灵活性,并且允许以比当前硬分叉过程更少争议的方式执行完整的升级。
平行链或平行线程上的一些特征:自定义费用结构(例如,为交易支付固定费用或按字节付费)。
- 针对本地通证和当地经济定制货币政策。
- 国库将通过状态函数的转换从而获得资金。
- 一种治理机制,可以管理负责分配链上资金的DAO。
- 平行链为构建复杂Runtime逻辑提供了可能性,而使用智能合约执行这些逻辑的成本太高。
然而,与智能合约不同的是,平行链完全没有一个强制性的gas计量系统,可能容易出现导致无限循环的bug(智能合约的设计可以防止这种情况)。
这个bug通过在Substrate中实现的权重系统得到缓解——尽管它给平行链的开发人员带来了更大的负担,以便正确地执行基准测试。
你也可以决定利用平行链、平行线程和智能合约的组合。
如果你有某些逻辑需要循环,并且它无法被删除,那么可以使用原生平行链Runtime来处理所有复杂逻辑并使用智能合约调用迭代。
如果你需要来自预言机的链下数据,你可能希望使用平行线程作为每24小时触发一次的预言机喂价,(如果数据对波卡生态系统中的其他参与者也有用,这是最有意义的)。
最有可能的情况是,你已经意识到你的应用程序更适合于其中之一(或两者的混合),但如果你需要快速回顾信息,你可以使用这个比较图标作为备忘单:
上图不包含平行线程:正如我们之前提到的,平行链的所有好处同样适用于平行线程。然而,平行线程的部署和维护成本更低。因此,如果他们在上表中有一个列,那么看起来“易于部署”和“维护开销”的平行链列应更改为“+”。
智能合约
智能合约只是存在于链上某个地址的一些代码,可由外部参与者调用。关键是,在任何人开始执行之前,你必须将代码放在链上!
对于你将使用的任何特定平行链,在链上部署你的智能合约会略有不同,但通常你将发送一个特殊交易,该交易将在账本上创建智能合约。你可能需要为初始化逻辑和合约消耗的任何存储支付相关费用。
在波卡上,会有平行链作为智能合约平台。智能合约是存在于单个链上的可执行程序,复杂性有限。
因为它们存在于单个链上,所以它们可以与同一条链上的其他智能合约进行平滑的互操作。
但是,它们总是会受到其主机链的固有特性的约束和限制。
如果需要对应用程序的设计和功能进行大量控制,平行链是更好的选择。
请记住,智能合约可以作为一个试验场,之后才会变成成熟的平行链。智能合约平台通常具有方便的工具,例如IDE,以促进快速迭代。
在构建平行链之前,可以创建一个智能合约MVP来衡量用户的兴趣。
每个平台都会有不同的方式来支付和维护你的智能合约的状态。你可能会看到智能合约的不同模式包括:
- 与部署每笔交易相关的交易费用。
- 一种订阅模式,在这种模式下,你定期向某些链的实体支付平台的使用费用。
- 一种访问通证模型,你需要为此持有原生通证的一定阈值来使用该平台(EOS也有类似的东西)。存储空间的租金。
- 免费试用或开发者推广。
- 大多数智能合约平台使用某种形式的gas来限制用户的操作次数。用户将被要求预先支付gas费用,不用的gas将被退还。
你需要考虑智能合约的存储和复杂性,以确保gas使用量保持在合理范围内。
无论你使用哪种智能合约平台,存储都可能很昂贵,因此有必要将尽可能多地保留链下数据。你可以考虑使用去中心化存储页面上列出的选项来保留数据并仅提交链上的内容地址。
构建平行链或平行线程
请参阅平行链开发指南,了解如何开始构建平行链或平行线程。
(https://wiki.polkadot.network/docs/build-pdk)
构建智能合约
请参阅智能合约指南,了解如何开始构建智能合约。(https://wiki.polkadot.network/docs/build-smart-contracts)
波卡通过构建一个独特的框架来解决互操作性、扩展性、可开发性等问题,这种独特的生态系统能够让不同的区块链共享并放大彼此的创新功能。
而Substrate等工具包是波卡生态得以快速发展的重要组件之一,它将是区块链创新者构建的最佳平台,即使不在波卡网络中构建,你仍然会发现Substrate框架是一个很好用的工具。
欢迎大家加入我们Polkadot生态研究院的电报:
https://t.me/polkadot_eri
欢迎大家访问波卡生态研究院的Mirror地址:
https://mirror.xyz/0x9A259b3a2316281Cc948cE2Cf1Ac610a79844f05