作者:Wyz_Research
當你不會部署合約的時候,你可能不能稱之為 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 了 1000 W 枚代幣。但似乎由於測試網瀏覽器原因,並沒有顯示代幣名稱,這點問題仍有待查證。
此次部署是使用的 Shardeum,如果在 Berachain、Taiko 上部署使用的流程是一樣的,只要求在錢包中調整相應網路即可。 Remix 這一類線上 IDE 提供的就是一個對網路操作的簡易入口。
對鏈上進行一定的開發操作,是非應用用戶,進行的最簡單的建設嘗試,可以嘗試使用合約發行一些資產,或者去fork 其他dApp 的代碼,每一個dApp 在鏈上的合約,都是通過組合的方式進行互動的,例如我們看到的Uniswap 的swap 是一個合約,而提供LP 的又是另一個合約。
相較於 Dex,其他 Defi、Gamefi 的合約更加複雜。雖然開發過程複雜且漫長,但對於愛好者來說,了解其原理可以幫助鍊和應用進行更多建設。