LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 密码极客 & 波卡生态系列分享会第一期:如何基于波卡开发区块链项目(上)

密码极客 & 波卡生态系列分享会第一期:如何基于波卡开发区块链项目(上)

2020-10-27 密码极客 来源:链闻

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

此次活动由密码极客与星球日报、Parity 主办;TokenClub、Crypdot capital、Patract 联合主办;媒体支持包括金色财经、火星财经、链闻、碳链价值、Blocklike、巴韭特等。此外,链节点、币乎、头等仓、Doter 等也为我们提供了社区支持。

贾瑶琪博士的演讲观点新颖,理论详实,引人入胜。密码极客为了使小伙伴们能够再一次回顾这场精彩的讲演,特意对此进行了归纳整理,并分成上下两篇发布。

演讲环节

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

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

图 1

大家可以看一下图 1,其实要从头开发一个区块链,你要考虑到的就不只是数据库公式算法,还要考虑到处理各种各样的交易以及相关的转换函数。

与此同时,如果你想加一些比较复杂或者先进的逻辑在里面,例如零知识证明,这样就需要在开发区块链时额外添加这些比较复杂的算法及功能。

那么大家其实就会想到:我们如何使用已有的这些——不管是公链技术还是联盟链技术来进行二次开发呢?

在过去的十几年当中,特别是 09 年比特币白皮书的上线,以及 15 年以太坊系统的上线——大家可以看到区块链不止可以做支付,而且还可以在上面部署一些智能合约。

那么就有很多的开发者是基于比特币做二次开发,以及一些比较有意思的 utxo 模型的一个区块链系统,还有根据以太坊做的一些调整。

然而,这些基于已有的区块链进行二次开发来做一些新的链的这样一个系统,他们最大的问题就是——像比特币或者以太坊早期的这些项目,他们也有一个比较好的开发框架,但其实大家都是在源码基础上进行改动的,这样就要求开发者对于源码的理解比较高。

与此同时,由于这些源码没有比较好的模块化来作为一个框架,开发起来难度很大。

而我们 Parity 从 Gavin 在早期 15 年建立 Parity 的时候,最初就在帮以太坊开发它的 Rust 客户端,之前是叫做 Parity Ethereum,现在改名叫做 Open Ethereum,我们积累了很多各种各样的区块链开发经验,特别是从 18 年开始积极开发的 Polkadot 跨链项目。

我们吸收并总结了很多开发供应链的经验,然后从这些经验里边,抽取以及进一步的深化,从而做出了这样的一个区块链开发框架。而这套框架我们命名为 Substrate。

图 2、3

因为波卡是一个跨链项目,所以我们为了帮助开发者更快的开发自己的一个区块链系统,我们就开发了 Substrate 这样的一套框架,来方便开发者去开发相关的这样一个区块链系统,我们把它叫做平行链。

大家可以看到 Substrate 其实包含了很多刚刚我提到的这种区块链的核心组件,例如数据库层、网络层以及可插拔的共识协议。

同时,我在之后也会具体提到——它包含了比较有意思的链下工作机以及链上的可升级的功能,这样就可以帮助开发者在开发的时候,只选用自己想使用的一个模块,就可以很快速的开发相关的一个区块链系统。

那么可以快到哪种程度呢?

Gavin 在 18 年的时候,在 Web3 峰会上做了这样一个演讲。就是拿出崭新的苹果电脑,并安装上这样的一个 Substrate 相关的 dependency,到最终编译出一个区块链,只花了 15 分钟。

可想而知,这个还是 18 年的不稳定版本,那现在的话 Substrate 已经升级到到了 2.0 版本。在这样一个版本上进行开发,会有比旧版更好、更快速的用户体验。

回到我们今天演讲的主题,在波卡上如何开发区块链系统。相信大家现在已经有了一个比较好的眉目——其实就是使用 Substrate 这样的一个开发框架来进行开发。

图 4

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

图 5

其实除了作为波卡的平行链或者平行线程之后,也可以直接联络波卡进行这样的一个部署。

特别是在国内这种特有的环境下,大家也可以使用 Substrate 搭建自己对应的具有商业逻辑的联盟链或者私有链,以及一些对吞吐量要求比较高的、可以针对某一个的应用——例如游戏单独搭一条链并部署在自己相对应的环境下边。

当然,目前大家在 Substrate 上进行开发时,比较有利的一点是:经过三年的发展,整个波卡生态已经逐渐壮大,以及经过开发者们持续的开发,Substrate 的开发生态以及工具也在不断增多——大家可以用 Polkadot-js;内置的话也是有一个比较好的区块浏览器;大家还可以使用 Parity Signer 这样的一个离线的硬件钱包等。

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

图 6

与此同时,除了图 6 上面提到的 ink! 智能合约。这种 ink!.Rust 类型的智能合约,我们目前也兼容了 evm。其实大家都可以去编写这些智能合约,然后在自己对应的消费链上面运行。

接下来我就大致跟大家分享一下怎么使用 Substrate 进行 Rust 开发。

Substrate 跟其他的智能合约开发不太一样,因为你是相当于开发一个区块链。虽然区块链底层,像数据库、网络控制协议都搭好了,但针对你自己的特殊需求,例如你要做一个游戏区块链,或者是偏支付的这样一个链,这种核心的商业逻辑你还是需要进行一个开发的。

图 7

要进行开发的话,需要这种 Substrate Runtime。

图 7 里面大家可以看到,Substrate 跟我们平时开发的智能合约不太一样,它是有一些开发上面的 policy 是需要大家去记住的。

例如第 1 点,在 Substrate Runtime 你如果发了一个我们叫做 exchange,或者你就把它当做交易。发交易的时候,如果这个交易在进行时发生了问题,那么交易对状态的改变是不会回滚的。

而在以太坊上面进行 solidity 的开发,如果交易执行不成功,那么它的状态是会回滚的。

这就要求我们在开发 Substrate runtime 的时候,最好是要我们自己先验证一下它这样一个逻辑对不对,然后再写。

接下来的这几页 PPT,大家可以看一下——在写 runtime 或者相对应的逻辑的时候,需要大家在里面填充自己的代码。

大家可以看到模块定义通常是包含怎么定义存储事件以及错误,还有就是一些相关的函数。

图 8

对于这种,如果大家想引用其他相关的一些 treat 的话——因为整个 Substrate 都用 Rust 写,所以这里也会用到一些 treat。

如果大家想知道更多 Rust 相关的信息,可以在网上查一下 Rust 的相关课程,或者加入我们的 Substrate 课程,我们会给大家介绍一些 Rust 相关的基础。

像存储的话,大家可以看到其实里边有一些比较简单的类型与方法。可以学习里面已经有的一些简单的类型或例子,然后根据自己的实际情况,去改一下相关的变量名字,再进行这样一个操作。

与此同时,类似于我们写智能合约,在做一些操作的时候都要触发事件或者发出事件,那么在这里你也可以去定义一个事件。

当然,这里面还有一个地方就是 decl_module,其实就是要定义自己相对应的 runtime 的函数。

在最后,我给大家推荐一个叫做Substrate.dev的网站。上面有很多各种各样的教程,大家可以跟随教程去学习,或者去做一些比较简单的例子来深入探索。例如怎么去根据这几个模块定义对应的事件存储和函数,来完成自己对应的 Runtime,以及相对应的逻辑定义与操作。

首先感谢各位小伙伴的支持,因为文字过长,我们分为上下两篇发出,在这边先节录两条当晚提问嘉宾的问题。

问答环节

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

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

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

关于资金方面,基金会会根据项目相关的资质,以及它有意思的点,来进行评估。

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

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

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

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

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

问题二

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

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

问题三

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

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

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

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

- 感 谢 阅 读 -

密码极客 & 波卡生态系列分享会合作

请扫描下方二维码

来源链接:mp.weixin.qq.com

—-

编译者/作者:密码极客

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

知识
LOADING...
LOADING...