木星链 木星链
Ctrl+D收藏木星链

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

作者:

时间: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其实包含了很多刚刚我提到的这种区块链的核心组件,例如数据库层、网络层以及可插拔的共识协议。

人民日报整版阐释如何加快数字化发展建设数字中国:加强区块链等关键数字技术研究:金色财经报道,《人民日报》2021年10月29日 09 版整版阐释如何加快数字化发展,建设数字中国,其中提到坚持创新驱动,全面推动区块链等数字技术融入政务服务全流程。夯实技术创新基础,加强区块链等关键数字技术研究,夯实技术创新升级基础。[2021/10/29 6:18:58]

同时,我在之后也会提到包含了比较有意思的链下工作机以及链上的这种可升级的功能,这样就可以帮助开发者在开发的时候,其实大家只选用自己想使用的一个模块,就可以很快速的开发相关的一个区块链系统,可以快到哪种程度,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是跟其他的智能合约开发比较不太一样,因为你是相当于开发一个区块链,虽然区块链底层,像数据库、网络、控制协议都搭好了,但是针对你自己特殊的这种需求,例如你要做游戏的一个区块链,或者是偏支付的这样一个链,这种核心的商业逻辑还是需要你进行开发的。

高盛:探索如何确定比特币和其他加密资产的“基本面”:本周,高盛经济研究团队的Zach Pandl和Isabella Rosenberg发布报告,探索了如何确定加密资产的基本面问题。报告指出,将加密资产等同于黄金是确定其基本面的常见框架,但除此之外,加密货币价格也与其底层分布式网络的价值有关。报告使用区块链地址估算网络用户数量,并与货币市值进行比较,观察到:“市值与网络规模之间存在明显的相关性”,且相关性超过1。他们基于历史数据计算出的平均增长曲线接近价值=用户数的1.4次幂,这给出了一个利用基本面作为市值参考的基准比率。基于该推断,报告指出BTC的市值远大于基本面,其基于用户增量的价值(基本面)与市值相比存在严重偏差。过去几年,比特币市值较2018年平均水平上涨520%,但网络仅增长60-100%。报告认为这一偏差意味着要么比特币现在被高估,要么2018年被低估,要么兼而有之。但报告也指出,除基本面因素外,加密货币上涨还有众多其他因素,包括情绪,以及它作为一种快速致富的新方式的吸引力。但投机交易带来的网络活动增加并不能完全反应基本面的改善,因为平台并未获得更高的经济价值,要使加密货币网络具备可持续价值,活动需要由非投机性用例驱动,而目前此类用例十分缺乏。(雅虎财经)[2021/7/21 1:06:15]

图6

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

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

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

图7

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

日本金融厅长官:日本要密切关注如何克服发行CBDC的挑战:日本金融厅长官HIMINO表示,日本不仅需要对央行数字货币(CBDC)进行学术研究,要更密切地关注如何克服发行央行数字货币可能带来的挑战。如果只是解除对比特币和其他加密货币的管制,这可能只会增加投机交易,并不一定会促进技术创新。不考虑推动加密货币交易的新举措,希望更多地关注如何将区块链技术与增强公共福利的政策结合起来。[2020/8/5]

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

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

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

图8

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

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

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

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

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

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

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

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

现场 | 华盛顿州ICT行业部门负责人:监管者关心区块链如何与经济结合:金色财经现场报道,NEO DevCon 2019开发者大会今日在西雅图举行,华盛顿州信息和通信技术(ICT)行业部门负责人Joseph Williams发表了题为“区块链的监管视角”的主题演讲。Williams表示,监管者关心的是区块链如何与经济结合起来,如果出现问题怎么办,如何建立生态系统等问题。政府机构能够为区块链提供区块链监管框架以提振市场信心,为市场和公众释放对于科技信心的信号。此外,法律框架和监管者可以移除现有法律体系关于区块链的障碍,也可以制定支持让区块链成为可能的法律。此外,Williams还提到了美国迫在眉睫的政策问题,包括区块链交易的法律; 服务等级和保障; 责任,特别是对于发生故障的服务; 数据隐私; 区块链存储的数据作为证据的法律框架; 强制/性能。[2019/2/17]

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

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

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

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

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

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

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

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

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

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

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

图9

6、链下工作机

国际货币基金组织主席:最终幸存下来的加密资产可能会对人们如何储蓄产生重大影响:据bitcoinist消息,国际货币基金组织(IMF)主席拉加德(Christine Lagarde)在其新的博客文章中表示,最终幸存下来的加密资产可能会对我们如何储蓄,投资和支付账单产生重大影响。拉加德指出了加密货币能够进行快速和廉价的跨境金融交易的好处,并称比特币的基础技术——分布式账本技术可能会改变金融市场的运作方式。此外,拉加德指出,智能合约的革命性,可以移除中间商,而区块链技术能够安全地存储重要文件。最后,拉加德指出,在发展中的经济体,这种进步可以帮助确保产权,增加市场信心并促进投资。[2018/4/18]

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

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

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

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

图10

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

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

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

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

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

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

图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的链。未来通过某种方式桥接到一些平行链上面,那么通过平行链就可以将自己链的数据与其他平行链进行沟通。

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

标签:区块链TRABSTSUBS区块链专业怎么样Bitrace TokenBSTN价格SUBS价格

比特币价格热门资讯
XRP:关于IFSWAP易富机池11号WAL池到期取回的公告

pspanspandiv9月30日,跨链DEFI协议易富IFSWAP开启了易富机池11号,为持有WAL的用户提供跨链挖GOF的机会.

1900/1/1 0:00:00
COM:GX.COM杠杆ETF新增FILUP和FILDOWN的公告

尊敬的GX.COM用户:为了丰富ETF产品交易对,提高用户体验,GX.COM现已新增FILUP/USDT和FILDOWN/USDT杠杆ETF标的.

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

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

1900/1/1 0:00:00
FTX:亿和论币:10.28 ETH行情 真的是让你琢磨不透吗?

大家好,我是你们的老朋友亿和。在这里没有模糊的区间,只有精确的做单点位;没有百分百的准确,只有稳定的盈利;没有虚假浮夸,只有真实尊重.

1900/1/1 0:00:00
稳定币:关于KCS挖矿算力和挖矿手续费的说明

亲爱的的Pool-X用户,我们很荣幸的宣布第一期KCS挖矿活动现已开启,各位矿工可以点击‘一键挖矿’按钮立即参与挖矿获取KCS收益.

1900/1/1 0:00:00
比特币:合约炒币机器人;BTC鲸鱼拥有数量创新高和27号操作思路

??比特币鲸鱼数量创新高市场看涨声音频发在过去三周内,比特币从1.05万美元飙升至1.31万美元,在比特币价格飙升至目前的水平之后,市场情绪转向了极度兴奋的水平.

1900/1/1 0:00:00