Moonbeam 入门开发 | 第一课:课程导读
Moonbeam 是 Polkadot 网络上的以太坊兼容智能合约平台,为原生互操作应用程序的开发提供便利。通过其 以太坊兼容性,开发者能够 以最低程度 的代码调整在 Moonbeam 上部署现有的 Solidity 智能合约和 Dapp 前端。
作为在 Polkadot 网络上的平行链,Moonbeam 也将受益于 Polkadot 中继链的共享安全性以及与其它 Polkadot 相关链的连接性。
为了使更多对 Moonbeam 技术充满热情和好奇的开发者能够参与进来,OneBlock+与 Moonbeam 共同推出了 《Moonbeam 入门 — 轻松开始跨链 Solidity 开发》课程,已于 8 月 26 日正式开课。以下是第一课文字版内容回顾。
什么是 Moonbeam?
Moonbeam 是面向开发者并且完全兼容以太坊的智能合约平台。所谓面向开发者是因为开发者是 moonbeam 最核心的用户。而且 moonbeam 为开发者提供一切太坊工具链、dApps、和协议。
同时提供跨链资产和基础设施集合以及统一标准化账户和私钥格式 (H160)。还提供了以太坊工具链完全兼容并且保持了 Solidity 智能合约可组合性。 所从以太坊到 moonbeam 的项目迁移成本很低。
什么是 Substrate 和 Polkadot?
Substrate 是搭建自定义区块链的框架:
- 底层实现基于 Rust,中上层实现基于 Javascript
- Runtime 使用 WASM,Networking 使用 libp2p
- 基础功能 Rust 模块集成为 Pallet,包括投票,质押,共识(AURA, BABE 几种不同算法),等
Polkadot 是基于 Substrate 的异构多链主网。
波卡架构组成:
- 中继链- 中继链是波卡网络的中心链,连接所有平行链,并提供共享安全性和消息传递
- 平行链- 独立运行的区块链,自行签署区块,並提供给中继链最终确定
- 平行线程- 类似于平行链但每个插入中继链的区块要进行竞拍
Moonbeam 技术层面定义
- 基于 Substrate 的波卡平行链
- 收集人节点- 负责集合交易和签署区块
- 自定义经济模式- 链上治理经济模式和激励架构
- Substrate 链互操作性- 跨链交易其它平行链等
Moonbeam 特性
1、EVM 和以太坊工具链兼容性
首先,Solidity 是一个通过以太坊虚拟机编译的语言。有点像 Java 和 Java 虚拟机。Solidity 编译器把我们写的 solidity 语言转成一种机器语言叫做 Bytecode. EVM 会逐行边行变异 Bytecode 里面的操作项。
这些操作项负责运行交易和智能合约的状态转换。而且在 EVM 上每个操作项都附有一定的费用,叫 Gas。EVM 这种编译形式是去中心化的。因为每个以太坊节点都会独立运行它自己的 EVM。
2、Moonbeam 如何实现 EVM 兼容性的?
Frontier 和 Pallet EVM:
- Substrate FRAME Pallets 是 Rust 模块的集合,提供构建区块链所需的底层功能
- Moonbeam 的以太坊兼容性主要由两个 Pallet 提供:Pallet EVM 和 Frontier
- Pallet EVM 提供 EVM 虚拟运行环境,可以让 Substrate 区块链执行无需任何更改的 Solidity 代码
- Frontier 提供状态转换映射,以及区块封装服务
Pallet EVM 高层架构
3、Substrate 链一般 EVM 兼容实现
因为 Moonbeam 跟 Substrate 都是基于完全开源原则的项目,所以 Pallet EVM 和 Frontier 在 Parity 和 Moonbeam 研发完成之后也都是完全开源的。任何 Substrate 链都可以在它的架构内包含这两个 Pallet。然而也能够达到 EVM 的兼容性。
4、那么 Moonbeam 的 EVM 兼容性跟其他 Substrate 链的兼容性有什么区别呢?
以太坊私钥格式 H160
Substrate 私钥格式 H256
一般的 Substrate 链在实现以太坊兼容的时候其实就是把一个以太坊的私钥关联到一个 substrate 的私钥。也就是说用户要同时保存两个私钥。如此对用户来说是很不方便的因为用户要经常转换私钥,甚至转换钱包才能做一些跨链的操作。
Moonbeam 对于实现兼容的形式是不同于其他 Substrate 链的。Moonbeam 采取的方式是统一标准化账户实现。 也就是说用户用一把 H160 私钥可以同时在以太坊跟 Substrate 上操作。这样用户体验提升很多,不用频繁换私钥跟钱包。
Moonbeam 对 EVM 和以太坊格式的完全兼容性意味着 Moonbeam 是可以兼容以太坊工具链的,包括以下工具链:
为什么学习 Moonbeam 开发?
- 对于 Solidity 开发者,上手容易,最短时间引入 Polkadot/Substrate 生态系统
- 对于 Substrate 开发者,是接触 Solidity 和以太坊开发的良好途径
- 可以最短时间内开发跨链 Dapp,同时受益于以太坊和 Substrate 生态系统和链上资产
- 想换工作的朋友,课程内容有助于区块链行业各类应聘
- 对于区块链爱好者,轻松,有趣,同时实践两大体系的区块链开发
Moonbeam 开发入门课程知识导航
课程安排
本节为导入课,除了导入课还有 5 大节章的课,每节章会分成两节来讲。即还有 10 节课。每周更新一节课,跟新时间尽量保持一样。课程更新请关注 OneBlock+公众号。
前六节课,平均需要 2 到 3 个小时。后 4 节课可能用到 3 到 5 个小时。请大家适当安排时间。
课前准备和课后掌握技能目标
课前准备
- 基础 Solidity 知识
- 基本 UNIX 命令行操作
- GitHub 基本使用
- 基本 Javascript 库调用知识
课后目标
- 能够在 Moonbeam、以太坊,以及其他以太坊兼容链上进行 Solidity 语言开发
- 能够熟练使用常用 Solidity 开发工具链和 API 库
- 能够熟练操作 Moonbeam,或其它 Substrate 兼容节点运行和基本测试
掌握跨链交易基本原理和实现方式
如何报名?
报名课程仅需支付 1 分钱,支付完成后按照提示关注服务号、添加班长小姐姐微信:oneblockEmma 并回复报名时间,Emma 班长会在 24 小时内通过你的好友申请,并将你邀请加入 Moonbeam 技术爱好者社群,通知正式学习计划。
如果你是开发者,并且对 Moonbeam 技术感兴趣,那就立刻扫码加入吧!
相关资料
第一课课程视频链接:https://jhp.h5.xeknow.com/s/2jHhpi
第一课课程作业链接:https://wj.qq.com/s2/8862046/23e1/
第一课 GitHubFAQ:https//github.com/hyd628/OneBlockCourseScripts/tree/main/Week1
Moonbeam 网站:https://moonbeam.network/
MoonbeamGitHub:github.com/PureStake/moonbeam
Moonbeam 中文开发者文档:https://docs.moonbeam.network/cn/
MoonbeamDiscord:https://discord.gg/PfpUATX
关于Moonbeam
Moonbeam是波卡(Polkadot)网络上的以太坊兼容智能合约平台,为原生互操作应用程序的开发提供便利。通过其以太坊兼容性,开发者能够以最低程度的代码调整在Moonbeam上部署现有的Solidity智能合约和Dapp前端。作为在波卡(Polkadot)网络上的平行链,Moonbeam也将受益于波卡(Polkadot)中继链的共享安全性以及与其它波卡(Polkadot)相关链的连接性。Moonbeam由PureStake团队开发,目前正在预上线阶段,主网计划于2021年第四季度上线。
如需了解更多信息,请访问:https://moonbeam.network/
关于Moonriver
Moonriver是Moonbeam的同行网络,旨在为激励实验提供永久性的测试环境。新上线项目的代码将优先部署到Moonriver,在其真实的经济环境下经历一系列的测试与实验验证。当验证完成并通过测试之后,项目代码才可正式部署至波卡上的Moonbeam。
如需了解更多信息,请访问:https://moonbeam.network/networks/moonriver/