先決條件
首先我們先安裝必要的Python3和Nodejs
1 | $ apt install -y python3 nodejs npm |
接著安裝開發版的Ethereum,由於她不識真正的Ethereum,僅限開發使用
1 | $ npm install -g ethereumjs-testrpc |
接著執行
1 | $ testrpc |
就看到開發版的Ethereum跑起來了,建立了十個帳戶
接著開另外一個Terminal來操作,首先我們安裝Truffle
1 | $ npm install -g truffle |
建立一個新項目
1 | $ mkdir demo |
這會生成一個command line的應用程式,如果需要一個GUI版的可以將江最後一行改成,不過操作還是以CLI版為主
1 | $ truffle unbox webpack |
接著開始建立合約
第一個合約
我們首先建立第一筆合約
1 | $ truffle create contract Test |
會產生ontracts/Test.sol
這個檔案,不過打開來什麼都沒有
因此我們手動修改合約內容
1 | pragma solidity ^0.4.4; |
接著新建migrations/2_deploy_contracts.js
1 | var Test = artifacts.require("./Test.sol"); |
接著編譯合約
1 | $ truffle compile |
產生的合約在./build/contracts/Test.json
,有興趣可以打開來看
接著部屬合約,在部屬合約之前要先修改truffle.js
1 | module.exports = { |
先不用館live那組`,保留給真正的Ethereum使用,目前關心的只有development那組,接著我們把合約部屬到development network,也就是Testrpc上
1 | $ truffle migrate --net development |
切回Testrpc的Terminal,可以看到我們的合約被放上去了
驗證合約
1 | $ truffle console |
另外一個方法是跑Unit Test
我們新增test/TestTest.sol
,然後寫入以下資料
1 | pragma solidity ^0.4.16; |
接著跑
1 | $ truffle test |
開發一個DApp
這就是前面幾個東西組合加上適合的前端
Javascript用web3.js
Python用Web3.py
Java和Android用web3j
這邊有範例
Ethereum Pet Shop
fileHash
詳細就部戲說了
Final
這邊只有說要怎麼寫Smart Contract,怎麼Deply Contract`,以及怎麼開發Dapp
至於Ethereum 的架設一個字都沒提
並且每個Blockchain的Dapp開發情形不同,只是給一個大智的輪廓