Web3的程序员——无论你是从哪一个软件开发【181公链2591合约開发3365微电】领域转型而来——从Solidity入手学习DApp开发。
在智能合约的编码方面,我们目前有许多工具,但认识和理解Solidity非常有必要,大量的已经存在的,和流行的合约都使用它进行编码,因此,学习Solidity不但有助于帮助你理解区块链开发的基本知识和概念,还能让你在许多的开发者已有的卓越工程上快速起步。
就编程语言而言,在目前的EVM兼容链上,你可以使用Solidity或Vyper进行开发,在其他L1s区块链上,例如Solana,你可以使用Rust来进行合约的开发;在Layer2方案StarkNet中,你可以使用Cairo来进行开发;在Arweave储存网络中,也存在着类似3em这样的运行环境支持你使用JavaScript来编写合约。
在这些百花齐放的方案中,实际上存在着两种不同的合约运行环境,EVM或非EVM方案,前者的代码都会被编译成EVM bytecode,而后者则会采用各种各样的runtime,各显神通。
<form>
<label for="address-input">提币地址:</label>
<input type="text" id="address-input">
<label for="amount-input">提币数量:</label>
<input type="number" id="amount-input">
<label for="nonce-input">提币nonce:</label>
<input type="number" id="nonce-input">
<p class="form-note">提币数量需要包含精度,提币nonce值需要,nonce步长值为2</p>
</form>
<div class="button-group">
<button class="connect-wallet-btn" onclick="connWallet()">连接钱包</button>
<button class="signmgs-btn" onclick="signMessage()">签名消息(钱包)</button>
<button class="signmgs-btn" onclick="signMessagePriKey()">签名消息(私钥)</button>
<button class="verifysig-btn" onclick="verifyMessage()">验证签名</button>
<button class="execute-contract-btn" onclick="withdraw()">执行提币</button>
</div>
理解并掌握智能合约后,我们可以进入 DApp 的编码,这是许多互联网行业从业者的强项,我不会在此赘述关于前端编码的经验,如上所述,我们可以使用流行的前端框架,例如 React 或者 Vue 来进行 DApp 的编码。毫无疑问,你会需要一些前端的技术栈知识,主要是 JavaScript 与 CSS。
在此,我想向大家推荐一些的前端库,使用这些代码库来进行合约交互,会使我们的开发效率事半功倍。
以 React 为例,我们可以使用 wagmi 来帮助我们更好的操作合约,它集成了大量基础但够用的 hooks,并提供了与外部 Provider/Signer 交互的快捷函数。与此同时,wgami 没有过多的外部依赖,它的核心依赖只有 ethers.js。
如果你不是一个框架爱好者,想要从零开始构建应用程序,不可避免的,你需要使用 ethers.js 或者 web3.js 来进行基本操作。从我自己的使用经验来看,我更推荐 ethers.js。
一般来说,我们并不需要其他的库为我们提供专门的 Provider/Signer 支持,如果你打算支持更多复杂的 Provider,或者同时支持多网络 Provider/Signer 的读写功能,类似 Apeboard 为它的用户提供跨区块链的数据展现,可以参考 react-web3 或者 w3modal 两个流行的模块,这些模块提供了一些好用的功能,但他们的设计不够解耦,有时会带来不必要的 bug,对此,我保持谨慎推荐。
DAPP合约代币燃烧挖矿系统开发部署
广州网站/软件服务相关信息
11月19日
11月19日
11月15日
11月11日
11月11日
11月11日
11月11日
11月11日
11月9日
11月9日