智能合約(英語:
Smart contract)是一種特殊協定,在區塊鏈內製定合約時使用,當中內含了程式碼函式 (Function),亦能與其他合約進行互動、做決策、儲存資料及傳送以太幣等功能(出處:
維基百科),簡單的說就是在區塊鏈上做以太幣的交易或互動的一種程式(合約)。
但知道智能合約後,該怎麼寫?怎麼放到區塊鏈上?怎麼跟它溝通?該有什麼開發環境?身為一個開發人員,心中一定會有這樣的疑問?所以我們就來看看有哪些東西能幫忙我們實現開發智能合約。
談到智能合約就不免必須了解什麼是DApp(Decentralized Applications)去中心化應用程式,App我們都知道它是應用程式,所謂的去中心化就是不需要依賴伺服器運作就可以全自己運行,區塊鏈的理念就是去中心化,所以它所運行的應用程式當然也必須去中心化,才有了DApp的產生。
由於智能合約無法只有它單獨放到區塊鏈中,必須要和外部做溝通來能達到應用的效果,所以一般我們都是開發DApp,然後在裡面包含智能合約,然後靠其他套件程式讓智能合約可以和外面做溝通,讓我們可以去呼叫它,進而做合約和其他合約的交易,常見的智能合約開發架構如下:
1.IDE 開發環境:
Remix、
Visual Studio Code2.開發智能合約:Solidity、Vyper。
3.開發框架:Truffle、Waffle。
4.web與智能合約互動套件:Web3.js、ethers.js。
5.發佈網段:公鏈(比特幣-Bitcoin,以太坊-Ethereum)、測試鏈(Ropsten、Kovan、Rinkeby、Goerli)、個人鏈(
Ganache),開發人員在開發初期建議用個人鏈就好,它是一個可以安裝在本地端的鏈,使用上還蠻方便的,只要安裝好Ganache這個軟體就能在本地端發佈智能合約到個人鏈去。
由上面的開發架構可以了解,想要開發智能合約就是先選擇一個習慣用的IDE當做開發環境VS Code或Remix,然後安裝Truffle或是Waffle當做開發的主要框架,使用Solidity(和JavaScript較相似)或Vyper(和Python較相似)當做開發智能合約的主要程式語言,安裝Truffle + web3.js或是Waffle + ethers.js開發框架(選其中一個),開發完成後就發佈到鏈上面,一開始當然是發佈到Local的個人鏈(ganache)上或是測試鏈上做測試,等都沒有問題了才會上到公鏈(EVM:Ethereum Virtual Machine)上面執行了,整個開發智能合約的架構大概就是這樣,接下來在下面的章節我們就來細部的說明。
有什麼想要了解或是不清楚的部份,歡迎留言和我分享,謝謝。
如果喜歡我的文章歡迎追隨,按愛心,我每週都會上新文章。