Web3 开发者学习计划:波卡与以太坊开发
从互联网 Web2 到 Web3 时代,用户需求发生了变化,开发技术亦随之变化。什么是 Web3 开发?Web3 开发指构建在区块链上运行的去中心化应用程序 (DApp)的实践。
这里涉及两个层面的开发,一是区块链的开发。我们在《Web3 开发者学习计划》系列的第三篇《Web3 开发者学习计划:如何选择区块链部署第一个项目?》从采用率、编程语言、共识机制、可扩展性和安全等角度为大家介绍了开发者如何选择合适的链,以及为何开发自己的区块链是 Web3 开发者的优选。
二是 DApp 的开发。去中心化的应用与传统应用程序的开发理念有所不同,据加密领域经验丰富开发者所撰写的 DApp 定义报告显示,DApp 需具备以下特征:
-
DApp 必须具有开源代码并且在没有第三方干预的情况下运行,且它必须是用户控制。
-
所有信息都必须保存在可公开访问的区块链网络中,其中去中心化是关键,不能有一个中心攻击点。
-
DApp 必须有某种加密令牌才能访问,并且它们必须奖励所述令牌中的贡献者,例如矿工和利益相关者。
-
DApp 必须具有生成令牌的共识方法,例如工作量证明 (PoW) 或权益证明 (PoS)。
在波卡上开发
认识 Substrate
认识 Substrate
Substrate 是一个用于构建区块链的开源的、模块化的和可扩展的区块链开发框架。该开发框架具有模块化、多层架构和无分叉升级这三个主要优势。因此,从理论上来说,Substrate 允许开发者为任何用例创建专属区块链。此外,Substrate 附带了一个名为 Contracts pallet 的智能合约模块,开发者利用 Substrate 可开发智能合约。
至于 Substrate 与波卡之间的关系,值得注意的是 Substrate 可用于构建任何类型的区块链,而不仅仅是波卡平行链。但连接到 Polkadot 提供了许多好处,包括内置安全性、跨链互操作性,以及享受波卡生态不断增长的平台、应用程序和终端用户。
编程语言——Rust
编程语言——Rust
Rust 是一种为性能和安全性,尤其是安全并发性而设计的语言,它在语法上与 C++ 相似。目前 Substrate 开发框架由 Rust 编写。与 Solidity 相比,Rust 将性能的低级(low-level)控制与现代语言功能结合在一起,速度快且内存效率高。在 Web3 中,Rust 的内存安全与高性能对于 DApp 的开发十分友好,目前将 Rust 语言作为核心开发语言的就有 Polkadot、Solana、Near。其主要优势在于:
-
发挥了静态语言的优势——静态类型的语言允许对数据及其行为预先进行编译器级别的检查和约束,这极大减轻了开发者的负担,同时有益于长期维护。
-
让并发更容易——当两个线程同时访问同一内存时会发生数据竞争,这就可能导致某些不可预测的行为。Rust 从编译阶段就将数据竞争解决在了萌芽状态,保障了线程安全。
-
更好的内存安全特性——无垃圾回收器的内存安全机制是 Rust 经典且核心的设计之一。
此外,不容忽视的是 ink! 智能合约语言。ink! 用于在 Rust 中编写智能合约并编译为 Wasm 代码。其最初是通过利用 Rust 的宏系统生成自定义语法和样式,来进行智能合约开发。ink! 使用普通的 Rust 代码,通过以 #[ink(...)] 的形式添加一些属性标签,即可完成所有工作所需的场景。目前 ink! 语言仍在发展中。未来 ink! 在使用上可能会更像 Rust,以帮助那些熟悉 Rust 语言的开发者获得应对智能合约更强的能力。
关于 ink! 相关开发知识请参见下方链接:
在以太坊上开发
开发者如果选择在以太坊开发,首先需要认识以太坊 Smart Contrats 和编程语言 Solidity。
认识 Smart Contrats
认识 Smart Contrats
智能合约是链上运行的一段由开发者写好规则的程序代码。智能合约(Smart Contrats)的概念早于区块链,早在 1996 年密码学家 Nick Szabo 将其定义为「可编程的合同」。而以太坊则是第一个实现智能合约功能的区块链项目——智能合约是以太坊应用程序的基本构建块。
智能合约主要有两大作用。一是用来发行虚拟资产,以太坊应用的虚拟资产或 NFT 都是由合约产生,如 ERC-20、ERC-721、ERC-1155 等标准。二是链上所有应用程序也是由智能合约驱动。目前智能合约可以在借贷协议、DEX、NFT 等领域使用,这些应用都由一个或多个智能合约组成。
感兴趣开发者可以至 Etherscan 上查看各类智能合约:
https://etherscan.io/searchcontractlist?a=all&q=uniswap
编程语言——Solidity
编程语言——Solidity
智能合约的语言有很多种,不同链也有自己不同的环境。以太坊环境称为 EVM,其能执行由 Solidity 编写的智能合约。Solidity 作为区块链编程语言的优势是更容易学习,并且有更多用于 Solidity 的开发人员工具。其主要特点包括:
-
面向对象——一种专注于围绕数据和对象而不是逻辑和功能进行软件开发的编程方法。
-
高级语言——通过独立于计算机硬件架构使软件开发更加用户友好的语言。
-
静态类型——在编译时检查错误和类型的语言。
综上,Solidity 开发虽然对新手友好度高,但开发过程中较容易出现安全漏洞,因此需要反复对代码进行全面测试,且 EVM 本身的设计就有局限性。而随着 Web3 大范围采用,项目安全问题亟待解决。尽管前期学习成本相对较高,但相对安全且高性能的 Rust 成为越来越多开发者的选择。
开发第一步,链还是 DApp?
波卡 DApp
波卡 DApp
目前波卡提供了两种部署应用程序的方法:作为现有平行链上的智能合约,或开发您自己的平行链。
平行链是单独的链,具有自己的运行逻辑,受益于中继链提供的共享安全性和链间消息传递。平行链允许高度的灵活性和定制,任何开发人员都可以使用 Substrate 创建无分叉区块链,这些区块链可以在不需要硬分叉的情况下在波卡或以太坊以外的任何生态系统上进行升级。因此,如果您想为特定的应用程序设计特殊功能,平行链通常是更好的选择。
在波卡主网中,还有多个平行链充当智能合约平台。Substrate 目前以两种方式支持两种以太坊智能合约部署:一是由 Frontier 提供的 EVM Pallet。Frontier 是一套工具,可以实现 Substrate 链以使用相同的 API/RPC 接口在本地运行以太坊合约(EVM)。二是 Substrate 提供内置 Contracts Pallet,随着时间的推移,更多的平行链将支持 WebAssembly 智能合约。而 EVM Pallet 它允许以太坊虚拟机平行链,从而支持以太坊合约的 Direct Ports。
更多 Substrate 上智能合约开发相关内容请参见:https://wiki.polkadot.network/docs/build-smart-contracts
以太坊 DApp
以太坊 DApp
一般情况下,在以太坊上部署 DApp 包括以下三步:
-
部署合约——在主区块链部署智能合约。
-
打包 DApp——这一步用于打包和上传前端资源。
-
注册——要变成去中心化应用,以太坊浏览器(Mist 或 AlethZero)需要进入这个包裹。并在资源存储的地方注册 URL。
总之,以太坊上部署 DApp 在开发难易度和网络生态上确有优势。但由于以太坊公链底层设计问题,应用的部署无需许可,而核心网络的升级则需要特定治理方式下的民主许可。一旦建立了 Web3 网络系统,协议就会变得非常僵化,并且不容易进行创新升级。由此出现开发过程中存在基础设施升级和变更滞后于应用层的问题。
与以太坊的现有系统及即将推出的分片升级相比,Substrate 非常模块化。不仅波卡中继链的设计也比以太坊更具可扩展性,而且开发者可以根据自己的需要自行设计专属区块链。当下,模块化区块链成为业内非常看好的方向,以太坊升级也不断向此靠拢,而波卡 Substrate 开发框架将受到更多关注与采用。
不可否认,Substrate 开发的学习路径陡峭,令不少开发者望而却步。OneBlock 作为全球最大的 Substrate 技术开发者社区,OneBlock 与 Parity 官方(Substrate 的创始团队)联合开办的 Substrate 系列公益课程拥有众多专家导师授课、实时更新的前沿技术内容、完整的课程体系与培养方案,课程共计 12000 次以上的点击量,吸引了近 30000 人关注。《Substrate 区块链开发入门》第十二期带你快速入门 Substrate 开发框架,从 0 到 1 迈入区块链开发世界。公益课程名额有限,先到先得!
链接:https://jhp.xet.tech/s/njhiE
Web3 开发者的机会
随着过去几年 Web3 技术飞速发展,下一代去中心化互联网对定制化、安全性、互联性的需求与日俱增。Web3 引起的就业激增可能远超 Web1 转向 Web2 时期引发的就业激增。也就是说,开发人员和计算机工程等其他技术相关职位的需求量很大,他们有潜力在未来十年创造相当可观的价值。
参考资料
DApp 理论报告
https://github.com/DavidJohnstonCEO/DecentralizedApplications
智能合约
https://wiki.polkadot.network/docs/build-smart-contracts
活动预告
本周四(3 月 23 日)晚 19 点,「Polkadot/Kusama 提案分享」系列直播第二期将在波卡世界直播间开启,本期由 PolkaWorld xiaojie 为大家分享 Dotsama 上最新最有趣的提案。点击下方按钮立即预约直播。
4 月 11 日,PolkaWorld 与 Parity 主办,OneBlock、香港区块链协议 HKBA.club、亚洲元宇宙联盟 AsiaMeta.club 联合主办的 Polkadot Meetup 将在香港举办!我们邀请了 20+ 团队,除了讨论去中心化、L2、平行链之外,我们还将讨论跨链协议、Web3 资本市场的变局、社交网络的未来以及Web3 基础设施的愿景与困境。如果你感兴趣,欢迎报名参加我们的活动!有机会获得有趣的 NFT、免费的域名以及超酷的 Polkadot 2023 新周边!点击下方卡片立即免费报名。
-
PolkaWorld Telegram 群:
t.me/polkaworld
-
PolkaWorld Youtube 频道:
https://www.youtube.com/c/PolkaWorld
-
PolkaWorld Twitter:
@polkaworld_org
更多内容
Bifrost 即将上线 Filecoin 原生资产 FIL 的首个流动性质押方案
波卡周报|Zeitgeist 正式从 Kusama 迁移到 Polkadot!Astar 宣布与日本硅谷「涩谷市」合作!
比推快讯
更多 >>- 3月28日现货比特币ETF净流入达1.79亿美元
- WIF最大的个人/机构持币地址已浮盈1.34亿美元
- Prisma Finance攻击者:并非盗取资金,而是一次白帽行动
- Uniswap DAO正在就其资金多元化发起提案投票
- 比特币矿商Cleanspark计划出售最多8亿美元的股票,股价下跌10%
- AAVE:将通过OpenBlock进行风险管理
- 谷歌现在允许搜索比特币、Fantom、Arbitrum等钱包地址
- 去中心化借贷平台LendFi推出综合应用程序
- AI分析公司Helika推出5000万美元规模链游加速器
- Cathie Wood:出售 Coinbase 股票是主动投资组合管理的一部分
- Bitwise向美SEC申请推出现货以太坊ETF
- Wormhole:4月3日开启空投申领
- 3月28日9只现货比特币ETF净增持534枚BTC,净流入约3812万美元
- Greeks.Live:价值150亿美元的期权将于明日交割,BTC看涨期权依旧是移仓主力
- Web3基础设施平台Syndicate推出低成本L3链Degen Chain,原生 Gas 代币为DEGEN
- 1inch宣布启动社区建设者计划2.0阶段
- Econia Labs:Reference Frontend已上线并准备分叉
- OKX 全球首席合规官在任职仅六个月后离职
- 彭博社:美国和英国正在审查通过某俄罗斯虚拟交易所进行的超 200 亿美元的加密货币交易
- 资产代币化协议Midas完成875万美元种子轮融资,BlockTower等领投
- SBF被判入狱25年,被勒令没收超110亿美元资产
- Prisma:因漏洞影响暂停协议,剩余资金是安全的
- Ondo Finance聘请麦肯锡前数字资产主管Ian De Bode担任首席战略官
- 检察官:SBF至少要被判处40年监禁
- FTX锁仓价值75亿美元的SOL已吸引多个买家,包括Galaxy Trading
- SBF:Alameda和FTX本可以免于破产
- SBF:流动性危机是我本人造成的
- SBF:我犯了很多错,对每个阶段发生的事情感到抱歉
- SBF辩护律师:SBF从未想过要成为加密货币之王,他只是想对世界产生最大的积极影响
- 投资公司Kerrisdale:MicroStrategy股价被高估,已持有其空头头寸
- FTX受害者指责Sullivan&Cromwell将FTX持有的100 亿美元SOL七折出售给Galaxy
- FTX案受害者称至少有三人因该诈骗事件自杀
- 美法官表示SBF案的最高刑期为1320个月
- Vitalik Buterin撰文提出目前L2协议改进的四个关键
- 法官驳回SBF关于投资者已获得全额赔付的说法,称损失的资金超过 5.5 亿美元
- 美法官发现 SBF 试图篡改证人并在审判中提供伪证
- 8,116枚BTC从CoinBase转移到未知钱包
- 灰度向Coinbase Prime转移734枚BTC
- FLock.io完成600万美元种子轮融资
- SBF律师认为合适刑期不应超过六年半
- 派盾:Prisma攻击损失已扩大至1160万美元
- Alchemy Pay投资LaPay
- Prisma Finance:用户请禁用委托交易批准