懂得开发部署知识,让用户小白成为 BUIDL。
当你不会部署合约的时候,你可能不能 称之为 BUIDL。
每一个空投爱好者,都会以用户的身份进入链和应用,但在链的角度来看,用户是有一定层级界限的,其中,对链来说, 应用开发者是价值最大的。
应用开发者开发出 dApp 可以吸引用户使用,使用过程中会产生 gas,开发者会在链上部署合约,会主动吸引用户进行链操作,链本身的价值会无限增加。
所以,可以说,拥有开发能力或者简单的开发知识,是增加获得空投机会,或者更准确的说成为链上真正的建设者的更好途径。
本文,我们将详细的描述一个喜欢体验链操作的用户需要的简易开发知识。其中,不会涉及到搭建前端、搭建开发环境或 SDK 相应操作,本文将带领普通用户进入新手的开发体验理论期,如果想进入实践期,可以继续研习其他深入知识。
从区块链理论搭建理解框架
此前我们的文章《如何用技术逻辑拆解全球新老项目?》中阐述了区块链的属性定义,区块链不只是一个总帐本,今天存在的所有公链的设计都是为了表层的应用生长。
所以理解链的开发知识,和本身互联网开发应用一致,在架构理解上,只是后端都变成了链,原本在数据库中的数据状态变成了链上的数据状态。
互联网的应用开发,首先需要购买云服务(更早期的可能通过计算设备入网也可以作为服务器来部署),假如,我们购入两台服务器,一台部署前端,一台部署后端,购买一个网站,把网站与前端开发的部分配置完毕,然后开发出后端来管理数据,网站的交互数据在使用的时候会进入后端,当前端用户操作的时候需要获取一个反馈数据再操作的时候,是访问了数据库中的数据状态后执行的。
基于如此复杂的流程,在传统应用里,用户基本感受不到后端,但在区块链上是可以明显感受到前端后端的。
dApp 的后端将互联网应用开发使用的服务器和数据库,变成了链和链上的总状态。
在开发的时候,是处于后端的链暴露出一个远程调用接口 rpc,所有开发者和应用都是通过这个接口去对链操作。
这也是为什么在使用 MetaMask 去体验不同的 dApp 的时候,要在 dApp 里添加不同的网络,在添加网络时 url 就代表着 rpc 的接入点。
在其他的网络设计里,还有一种给 dApp 再次升级的方法,如果一个链只用一个 rpc,那需要大量交互时,在任务提交上链前只是访问过程就会拥堵。
这时候如果有可能自建 rpc 的应用方就有更大的优势,但目前在公链领域,以现在 pos 的设计,这样操作的 dApp 并不多。
到这里,我们基本能摸清楚当我们和链进行开发动作交互的时候会需要一个钱包、一个 rpc 端口。
重要的开发工具
那拿到了入口之后,接下来是怎样进行链上的操作。
以太坊被称为世界计算机,其可以运行各类自动执行的智能合约,而这个过程,是通过向网络中部署合约并被 EVM 执行而进行。
虚拟机 VM 一词是云服务行业一定会说到的词,我们可以把以太坊网络中的计算设备看作一个巨大的计算存储区,也就是虚拟机,虚拟机让智能合约有运行能力,可以让任务指令完成执行。
那智能合约就成了关键,体验开发者最核心的环节就是智能合约。
智能合约的部署分为,第一写代码,第二编译,第三部署,部署完成后就可以直接调用合约功能。
以太坊有固定的工具,而这些工具已经极为简易化,在了解整个流程后,只要仔细查看就可尝试整个流程。
Remix、Hardhat、OpenZeppelin 是目前最简单开放的工具代表,而除了这些开源工具外,还有例如 Thirdweb 这一可以辅助开发、简化部分流程的工具。
从各网络测试网体验入手
近期我们分别体验了 Berachain、Taiko、Shardeum 等公链的测试网。可以从这几个链的体验过程来了解开发知识。
首先,我是一个普通用户,我使用 MetaMask 操作与网络交互。第一步需要在 MetaMask 中添加测试网,并且获取到测试网中的代币,测试网代币是从测试网水龙头处领取,数量是有限的,在三个项目的官方文档中都公示了领取过程,这三条链的测试代币分别是 Bera、ETH、SHM。
其中可以发现,Berachain 和 Shardeum 都是 L1,都使用自己的原生代币,而 Taiko 是 L2,存在的目标是拓展以太坊,所以使用 ETH,并且,因为以太坊有公共测试网,所以 Taiko 还使用了以太坊本身的测试网进行了一些功能测试,如果想要体验的用户,需要分清楚最终落实在了那条链上。
当分别在三条链的水龙头拿到了体验代币之后,接下来就是尝试如何使用开发工具,把合约部署到链上。
所以接下来会有三步,找到合约,修改合约,在 IDE 中完成合约部署。
在三个项目的文档页面都会明确出会支持哪些工具做相应的合约部署。经查阅,这三个项目都支持使用 Remix 进行部署,那我们就使用 Remix 进行这个流程。
Remix 是在线的可编辑环境,非常方便,不用使用 SDK 或终端等其他较为复杂的工具,但本文中的简易流程只是一次性部署,对合约修改以及调用测试这些还是需要其他工具执行的。
1. 如何找到要部署的合约
在 OpenZeppelin 上,对几个常用的 token 发行合约进行了模块化的展示,我们可以直接在其中选择功能,然后直接跳转到 Remix。
这是初始页面:
2. 对合约代码进行简单修改
随后我对这个发行 token 的合约进行了设置,使用 Wyz Research 的全名,Wyz 的缩写,并且选择了功能里的预发行,并且对合约进行了控制所有权的指定。通过这些操作,右侧的合约代码中,多了第一个红框中显示的建造者,而预发行的代币也有了地址指向。
3. 如何部署合约
接下里点击右上角的 Open in Remix,我们就可以在 Remix 界面开始编辑。
在 Remix 界面开始编辑前,请先把 MetaMask 中的网络和钱包地址调整正确。
进入页面之后,我们需要把上述对应的两个地址进行修改,我使用钱包地址进行替换。显示如下:
随后点击左侧的 Auto complie,即自动编译,如果没有自动编译,需要点击左侧蓝色按钮。当最左侧出现了绿色对勾标志即可。随后点击左侧绿色对勾下的按钮,进入部署页面。
在钱包已经修改正确的情况下,点击左上角的账户部分,这个位置代表支付 gas 的账户,而下面这个位置代表部署的地址,选择好之后,如下显示:
点击 Deploy,MetaMask 会弹出,来支付此次操作的 gas fee。
合约部署过程中,在 Remix 下侧会显示合约 pending
合约部署成功后,下侧会显示交易成功。
4. 在浏览器中查询交易
当完成部署后,通过钱包中的按钮点击进入浏览器查看交易时,可以发现,刚刚我们完成了一个合约创建的动作,而合约执行过程中,向其中的一个代币发送了相应的代币。
再次点击地址查看的时候,会发现,我在地址中 Mint 了 1000W 枚代币。但似乎由于测试网浏览器原因,并没有显示代币名称,这一点问题还有待查证。
此次部署是使用的 Shardeum,如果在 Berachain、Taiko 上部署使用的流程是一样的,只要求在钱包中调整相应网络即可。Remix 这一类在线 IDE 提供的就是一个对网络操作的简易入口。
对链上进行一定的开发操作,是非应用用户,进行的最简单的建设尝试,可以尝试使用合约发行一些资产,或者去 fork 其他 dApp 的代码,每一个 dApp 在链上的合约,都是通过组合的方式进行交互的,例如我们看到的 Uniswap 的 swap 是一个合约,而提供 LP 的又是另外一个合约。
相比于 Dex,其他 Defi、Gamefi 的合约更加复杂。虽然开发过程复杂且漫长,但对于爱好者们来说,了解其原理可以帮助链和应用进行更多建设。