如何基于Substrate分分钟打造Web3项目
本文来自于一块链习《区块链技术公开课100讲》第28讲,Polkadot 社区大使、Substrate & Polkadot 代码贡献者陈锡亮老师分享的《如何使用 Substrate 打造 Web3 项目》复盘内容。
大家好,我是陈锡亮。今天在此和大家分享如何设计、打造一个区块链项目,简单的讲解下为什么要学习 Substrate 以及如何使用 Substrate 打造一个全新的区块链。然后我会介绍下由 Centrality 基于 Substrate 开发的区块链生态圈—— CENNZnet,最后展望 CENNZnet 生态圈和波卡生态圈一起可以实现的未来。
我相信很多人都在准备或者正在部署区块链领域,这是一个很新的领域也有着非常广阔的空间和机会。有些人可能会有点迷失,对有些方面有点误解。我今天尝试着再次介绍下 Web3 的技术架构,希望能对大家有些帮助。
W3F Web3 基金会将 Web3 的技术架构一共分成了五层,我这边给大家逐一介绍下。
http://wiki.web3.foundation/en/latest/tech_stack/tech_stack_overview/
第零层
? ? ? ?
Layer 0第零层是整个Web3架构的基础,由两部分组成
P2P 网络连接层
基于传统互联网协议 TCP/IP, WebSocket,DNS 等等,提供了点对点的连接
libP2P
devP2P
跨平台计算指令语言
部分基于传统虚拟机,提供了跨平台的通用计算指令集
EVM
Wasm
UTXO
第一层
? ? ? ?
Layer 1第一层是建立在第零层之上,提供了分布式计算和交互的功能,由四个组件组成
去信任 / 低信任 交互协议
去信任或者低信任的交互协议让节点之间可以进行交互,达成共识,也可以理解成是单链协议
比特币
以太坊
波卡平行链
Substrate 独立链
去信任共享安全交互平台
作为共享安全的平台可以让很多小型的应用链共享安全性,达到安全高效去信任化的跨链交流
Polkadot
分布式数据存储协议
类似于传统的云存储服务,比如AWS S3,但是建立与去中心化基础之上,让用户真正的能够拥有自己的数据
IPFS
临时信息交流协议
提供了去中心化的临时信息交流方式,这类消息是不同于链上交易消息,是不需要长期储存的
Ethereum Whisper
Matrix
第二层
? ?
Layer 2 第二层建立与更低的两层协议之上,提供了更高级的功能比如扩展性,大量运算,和加密信息
目前的第二层协议有六大类,大多都是处于前期开发状态
State Channels 状态通道,链下信息交流,链上最终确认
很多情况下我们不在乎中间过程,只要结果是双方任何的正确的结果就可以
比特币闪电网络
Plasma 协议,解决链上扩容问题
加密存储,提供端对端数据加密存储方案
存储激励机制,提供冗余备份存储方案,保障数据能够真正的拥有多个异地备份
大量运算协议,提供可靠和便宜的运算方案
分布式私密管理,使用加密算法提供了去中心化分布式的私密管理
第三层
? ?
Layer 3 第三层为项目开发提供了高级语言和代码库
Protocol-extensible developer APIs & languages 基于核心协议的开发语言和接口
web3.js
polkadot.js
Solidity
ink
第四层
? ?
Layer 4 第四层是Web3技术架构的顶层,让用户可以轻松的使用Web3技术
Protocol-extensible user-interface cradle 基于核心协议的用户界面应用
各种钱包应用
Metamask
波卡生态圈目前实现了 Web3 生态圈中的几个关键组件:
去信任共享安全交互平台:就是波卡主链,作为中继链,为平行链提供了安全的交互平台
去信任 / 低信任 交互协议:各个使用Substrate创建的独立链和平行链就属于这部分
部分第二层协议的实现:现在有多个团队包括Parity在基于Substrate开发layer 2第二层的扩容方案
开发语言和代码库:polkadot.js, ink, Substrate
应用:官方应用就有Polkadot Portal网页钱包,Polkadot Extension浏览器签名插件,Parity Signer手机钱包和签名应用。还有大量的第三方应用正在开发
?
我在波卡社区中发现很多人对于波卡的架构一些误解,所以我在这边说明一下。有些文章说 Cosmos 类似于安卓,是开放的,波卡类似于 iOS,是封闭的,这点是完全错误的。
从架构上说,Cosmos 的架构完全可以使用 Substrate 轻松实现。这个是波卡生态圈的架构和 Cosmos 的架构,很明显,波卡的更加的完善。
从开放程度来说波卡完全不会低于 Cosmos,毕竟都是开源开放的项目。任何人都可以利用 Substrate 实现一个完全独立的链,拥有自己的验证人节点,不需要受制于任何其他人。
在此之上,波卡主链使用了共享安全的中继链和平行链的架构,是一个从本质上更加安全的跨链架构。确实,主链的插槽是要使用 DOT 来购买,需要一定成本。
但在这个够买来的是一个非常高的安全性,与和其他平行链交互的门票,是绝对物有所值的。
就算有些项目,比如交易所,不希望使用波卡的共享安全,但也完全可以自己使用Substrate 开发出自己的 Proof of Authority PoA 的链,在通过转街桥与波卡平行链连接,继而加入整个波卡生态圈。
总而言之,Cosmos和 Tindermint 目前无法实现波卡的架构,但是 Substrate本身就完全可以实现 Cosmos 的架构。
还有很多对比说,Cosmos 是可以无限扩展的,波卡只支持100个插槽,这个也是完全错误的。虽然波卡第一阶段中继链只支持100个左右的插槽,第二阶段支持多层中继就能够支持一万个插槽。
如果这样还不够的话,任何人随时都可以启动一条新的中继链,然后多条中继链可以使用转接桥进行交互,同样达到无限扩展的效果,不会比其他任何项目要差。
? ? ? ?
现在普遍的区块链项目一般都是第一层,各种公链私链的开发,或者第四层区块链应用的实现。这次分享我着重讲解第一层去信任 / 低信任 交互协议的实现,简单的说就说一个区块链的实现。
实现一个区块链项目是一件非常庞大的工程,其中包含了多个组件模块。我以一个通过手机钱包发送交易的流程为例,大概讲解下一个完整的区块链项目都会涉及到哪些组件。
首先以用户的手机钱包为起点,手机钱包提供了用户界面,让用户可以方便的发送交易。然后钱包会使用 JS SDK 构造这笔交易,进行签名,并且通过 WebSocket 或者HTTP RPC 将这比交易发送给一个节点。
组件:
钱包应用
JS SDK
构造交易
签名
RPC客户端
RPC 服务端
当节点通过 RPC 服务端收到这比交易后,首先会传给交易池 transaction pool。交易池会简单的验证下这比交易的合法性,比如验证格式,验证签名等等。
非法的交易会直接舍去,合法的交易则会存入交易池并且通过P2P模块广播给其他连接的节点。
组件:
交易池
P2P模块
当一个节点收到另一个节点发送来的交易,首先同样传给交易池并且验证这比交易的合法性,然后根据结果在节点声望模块中调整相应的声望。
如果一个节点经常发送非法交易,则会被降低声望,最终被拒绝连接进入黑名单。合法的交易会传入当前节点的交易池,如果是第一次收到这比交易,则会同样适用 P2P模块广播给其他连接的节点。
组件:
节点声望模块
这比交易最终会进入验证人节点,或者矿池的交易池中。然后验证人/矿池会将交易池中的交易打包,执行,生成候选区块。
PoS 的情况下验证人节点会签名并且通过 P2P 模块广播这个候选区块,其他验证人收到候选区块后会验证并且投票,同样通过 P2P 模块广播选票。
在经过一轮或者多轮的投票后,一个候选区块会拥有绝大多票数,成为最新的区块。PoW 的情况下矿池会将打包的区块发送给所有矿工,分配挖矿任务,每个矿工或者矿机则会根据分配的任务挖矿。
如果矿池成功挖出区块,则会将区块广播给整个网络,尝试让大家接受这个新的区块,并且根据矿工贡献分配收益。
如果多个区块被同时确认,则会有分叉的情况,这个时候共识算法的分叉选择机制则会选择最优的分叉来确认,而在个别情况会出现重组多个最新区块的情况。
组件:
共识算法
出块机制
从交易池选取交易打包成区块
执行区块 / 交易
确认区块
PoW:矿池,矿工
PoS:验证人节点
分叉选择机制
当节点收到最新的区块后,会先验证区块的合法性,比如 PoW 算法会验证区块哈希是否符合要求,PoS 算法会验证区块是否有足够的投票签名,投票者是否是合法的验证人。然后会本地执行区块,记录相关的事件和状态的变动。
同样,执行的结果也会和区块头中的信息比对,确认结果的一致性。合法的区块会同样的使用 P2P 模块广播给其他连接的节点。
区块中相关的事件会发送给所连接的客户端,比如最开始的手机钱包,通知交易已经被确认。区块中被确认的交易会被从交易池中移除。
最后,手机钱包会收到交易确认的事件通知,向用户显示交易结果。完成一个发送交易到确认交易的流程。
还有一个流程也很重要,就是新的节点如何加入现有的网络。
?
首先,新的节点要有相关的配置,包含了创世区块,和引导节点。首先新的节点会使用 P2P 模块的各种节点发现机制来寻找其他的节点,最简单的就是直接连接已知的引导节点。
连接到新的节点之后,先会查询对方节点的信息,判断是否需要进入批量同步模式。如果对方节点的最新区块高度高出很多,则会进入批量同步模式。
批量同步模块会直接向其他节点批量下载区块数据,然后由共识模块验证区块合法性,和更新本地数据库。
当所有的区块都同步后,节点就会进入监听同步模式,只会监听新区块的消息而不会主动查询下载区块信息。
组件:
创世区块
引导节点
同步模块
批量同步模式
监听同步模式
所有组件:
钱包应用
JS SDK
构造交易
签名
RPC客户端
RPC 服务端
交易池
P2P模块
节点声望模块
共识算法
出块机制
从交易池选取交易打包成区块
确认区块
PoW - 矿池,矿工
PoS - 验证人节点
分叉选择机制
创世区块
引导节点
同步模块
批量同步模式
监听同步模式
这些都是基本所有区块链项目都有的组件,还有很多更多的每条链独有的模块。大多数区块链都有世界状态,就要有状态模块来维护。
支持智能合约的链就需要有沙盒和虚拟机模块,比如 EVM 或者 WASM。隐私链就要有相关的加密隐私算法模块,其他的模块还有比如自治模块,质押模块,历史数据模块等等。
所以呢,如果大家想从零开始启动一个区块链项目的话,是需要消耗大量时间大量资源的,对于一般的团队来说是非常不现实的。
而且一个完整的区块链项目,除了需要实现这些组件以外,还有更高层的方面要考虑,其中最主要的就是安全性。
安全性与代币经济学
区块链领域不光对投资人,开发运营团队来说是遍地黄金,对黑客来说同样也是。基本每个月都会有新闻说谁被攻击了损失了多少钱等等。
自然而然,大家都不想因为这个而上新闻。所以一个好的区块链项目必须要有很好的攻击抗性。
世界上没有不透风的墙,同样也没有无漏洞的软件,那么有什么办法才能够保证我们不被攻击呢?
比特币的一个特性就是,你可以大量算力来攻击网络,但是你真要这么做了就只会得不偿失。这个的道理就是攻击成本大大的大于攻击收益。
没有人愿意做亏本的买卖,当攻击一个网络的成本大幅度大于收益的时候,这个网络就可以认为是相对安全的。再没有绝对安全的情况下,一个足够的相对安全就可以认为是安全的了。
反而言之,如果攻击成本低于攻击收益的话,那么基本就可以保证攻击一定会发生了,这几乎就是送钱的事,自然会有人去拿。
而这就又涉及到了一个很重要的领域,Token Economics 代币经济学,这个一个比较新的领域,同时也有很多方向值得大家摸索。Polkadot 做了很多相关的研究大家有兴趣的可以看看。
攻击一个网络最简单,也是最难防护的方法,就是 Denial of Service 拒绝服务攻击。这对于一个全新的网络来说,是非常难防范的,那么这是为什么呢?
几乎所有的区块链的交易费都是使用平台币来支付,但是平台币的价钱都是从零开始的。所以对于小型区块链,攻击者可以轻易大量的收购,然后低成本的进行攻击。
这就从根本上的限制了这个区块链平台上能持有的价值是无法超越其平台币的市场价值,从而大大的限制了发展速度。
所以作为一个区块链平台,平台币本身要有足够的价值,有着稳健的经济体系,才能保证攻击者的成本确确实实是大于攻击能造成的损失。
这对于一个全新的,或者小型的区块链项目是非常不容易办到的,也是为什么波卡设计了共享安全这个架构。
小型的区块链项目可以作为平行链接入波卡生态圈,直接利用波卡稳健的经济体系来保障网络安全,无需自己设计维护经济体系。
如何开发区块链
很多新的区块链项目是直接分叉现有的项目,再进行开发。比如很多项目就是直接基于比特别或者以太坊实现的。
这样的好处是可以直接拥有一个成熟的项目作为基础,不需要重新实现每一个单独的组件。
但是一个很大的缺点就是,现有的区块链项目的设计核心都不是一个通用的区块链开发框架,所以会有很多扩展性的问题,甚至导致需要大规模重构,才能实现新的特性。
这样就大大减少了使用现有项目的价值了,毕竟有些时候重构比重写还要费时费力。
还有一个很大的安全性问题,就是继承代码的同时,也继承了这些代码的所有问题。之前就有安全机构做过分析,比特币的代码有很多的安全漏洞,在比特币项目本身都被很快的修复了。
但是众多比特币的分叉项目并没有及时,正确的修复这些安全漏洞,导致大量的分叉项目非常的不安全。
还有很多安全问题是分叉项目不正确的修改了比特币的代码,导致了原有的安全准则被打破,从而造成了安全隐患。
如今,有了 Parity 所开发的 Substrate 框架,我们真正的拥有了一个真正意义上的完整的区块链开发框架,可以几乎不受限制的快速的开发出一个完整的,高性能的,安全的,区块链项目。
我先简单的介绍下 Substrate 核心开发团队 Parity 和创始人 Gavin Wood。我相信大部分人认识 Parity 都是从其开发的 Parity 以太坊节点开始的,这个项目已经大名鼎鼎就不需要我多说了。
Parity 同样还开发了比特币节点,Zcash 隐私链节点等等多个不同的区块链项目。而 Gavin 本人则是以太坊的创始人之一,一手书写了以太坊黄皮书。
所以我相信在 Gavin 带领下的 Parity 团队绝对是世界顶尖的区块链团队,有能力实现一个高质量的区块链开发框架。
Substrate 的前身是 Polkadot PoC-2 的版本。Polkadot 波卡是 Parity 的下一代区块链项目,使用共享安全的架构让大家可以快速的部署安全的区块链。
当Parity 团队在开发 Polkadot 的时候,他们意识到了他们可以把这个项目设计成为一个通用的区块链开发框架,而不仅仅是一个死板的区块链。
于是 Substrate 就诞生了,之后 Parity 就基于 Substrate 进行了新的 Polkadot的开发。
同时 Parity 自己和其他团队一起基于 Substrate 开发了各种其他不同的项目,证明了 Substrate 是一个足够应对各种不同的项目需求的开发框架。
现在 Substrate 的项目有类似比特币 UTXO 的链,有隐私链,有私有链,有以太坊2.0的项目等等,都充分证明了 Substrate 的通用性。
Substrate 它本身就实现了一个在功能性上可以与以太坊相比的,完整的区块链。所以基于 Substrate 开发,拥有着几乎所有直接分叉以太坊项目的优点。
但同时,Substrate 的初衷就是一个通用的区块链框架,所以开发者有很大的自由度可以轻松定义每个组件。
Parity 团队同时也在不断的开发优化 Substrate,所以开发者可以随时更新所依赖的 Substrate 的版本,避免上游的安全隐患被利用。
这就大大的减轻了开发一条链的工作量,大家可以专注于自己链上独有的特性开发,而其他的部分则可以使用 Substrate 提供的通用模块。
现在已经有多个基于 Substrate 的区块链项目正在开发中,横跨了各个不同领域。这包含了我们公司 Centrality 开发的 CENNZnet。
可以预见,接下来基于 Substrate 的项目会越来越多,而更早一步的掌握和熟练 Substrate 的开发技能则能够让你在成功的道路上比别人提前一步。
与传统区块链项目相比,Substrate 有三大特性,分别是可升级,高效率,和创新性。
可升级意味着链本身可以以无分叉的方式进行升级,即便旧节点不更新,也可以执行最新的链上逻辑,避免分叉。在传统的区块链项目中,比如比特币和以太坊,这是无法想象的事情。
每次重大升级都需要软分叉或者硬分叉。而这又意味着永久分叉的风险,对安全性,稳定性,都有很大的影响。
高效率意味着高额度的 TPS,和轻节点的实现。Substrate 自带的 Gandpa 和 BABE 混合共识机制可以在保证去中心化的同时,达到高效率的出块速度和最终确认速度。
而轻节点的设计则保证了手机端物联网端网页端都可以安全的与链交互,而不需要无条件的相信所连接的全节点。
创新性则保证了开发者最高的自由度。所有的模块都是可以定制,同时开发者可以轻易的开发出新的模块。Wasm 引擎的使用使得 Substrate 支持所有可以编译成 wasm 的语言和库。再配合基于 wasm 的智能合约,只有想不到的,没有办不到的。
那么如何学习 Substrate 这个框架呢?可以参加由我主讲的《Substrate 快速入门与实战》这门课程。
这门课程由 Centrality 和一块链习合作制作,据我所知是全球首个 Substrate在线开发课程,并且由 Web3 基金会推荐。
本课程中使用的所有源代码都是经过 Parity 开发者审核认可的,其中也包括了 Gavin Wood 本人的认可。
?
Gavin 的原话是:Bryan is a recognized contributor of Substrate. I recommend Chinese blockchain developers to take his course to learn how to build a blockchain project with Substrate.?
中文意思是:Bryan 是 Substrate 的杰出贡献者。我推荐中国的区块链开发者加入他的课程来学习如何使用 Substrate 打造一个区块链项目。
首期课程定于 6 月 2 号开课,招生限 50 人,学费 1299 元。所有按时完成作业的同学将获得一半学费返还。课程一共有8节课,每节课有40到60分钟的视频教程,每节课都有课后作业。每周都有讲师答疑,也有多名助教帮助学员。
课程内容包含了:
Substrate 架构
波卡与Web3生态圈
如何基于 Substrate 开发区块链项目
设计与开发一个加密猫 DApp 链
使用 polkadot.js 与链交互和开发前端
Substrate 底层实现讲解
Substrate 的缺陷与未来
我希望在这门课完结之后,学员都有能力进行 Substrate 项目的开发,并且可以参与一起打造波卡生态圈。
课程内容很多,所以对于学员有一定的基础要求。首先是要有基本的区块链基础,这方面的优秀课程很多,就不需要我在复述了。Substrate 是使用 Rust 语言开发的,所以我需要学员们有基本的Rust代码阅读能力。
Rust 的可读性还是比较好的,所以我相信大部分开发者只要做好准备都不会有问题。这边有两个官方教程大家可以先学习下熟悉Rust。
英文好的同学我推荐看官方英文教材,不然看中文翻译也可以。两个教程根据个人喜好选择一个看就可以了。
The Rust Programming Language:https://doc.rust-lang.org/book/?前11章
中文翻译?https://kaisery.github.io/trpl-zh-cn/
Rust by Example:https://doc.rust-lang.org/rust-by-example/?前16章
中文翻译?https://rustwiki.org/zh-CN/rust-by-example/
然后是开发环境,我建议使用 Unix 环境,比如苹果macOS或者各大 Linux 发行版本。
Substrate 是支持 Windows 的,但是支持相对不完善,所以为了不必要的麻烦,Windows 的同学可以装个虚拟机,或者使用 docker 来搭建一个简单的Linux命令行环境也可以。
如果大家对这门课程有其他的问题,可以向一块链习咨询。
接下来给大家介绍下我自己。我是陈锡亮,英文名是Bryan,现于 Centrality 任职产品架构,目前主要负责 CENNZnet 这个项目的架构和开发。
同时我个人也是 Polkadot 和Substrate 的贡献者,参与了多个模块的架构的讨论,和部分的实现。我也受邀加入了由 Web3 基金会组织的波卡大使计划,是最早一期的波卡大使成员,负责波卡社区的建设和推广。
?
CENNZnet 这个项目是基于 Substrate 所开发,算是比较早期的使用 Substrate 的项目之一。我们这个项目立志于打造的一个完整的区块链生态圈,为 DApp 开发者提供一个开发和部署 DApp 的平台。
CENNZnet 的架构大体分为四层,分别是区块链开发工具包 Plug,区块链CENNZnet,多个系统核心模块,和最顶层 DApp。
首先是最底层 Plug,这是一个基于 Substrate 的区块链开发工具包。其中包含了我们对 Substrate 的分叉,和一些通用的模块,比如通用资产模块,交易费模块等等。
在此之上,就是我们的 CENNZnet。CENNZnet 是一个公链,其中包含了大部分Substrate 所提供的模块比如质押模块,共识机制模块,所有 Plug 所提供的额外模块,和多个 CENNZnet 的核心模块,比如身份认证,交易所,加密通讯等等。
我这边举个简单的用例,在以太坊最常用的功能之一就是发行与交易代币。如果要发行代币,发行人需要自己寻找一个安全的 ERC20 合约的实现,然后部署在链上。
这样会有个问题,一是代币发行人需要验证自己的合约实现是安全的,同时使用用户同样也需要验证这个合约并没有漏洞或者后门。而且如果合约需要增加功能,那么还会有很多信任度的问题。
在 CENNZnet 上面发行代币就不需要考虑这些问题了,可以直接使用内置的通用资产模块的发币功能。这与直接网上找标准合约模版发币类似,但是系统内置的模块解决了用户的信任问题,就好比没人会质疑以太坊作为核心货币是否会有后门。
而且如果有需求,做为系统级模块的通用资产模块可以利用自治模块升级,添加新的功能,或者修复安全隐患。与此同时所有使用资产模块发行的代币都会一并升级,无需开发者维护。
我们会使用通用资产模块实现大部分的代币合约的需求,如果开发者需要额外的自定逻辑的话,则可以利用智能合约模块实现。用户可以部署智能合约,与我们的系统级模块进行交互,定制各种交互逻辑。
系统模块的另一个优点就是可以与其他的模块更好的整合,比如通用资产模块和交易所模块和交易费模块的整合。在以太坊一直有一个痛点,就是交易费一定要使用以太坊这个核心货币支付。
这有时候会造成很尴尬的情况,就是一名用户可能有很多很值钱的代币,但是账户上并没有以太坊,那么这些钱就等于被冻结住了,完全无法使用,对用户体验非常不友好。
在 CENNZnet 就没有这种问题。内置的交易费模块支持用户使用任何有通用资产模块发行代币来支付交易费用,当然为了保证用户支付足够的交易费用,交易费模块会自动调用交易所模块,卖出用户愿意付出的代币,购买正好足够支付交易费的核心交易代币。
这一系列动作全都是自动的,无需用户操作。当然用户可以选择最大支付额度,避免汇率变动造成的影响。
我们基于核心模块开发了多个 DApp,比如 Sylo 是我们实现的的端对端加密通讯的应用。SingleSource 是我们身份管理和权限管理的应用。其他开发者也可以基于核心模块,或者自己部署智能合约,在CENNZnet上部署自己的 DApp。
我们希望在 CENNZnet 平台开发 DApp 的开发者有着类似在 iOS上开发的体验。系统级合约提供了大部分开发者所需要的功能,并且提供了足够多的接口让开发者可以相对不受限制的根据自己的需求定义。
iOS 成功的核心之一是安全性,和用户的信任,我们也希望 CENNZnet 这个平台也拥有这两个特性。用户可以相信他们使用熟悉的,由系统合约实现的功能,并且可以相信开发者不能随意违背用户的意志任意篡改数据,因为这是平台所不允许的。
展望未来
我希望在不遥远的将来,可以看到去中心化,去信任化,分布式的应用可以取代大部分传统的中心化应用。用户拥有真正的选择权。
人人都拥有自己的手机钱包,存放着少量资金作为日常消费,而大笔的存款则可以选择使用硬件钱包来存放,或者存放在半中心化的区块链银行中,或者传统的中心化银行。
用户可以选择相信自己,或者相信某个 DApp,或者相信某个企业。大部分人会选择成为各大区块链项目的提名人,在维护网络安全的时候赚取利息。
之后会有大量的新星区块链企业,运营各种传统行业不存在的服务,比如托管验证人节点,区块链银行,全自动理财服务等等。
这些区块链企业大部分都会使用 DAO,分布式自治组织,的模式来运营。用户永远不必须要担心企业高层跑路,因为这些 DAO 的组织是真正属于网络的,人人都可以拥有自己的话语权,对组织的发展有着相对应的影响力。
我希望这个未来我们不会再拥有各种日益增长的信任问题,隐私问题,网络安全问题。企业和组织的信息可以更加的公开透明,用户的资料可以更加的隐私安全。
而面向这个未来的第一步,就是大家一起参与建设 Web3 生态圈,共同打造美好的未来。
Substrate快速入门与开发实战
6月一块链习将上线一门重量级课程《Substrate快速入门与开发实战》,面向于各位想要入门 Substrate 的同学。
这门课程将于下周三(6月5日)开课,原价1699元,首期价格1299元,完成作业即可获得返还一半学费的资格,还能获得代币奖励,是不是很给力!
现在仅剩20个名额,想要报名的同学,建议可以先添加一块链习 Jessie 班长微信号(ID:yikuailianxi)前去抢座报名,再来看下面的详细课程介绍。
? ?
接下来,再让我用些许篇幅来介绍下这门 《Substrate 快速入门与开发实战》课程吧。
1.课程内容
《Substrate快速入门与开发实战》视频课将基于最新的技术,一切从实践出发。
我们首先会让从 Substrate、Polkadot 生态圈讲起,让你了解及 Substrate 底层代码实现,学会如何利用 Substrate 开发一个可产品化的区块链项目。
之后会带你了解并且掌握 Polkadot.js SDK 使用与前端项目开发的能力,掌握如何设计与完善区块链项目的相关技巧,可以让你对整个 Substrate 开发的生态有全面的了解。
最后,你还可以通过这门课程结识全球第一批对 Substrate 技术充满热情的工程师...
学完这门课程之后,你将能够系统性的串联起琐碎的知识点,对面向Substrate 的开发有一个基本的认识,快速的上手实现完整的可产品化的区块链项目。
同时会帮你梳理产品中的主要模块,迅速理解在工作中实际项目的代码结构,快速构建产品体系。
(某位报名同学填写申请表里的真实内容)
这里不妨附上一张课程大纲,供你参考:
? ?
2.课程导师
这门课由Polkadot 创始人Gavin Wood 都认可的一线实战导师授课,以下是对课程导师的简单介绍:
陈锡亮,一个拥有着多年的全栈开发经验,为 Substrate、Polkadot 贡献代码的Polkadot 社区大使,曾负责参与其项目的设计与开发。目前正在负责 CENNZnet 项目架构与开发,拥有丰富的 Substrate 使用经验,非常理解开发者即将要面对的问题及需求。
? ?
3.课程适合人群
区块链技术开发者 | 2年以上经验互联网开发者
「入 学 必 备 技 能」
系统学习时间过一门编程语言?(必备)
以推荐度排名:Rust, C , Swift, C, Javascript, Go, Scala, OCaml, Java
对Unix命令行基本了解?(必备)
基本的Web开发知识 (了解)
基本区块链知识(了解)
4.课程学习方式
我们会以50人的小班形式进行管理:
体系化在线录播教学
全程2名班长5名助教带班强化训练
8次作业 1次项目操盘
助教批改作业&点评
小组群协作学习 微信班级群交流
每周日讲师在线直播答疑
5.课程学习时间
正常学习周期为 6?— 7周左右,12个月课程有效期内课无限观看视频。
最后,再提一嘴:第一期课程下周三(6月5日)就开课了,目前仅剩最后20个名额,想要入门 Substrate 的同学,建议加快手速,添加一块链习 Jessie 班长微信号(ID:yikuailianxi)报名。