宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > MEXC > 正文

如何基于波卡开发区块链项目?

作者:

时间:1900/1/1 0:00:00

2020年10月20日,密码极客发起了第一期。我们非常荣幸邀请到了Parity亚洲区技术总监贾瑶琪博士做客密码极客大咖直播间,为大家讲解《如何基于波卡开发区块链项目》。

1、在波卡上如何开发区块链系统?

大家作为不管是开发者或者是区块链从业人员,应该都能感觉到从零开始构造一个区块链是一个非常困难的事情,为什么说是很困难的事情?

图1

大家可以看一下图1,其实要从头开发一个区块链,你要考虑到的就不只是数据库公式算法,还要考虑到处理各种各样的交易相关的一个转换函数。与此同时,如果你想加一些比较复杂或者先进的一个逻辑在里边,例如零知识证明,这样就要在开发区关联时候额外添加这些比较复杂的算法以及功能。

那么大家其实就会想到我们如何使用已经有的这些,不管是公链技术或者是联盟链技术来进行二次开发。其实在过去的十几年当中,特别是从09年比特币白皮书这样的一个上线,以及15年以太坊系统的上线,大家可以看到区块链不止可以做支付,而且还可以在上边部署一些智能合约。那么的话就有很多开发者是基于比特币做二次开发,以及一些比较有意思的这种utxo模型的这样的一个区块链系统,还有根据以太坊做的一些调整,然而这些基于已有的区块链开进行二次开发来做一些新的链这样的一个系统,他们最大的问题就是由于像比特币或者以太坊早期的这些项目,他们也有一个比较好的开发框架,其实大家都是在源码基础上进行改动的,这样就要求开发者对于源码的理解是比较高的。与此同时的话,由于这些源码没有比较好的模块化来作为一个框架,其实开发起来的难度是很大的。

而我们Parity其实从Gavin在很早期15年建立Parity的时候,我们在最初就在帮以太坊开发它的Rust客户端,之前是叫做ParityEthereum现在改名叫做OpenEthereum,我们积累了很多各种各样的对区块链的开发经验,特别是在从18年开始积极的开发Polkadot跨链项目,我们吸收以及总结了很多开发供应链的这样的一些经验,然后从这些经验里边,我们抽取以及进一步的深化,做出了这样的一个区块链开发框架。而这套框架我们命名为Substrate。

图2

因为波卡是一个跨链项目,那么我们为了帮助开发者更快的开发自己的一个区块链系统,我们就开发了Substrate这样的一套框架,来方便开发者去开发相关的这样一个区块链系统,我们叫做平行链。大家可以看到Substrate其实包含了很多刚刚我提到的这种区块链的核心组件,例如数据库层、网络层以及可插拔的共识协议。

韩国金融监管局今日将与各交易所开会讨论如何判断加密资产的证券属性:6月2日消息,韩国金融监管局(FSS)将于今日召集Gopax、Bithumb、Upbit、Korbit、Coinone等5家加密交易所与数字资产交易所协会DAXA举行非公开会议,就判断个别虚拟资产的证券属性的细节问题等进行讨论。FSS计划在审查虚拟资产证券时提出注意事项,并分享Upbit和Korbit等虚拟资产交易所自行判断证券的例子。[2023/6/2 11:53:48]

同时,我在之后也会提到包含了比较有意思的链下工作机以及链上的这种可升级的功能,这样就可以帮助开发者在开发的时候,其实大家只选用自己想使用的一个模块,就可以很快速的开发相关的一个区块链系统,可以快到哪种程度,Gavin其实在18年的时候,在Web3峰会做了这样的一个演讲,就是拿出了崭新的苹果电脑,然后开始装这样的一个Substrate相关的dependency,然后到最终编译出一个区块链只花了15分钟,大家可想而知,这个是18年的不稳定版本,现在的话Substrate已经到了2.0版本,那么在这个版本上进行一个开发,其实会有更好的用户体验,是更加快速的。回到咱们今天讲的主题,在波卡上如何开发区块链系统,那么相信大家现在已经有了一个比较好的眉目,其实就是使用Substrate这样的一个开发框架来进行一个开发。

图3

2、Substrate开发出来的系统有哪几种方式可以进行部署?

图4

其实除了作为波卡的平行链或者平行线程之外,也可以直接部署成为独立的链。特别是在国内这种特有的环境下,大家也可以使用Substrate搭建自己对应的这种商业逻辑的联盟链或者私有链,以及一些对于吞吐量要求比较高的,可以针对某一个应用,例如游戏单独搭一条链并部署在自己相对应的环境下边,当然了目前大家在Substrate进行开发的时候,比较有利的一点是经过三年,从这个图可以看到,整个波卡生态的壮大以及开发者持续的开发,Substrate的开发生态以及工具是有很多的,大家可以用Polkadot-js,当然内置的话也是有一个比较好的这种区块浏览器,大家也可以使用ParitySigner这样的一个离线的硬件钱包。

3、怎么使用Substrate进行Rust开发?

图5

与此同时,除了图5上面提到的这种ink!智能合约。这种ink!.Rust类型的智能合约,我们目前也兼容了evm其实大家可以使用这些去编写智能合约,然后在自己对应的消费链上面进行一个运行。接下来我就大致跟大家分享一下怎么使用Substrate进行这种Rust开发。因为Substrate是跟其他的智能合约开发比较不太一样,因为你是相当于开发一个区块链,虽然区块链底层,像数据库、网络、控制协议都搭好了,但是针对你自己特殊的这种需求,例如你要做游戏的一个区块链,或者是偏支付的这样一个链,这种核心的商业逻辑还是需要你进行开发的。

摩根溪联合创始人:真正考验是如何在未来10年持有BTC并保护其安全:摩根溪联合创始人Jason Williams刚刚发推称:“如果你现在有了比特币,你已经完成了简单的部分。真正的考验是如何在未来10年持有和保护它的安全。比特币将重塑我们所知道的一切。我真的不认为我夸大了这句话。”[2020/11/7 11:57:03]

图6

那么进行开发的话需要这种SubstrateRuntime的。图6里边大家可以看到,由于Substrate跟我们平时开发智能合约不太一样,那么的话它是有一些这种开发上面的一些这种policy需要大家去记住的。例如第一点,在SubstrateRuntime你如果发了一个我们叫做extrinsic,或者你就把它当做交易,发交易的时候,如果这个交易进行时发生了问题的,那么交易对状态的改变是不会回滚的。

然后在以太坊上面进行solidity的开发的话,如果交易执行不成功,那么其实它的状态是会回滚的。这就要求了我们在开发Substrateruntime的时候,最好是我们先自己验证一下他这样的一个逻辑对不对?然后再写。

接下来这几页的图片,大家可以看一下,在写这种runtime或者相对应的这种逻辑的时候,需要大家在里边填充自己的这种代码的,大家可以看模块定义通常是包含怎么定义存储事件以及错误,还有就是一些相关的这样的一个函数。

图7

对于这种如果大家想引用其他的相关的这样的一些trait的话,因为整个Substrate都用Rust写,所以这也会用到一些trait,如果大家想知道更多这种Rust相关的信息的话,再可以在网上查一下Rust的相关课程,或者加入我们Substrate的课程,我们会介绍一些Rust的相关的这种基础。然后像存储的话,大家可以看到其实里边有一些比较简单的类型、最简单的方法,大家就可以学习已经有的这些简单的类型或者这种例子,然后根据自己的实际情况,然后去改一下相关的这种变量名字,进行这样的一个操作。与此同时的话类似于我们写智能合约,在做一些操作的时候都要触发事件或者发出事件,那么这里边你也可以去定义一个事件。

当然了这里面还有一个地方就是decl_module,其实就是要定义自己相对应的这种runtime的函数,我在最后会提到的叫做Substrate.dev这样的一个网站上面有很多各种各样的教程,大家可以跟随教程去学习,以及做一些比较简单的例子去深入学习,怎么去根据这几个模块定义对应的这样的一个事件存储和函数,来完成自己对应的这样的一个Runtime,以及相对应的逻辑的定义以及操作。

声音 | 韦氏评级:无论比特币盈利能力如何 投资者都更倾向于存币而非卖币:韦氏评级今日称,超过60%的比特币一年多都存储于钱包中而非在市场流通。在此期间,比特币兑美元的价格从去年12月的3100美元上涨到仅6个月后2019年的13800美元高点。无论盈利能力如何,投资者都希望存币而不是卖币。[2019/12/3]

4、Substrate应用链跟智能合约的差异性在哪?

在这里简单类比下Substrate应用链或者Runtime跟智能合约的差异性。

图8

大家都知道写智能合约,特别是以太坊上面的solidity这样的一个智能合约,很多时候由于solidity以及以太坊本身的限制——比如它存储量较低、手续费较高,同时像solidity它本身的限制也是比较多,可能更多时候是只能操作整数这种类型。

这就是为什么大家看到的目前以太坊上面比较火热的应用都是跟通证相关,而不是跟更广泛的Web3.0相关的原因。

而大家使用Substrate进行开发的时候,就不存在这样的问题。

因为大家使用Substrate开发的时候,整个链都是为开发者所控制的。所以当大家在进行开发的时候,不管是链上链下数据,或是对应的一些solidity没有的接口,Substrate都可以进行一个提供。

并且大家也可以看到,Substrate本身的吞吐量也是比较高的,所以可以给应用提供更多的处理交易与逻辑的空间。

与此同时,Substrate本身也会提供一个off-chainworker链下工作机,可以帮助做Substrate应用开发的开发者能够更快的处理相关的链下数据,实现链上处理链下数据,这样就打通了链上与链下。

5、无缝无分叉的链上升级

熟悉区块链行业的朋友都知道,在过去,所有的公链项目包括一些联盟链项目,如果想要做升级的话,都需要进行一个硬分叉。像比特币,特别是以太坊。大家都知道在16年由于“TheDAO”事件,由于矿工意见不同,最终从以太坊分出了经典以太。

我们为什么要做链相关的升级?这其实涉及到了一个计算机或者编程行业。

大家其实默认这样一个现象:没有任何一个程序员可以写出没有漏洞的代码。

不管是写传统的应用,还是写区块链得应用,或者智能合约。通常情况下你写的代码越多,那么你可能产生的安全漏洞就越多。

回顾过去的几年,不管是DEFI还是链本身,大家都会发现很多各种各样的漏洞,导致很多用户有各种各样的财产损失。

动态 | 更多人想通过谷歌知道如何购买XRP:据dailyhodl报道,在谷歌2018年最热门\"How to”搜索中,“How to Buy Ripple”(如何购买XRP)排名第四,“How to Buy Bitcoin”(如何购买BTC)排名第八。[2018/12/14]

这就使得区块链本身需要一个比较好的升级——不管是智能合约升级还是链本身的升级。

但如果我们频频地去使用这种硬分叉进行升级,首先时间赶不上,因为升级需要“各个矿工在很短的时间内,把自己的软件升级到最新的版本,然后在某一个特定时间内大家共同去升级到这样的版本,最后从旧链切入到新链上面”的这样的一个逻辑。

然而,由于硬分叉,这种升级模式成本极高,而且很多时候可能会导致你本身的链又分叉出其它的链。

那么像Substrate就有一个无缝的链上升级。其实就是将开发者相对应的一个Runtime提交到链上面,然后进行一个验证者链上投票,大家可以看到这其实是跟链上治理相关的。

链上投票完成以后,如果绝大多数人同意进行对应的一个升级,那么开发者提交的一个Runtime就会被写入到整个链的Runtime里边,进行对应的升级。

有了这样一个无分叉链上升级,就可以保证区块链开发者可以更安心的运行自己的区块链。

即使出现一些问题,也可以很快的去进行修复或改正。

图9

6、链下工作机

大家都知道,在以太坊上面我们有各种各样的预言机,例如chainlink。

在过去的半年,预言机是很受到各种各样的人的关注的。

因为以太坊本身无法打通链上链下的渠道,所以链上如果想要获得链下数据——例如各种各样的通证价格,就需要这种预言机将数据发送到链上。

而Substrate本身就是链下工作机的运行原理——其实就是链上的这些节点,它们会通过链下工作机去取得链下的相对应的数据。

图10

那么这些链上的验证节点,就可以对链条数据直接进行处理。

未来的话可以对处理结果——例如在链上形成共识,来保证可以更快、更方便的拿到链下信息,并进行相关的计算。

像在波卡或Substrate对应的生态里,就不太需要这种单独的预言机。因为对应的这种链下工作机的接口已经写的比较好了。

与此同时,大家也可以看到对应的这样一个场景:除了我刚刚提到的想去拿一些链下数据;还有就是使用链下工作机的一些场景。

声音 | 埃森哲报告:银行目前正评估如何使用区块链支付:据bitcoinexchangeguide消息,埃森哲(Accenture)最近进行的一项调查发现,近90%受访银行高管表示,他们各自的银行目前正在评估使用区块链技术执行支付的想法。大多数高管认为区块链必须提供的长处包括:降低加工成本、错误数量减少、业务处理速度更快。报告还指出,中国26家上市银行中有12家已经在治理框架内实施了区块链技术,其中包括中国银行和招商银行等大银行。[2018/11/3]

例如某些比较庞大的计算,我们就可以使用链下工作机来完成,结果完成后再返回给对应的一个链上验证者。

这里有一些链下工作机的相关学习资源,大家可以进行一个参考。

图11

7、如何更好的接入到波卡里面?

前面我讲了一些关于例如波卡是如何使用Substrate进行开发的,以及Substrate写出来的Runtime大概是什么样的,同时还有Substrate进行开发的优点的话题。

那么大家可能也更想知道:如果用Substrate去开发出一套区块链系统,我是如何更好的接入到波卡里面的?

大家可以看一下图12,其实就是关于波卡整个的一个框架。

熟悉波卡都知道,Polkadot最中间、最核心的是叫做RelayChain或者叫做中继链。中继链里面跑了很多对应的验证节点,叫做区块验证节点。

图12

不同的链如果接入到中继链里边,它们就会作为一个平行链接入到中继链里边。

很多比较大的区块链系统,例如比特币或者以太坊,它们如果想接入到波卡里面,就需要通过桥首先调节到一个平行链上面,再通过平行链与其他的平行链沟通。

作为平行链,它们对于内容的或者区块的验证要通过中继链相关的验证节点来完成。

那么的话大家就会问,平行链本身需要什么节点?这就像图里面提到的一样,需要叫做collator的这样一个类型的节点。

这些节点就负责采集每个平行链对应的区块,然后提交给中继链随机选择的一些区块验证节点。这些区块验证节点就会去验证平行链里对应的区块。

与此同时,使用Substrate写出来的区块链,还需要另外一个模块叫做Cumulus。大家可以在用Substrate写完这个Cumulus后,再进行稍微的改进,就可以用Cumulus连入到平行链里面。

当然,不是每一个Substrate链都可以连入到平行链和中继链,或者波卡里面——这就涉及到一个平行链插槽的拍卖。

图13

8、Web3基金会如何支持波卡生态发展?

波卡生态里面的项目特别活跃。大家可以看一下,不管是基金会还是Parity,我们对波卡生态项目的支持,都是很高的。

例如我们在大概3月的时候,就已经发放了超过100个项目对应的Web3项目,与Web3基金市场grant的支持。

与此同时,我们也会有叫做builder?program去帮助社区一些相对成熟的团队,给他们提供技术及商务市场的一个服务。

当然,作为一个不太熟悉技术的社区成员,你也可以参加我们的大使计划,去帮忙推广波卡相关的技术及理念。

图14

在亚洲或者国内,大家可以看到从今年5月份开始,我们跟万向合作做了Web3训练营,孵化了15支团队。

这15支团队大部分已经上了相关的测试网和主网。然后像做融资等也都是非常受欢迎的。

未来,我们也希望有更多、更好的团队可以加入到我们的Web3训练营里。我们会提供技术、商务以及市场相关的支持。

全球已经有超过100个团队基于Substrate进行开发区块链。

我们作为亚洲团队或者说中国团队,大家可以看到,在过去的一段时间里,我们已经为大家提供了各种各样的Substrate开发的相关中文资料。

不管是知乎专栏、Polkadot公众号,还是线上、线下活动,包括哔哩哔哩直播,都欢迎大家去搜索Substrate,或搜索我们的社区,积极加入到我们的活动里面。

与此同时,我们也有一些最新的活动——例如在月底我们要举办国内首次web3大会,主题就是开放、开源、互联。

我们会邀请海内外——不只是区块链行业或波卡生态项目及嘉宾,我们还会邀请海内外比较出名的、对Web3整个领域贡献比较大的嘉宾,去分享他们对Web3的理解,以及对Web3生态的贡献。

图15

大家如果感兴趣,可以去学习这样的一个教程,去体验一下Substrate新的开发框架——不管是链上升级,还是链下工作机。以及我们提供的各种各样的模块,来搭建自己的区块链。

很高兴今天能收到密码极客的邀请,今天为大家分享了这么多,也希望大家未来不管是在波卡生态,还是在区块链生态,都能够更好的开发、融入到我们的区块链行业,谢谢大家!

问答环节

问题一,来自网易区块链创新业务负责人胡志敏。

胡志敏:如果作为一个开发者,想在波卡生态中和基于Substrate上进行区块链创业的话,一定会需要一些启动资金,我想了解polkadot官方基金对于区块链应用的扶持策略,比如对于什么样的项目会启用官方投资?

贾瑶琪博士:关于波卡生态和机器设备进行开发的相关项目和团队,我刚刚已经讲过,不管是基金会还是parity,都会提供比较大的支持。

关于资金方面,基金会会根据项目相关的资质来进行评估。

大家可以去申请一个叫做Web3grant这样的一个项目。对于一些相对比较好的项目,基金会会提供大概3万美金的一个支持。

当然,对于比较复杂的项目也会提供更高资金的支持,但是需要花费更长的时间进行审核。

对于一些相对成熟的、有产品或者有测试网的项目,可以申请我们比较成熟的、相关的一些program。例如builderprogram或者我们的web3bootcamp,web3训练营。我们会对这些项目提供技术市场以及商务相关的指导与帮助。

与此同时,我们也会联系波卡生态里比较积极,支持我们的相关投资人或者海内外投资人,去帮忙观察一下这些项目,并且进行一些相关的投资。

问题二和问题三来自Coinversation代码贡献者,北大毕业,有12年程序开发经验的清欢。

问题二

清欢:如果开发平行链,后续平行链接入卡槽的成本会是多少?

贾瑶琪博士:针对第一个问题,如果开发平行链,那么插槽的成本会是多少?目前来讲,我们还没有一个很明确的计算。例如大概多少的dot你可以拿到插槽。但就目前来看——因为我们的插槽不是直接去买卖的,而是需要用户去锁自己对应的一个dot——那么的话,其实我们还是鼓励不同的团队去更好的发展自己的社区,在未来可以通过众筹的方式或去发展自己平行链这样的一个盈利能力,然后就可以用自己盈利获得的资金去进行插槽拍卖。

问题三

清欢:Coinversation使用ink!智能合约开发项目,目前从开发工具到智能合约测试再到部署都相对比较烦琐,后续如何能降低这些开发的门槛?

贾瑶琪博士:ink!现在已经出到第三个版本,具体情况大家可以去看一下。

关于ink!相关的开发、开发的模块以及相关的组件,我们也在逐步进行开发完善,从而方便更多的开发者去更好的使用ink!科技来进行开发。

目前你讲得也很对,可能有些开发工具确实不是那么地到位。但我们的Web3基金会已经给了一些开发工具的团队在做类似于remix的一个Ide,来帮助开发者使用ink!进行开发。

问题四

Polkadot社区1群成员:波卡或Substrate的应用开发必须要作为平行链吗?这样每个应用都开发链,平行链的插槽不够了怎么办?

贾瑶琪博士:除了平行链,其实还是有其他的方法。

第一个方法就是我刚刚提到的,可以去通过平行线程,然后接入到系统里面。

平行线程不需要一个平行链团队独占一个插槽超过半年或两年。它只按需竞拍不同的区块,然后把自己的区块写入到波卡系统里面。

当然,还有一些方式。如果你只是搭建一个比较简单的应用,那么可以尝试使用ink!或Solidity编写智能合约,然后可以将自己的智能合约或者相关的应用部署在智能合约平行链上面。通过智能合约平行链去调用以及提供数据给其他的平行链,还可以利用到波卡对应的跨链优势。

还有,也可以搭建一个单独的Substrate的链。未来通过某种方式桥接到一些平行链上面,那么通过平行链就可以将自己链的数据与其他平行链进行沟通。

大致的话通过以上三种方式,再加上拍卖平行链插槽,然后接入波卡。一共四种方式来接入到波卡的系统里面。

标签:TRASUBUBSRATTheopetragov币subdaoSubscriptionsPIRATE

MEXC热门资讯
比特币衍生品市场的下一步是什么?

在过去的30天里,芝加哥商品交易所的未平仓合约几乎增加了一倍。实际上,顶级衍生品交易所的未平仓合约总计增长了31%,而对Deribit,BitMEX和OKEx的价格走势图进行分析后,就可以明显看出对比特币价格急剧上涨的反应.

1900/1/1 0:00:00
BTC三个月内或将创历史新高?

比特币价格昨天一度上涨至13400美元,有业内人士认为,比特币的价格突破去年6月14000美元附近的高点指日可待.

1900/1/1 0:00:00
区块链数字货币交易所系统开发解决方案系统搭建

区块链数字货币交易所系统开发解决方案系统搭建随着行业和市场的逐渐成熟,对交易平台提出了更高的要求。在新时代它不仅仅是交易平台,将会承载区块链行业各种应用的入口,以及区块链应用相关的资产管理,多元化交易等功能.

1900/1/1 0:00:00
杨添论币:ETH行情分析及现价操作思路

以太坊昨夜也联动跟跌了一波,下破400关键支撑后一波暴跌币价最低摸到383,凌晨开始币价回暖,目前已经回到393点位.

1900/1/1 0:00:00
对Filecoin项目的思考分析

最近我们的读者中有不少都问到了这样两个问题:1、我手里持有很多XXX,我是不是应该把它换掉?2、一直在关注Filecoin,现在可不可以开始投资?今天和大家分享我对这两个问题的看法.

1900/1/1 0:00:00
一文梳理Harvest.finance事件:到底发生了什么?

10月26日,有用户发现DeFi挖矿项目?Harvest.finance疑似遭到黑客攻击。黑客借用闪电贷,获利近2400万美元。随后市场信息纷纷涌出,由于涉及金额巨大,很快引起了国内外加密社区的猜想.

1900/1/1 0:00:00