區塊鏈開發入門避坑,0基礎發行自己的代幣&ERC-20、ERC-721、ERC-1155的區別

準備素材

一個可在瀏覽器使用的Web3錢包。
例如Metamask
發幣所在區塊鏈的少量原生代幣。
假設在polygon發幣就需要支付matic上傳智能合約的手續費

入門概念學習

開發標準介紹
自訂貨幣的相關資料,通常「貨幣」使用ERC-20標準,ERC-721及ERC-1155則多在NFT使用,各個標準的目的也有不同,差異如下,但是本篇教程將以發行「貨幣」為主。

開發標準替代性分割性用途
ERC-20加密貨幣
ERC-721不可不可NFT
ERC-1155不可非單一合約的NFT

簡單來說ERC-20就是我們手上的貨幣,例如我手上有一張100塊和別人的一張100塊他們的價值是一樣的,可以互相交換,並且我拿這100塊去買東西後別人可以找零。

ERC-721則是世界上僅有一副的名畫,我買了世界上就不會有另外一個人擁有一樣的東西。

而ERC-1155像是觀光區的紀念品,只要你有錢大家都可以買到一樣的東西,主要解決了ERC-721不可量產的問題,ERC-1155就像是開了一條生產線一樣。

智能合約介紹
當我們準備要發行一個代幣的時候,我們需要搞清楚一個概念,任何在區塊鏈上產生的東西本質上都是同一個東西「智能合約」(Smart contract)。在Web2.0的時代,我們使用編程語言編寫軟體,在Web3.0的時代我們使用編程語言編寫智能合約從而與區塊鏈交互實現我們的應用。

智能合約最初的根基其實是為了解決去中心化應用中的金融問題,例如說借貸中抵押物以及沒及時還款強制扣除抵押物的問題,後續逐漸產生了更多的應用,也就是我們今天所看到的各類貨幣和NFT。

開始入門

防止勸退 & 工具介紹
本篇教程將不會涉及到任何複雜的編程語言,哪怕你沒有學過仍河程式語言你都可以看懂,因為今天使用的工具將會幫助你自動生成代碼,而你只需要對著GUI介面就可以。

openzeppelin是一個智能合約的開源庫,提供了一個方便的框架,今天我們用到的是他的傻瓜化工具,但是他的庫在GitHub上也有開源,所以如果你已經是一個對與編程語言有經驗的人完全可以照著他的開發指南引入他們的庫開發自己更加客製化的代幣。

真正的教程開始
首先在瀏覽器中使用該地址https://wizard.openzeppelin.com
會看到以下的頁面

這個頁面的左側選單就是我們今天自訂代幣的全部內容,其餘的完全可以忽略。

第一部分,分別設定代幣的全名、代幣的代號(在錢包中只會顯示這個喔)、代幣的初始發行數量。
需要注意的是假設在等下的第二部分你的代幣沒有增發功能的話,你的初始數量就是你的最終數量,無法在後續更改。

第二部分是代幣最重要的功能,但是最重要的只有兩個
Mintable 挖礦(是否可以增加貨幣,假設是否則初始數量就是總發行量)
Burnable 燃燒 (是否可以銷毀貨幣,假設是否則發行後智能增加不能減少)

第三部分是第二重要的部分,授權進行控制,無論你選擇哪一種方式你都要開啟這個選項來進行第二部分的操作,不然第二部分你設定的所有功能將沒有任何人能夠操作。

從上到下分別是,擁有代幣的持有人擁有操作權,透過身分規則設定不同的身分擁有操作權,管理者(你)擁有操作權。

第四部分則是個人資料和開源協議,按照個人情況填寫就好。

開始編譯
現在,我們有了一份完整的智能合約代碼,接下來只需要編譯即可上傳到區塊鏈。
點擊Open in Remix開啟IDE。

進入到IDE後,我們的代碼會被自動帶入,同時庫也會自動幫我們安裝好,我們不需要懂任何程式語言甚至是命令行,所以也不需要動代碼。

點擊左側選單的這個圖表

進入編譯頁面,開始編譯
首先這邊先確認版本號,通常用默認的就可以,但是請自己記住,因為等下認證合約的時候會用到。

完成後回到最開始的那一頁,右鍵你的合約檔案,點擊flatten。
這步很重要!這步很重要!這步很重要!
很多其他人寫的教程沒有寫到這一步,倒是很多人驗證合約的時候hash對不上導致失敗,我幫你們避坑了。

接著點擊左側圖標進入上傳頁面

點擊Depoy,付錢上傳智能合約就完成了,這邊我選擇的是polygon,因為polygon的手續費最低,而且效率足夠快,如果妳是不同鏈操作一樣。
當你上傳好後你的錢包內會出現合約地址,請複製下這串地址。

認證合約 & 管理合約
在取得管理權限之前,認證開源你的合約是必要前置條件,首先進入區塊鏈瀏覽器以polygon為例,使用的是https://polygonscan.com/
搜索你剛剛取得的合約地址,進入以下頁面。

往下拉點擊Contract,大概率是沒有認證的狀態,這時候點擊
Verify and Publish,進入上傳合約的流程。

第一個是你的合約地址,第二個選擇單文件即可,然後如實填上你剛剛編譯時用的版本號以及開源協議。

複製flatten後的代碼到上面進行驗證後完成

現在回到你的合約主頁,點擊Contract,選擇Write Contract連結你原本的發幣錢包就能操作你的合約了。

尾巴

本篇沒有介紹Web3錢包的相關步驟是因為開發智能合約是建立在已經交易過加密貨幣的前提上的故沒有詳細介紹,僅詳細介紹了開發的具體步驟。

希望對你有幫助,其中的flatten真的是個大坑,大多數的教程都沒有講到,或是用了更加複雜的方法,讓我當初玩的時候踩了不少坑所以起意自己寫一篇教程。

最後,我發的你叫做「苗栗幣MyoriCrypto」,可以來找我拿喔!各位也可以在留言區交作業喔!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料