您好,登錄后才能下訂單哦!
本篇內容介紹了“如何使用truffle部署以太坊智能合約到區塊鏈”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
安裝 Truffle 框架非常的簡單,只需要一行命令:
npm install -g truffle
當然前提是你已經安裝好了NodeJS并且版本要在5.0以上。
Tunffle還要求一個運行的以太坊客戶端,以便支持標準的JSON RPC API,有很多的選擇比如Ganache、geth。
要使用大量的Tunffle命令,我們通過使用一個現成的Tunffle項目來學習。第一步是創建一個Truffle項目。
我們可以創建一個空的項目模板,不過剛開始構建項目,我們可以使用Tunffle Boxs,里面有很多的示例應用程序和項目模板。本文使用MetaCoin box,它創建一個可以在帳戶之間傳輸代幣的應用程序示例。
1.為構建Truffle項目創建新目錄:
mkdir MetaCoin cd MetaCoin
2.下載 MetaCoin box,使用truffle unbox <box-name>
來下載各種示例,如果要建一個空的不包括智能合約的項目可以使用truffle init
。
truffle unbox metacoin
上述命令完成后,我們獲得一個有以下目錄結構的項目:
contracts/: Solidity編寫的智能合約目錄。
migrations/:腳本部署目錄。
test/:用來測試應用程序和智能合約的測試目錄。
truffle.js/:Truffle 配置文件。
打開contracts/MetaCoin.sol
,這是一個用Solidity編寫的智能合約文件,這個智能合約建了Metacoin代幣,我們可以注意到它引用了同目錄下的另外一個solidity編寫的文件contracts/ConvertLib.sol
。
打開contracts/Migrations.sol
,這是一個單獨的Solidity文件,用來管理和更新部署的智能合同的狀態。這個文件每個Tunffle項目都有,通常不用管。
打開migrations/1_initial_deployment.js
文件,這個腳本是為了部署Migrations.sol
文件中的Migrations
合約。
打開migrations/2_deploy_contracts.js
文件,這個腳本是為了部署MetaCoin
合約,會按順序執行完上一步的腳本后執行。
打開test/TestMetacoin.sol
文件,這是一個Solidity編寫的測試文件,確保你的合約正常工作。
打開test/metacoin.js
文件,這個腳本與上面的測試文件類似。
打開truffle.js
文件,用于設置網絡信息和其他與項目相關的內容。文件是空白的,沒關系,因為我們將使用一個內置有默認值的Truffle命令。
1.打開終端,執行命令:
truffle test ./test/TestMetacoin.sol
輸出結果是這樣的:
TestMetacoin √ testInitialBalanceUsingDeployedContract (71ms) √ testInitialBalanceWithNewMetaCoin (59ms) 2 passing (794ms)
2.運行JavaScript測試:
truffle test ./test/metacoin.js
輸出結果是這樣的:
Contract: MetaCoin √ should put 10000 MetaCoin in the first account √ should call a function that depends on a linked library (40ms) √ should send coin correctly (129ms) 3 passing (255ms)
truffle compile
輸出結果是這樣的:
Compiling .\contracts\ConvertLib.sol... Compiling .\contracts\MetaCoin.sol... Compiling .\contracts\Migrations.sol... Writing artifacts to .\build\contracts
當使用Tuffle開發一個多功能的私有鏈和控制臺時也可以使用ganache,它作為一個桌面應用程序來啟動私有鏈。對于以太坊和區塊鏈新手來說ganache是一個更容易理解的工具,因為它會顯示更多的信息給我們。
除了運行Ganache之外,需要額外編輯一下Tunffle配置文件,以指向ganache實例。
1.下載和安裝 Ganache
2.打開 truffle.js
,用下面的內容替換:
module.exports = { networks: { development: { host: "127.0.0.1", port: 7545, network_id: "*" } } };
這樣就可以使用Ganache的默認參數進行連接了。
3.保存一下這個文件。
4.啟動 Ganache
5.打開終端,用Ganache部署智能合約到區塊鏈
truffle migrate
輸出結果是這樣的:
Using network 'development'. Running migration: 1_initial_migration.js Replacing Migrations... ... 0x63b393bd50251ec5aa3e159070609ee7c61da55531ff5dea5b869e762263cb90 Migrations: 0xd6d1ea53b3a7dae2424a0525d6b1754045a0df9f Saving successful migration to network... ... 0xe463b4cb6a3bbba06ab36ac4d7ce04e2a220abd186c8d2bde092c3d5b2217ed6 Saving artifacts... Running migration: 2_deploy_contracts.js Replacing ConvertLib... ... 0xa59221bc26a24f1a2ee7838c36abdf3231a2954b96d28dd7def7b98bbb8a7f35 ConvertLib: 0x33b217190208f7b8d2b14d7a30ec3de7bd722ac6 Replacing MetaCoin... ... 0x5d51f5dc05e5d926323d580559354ad39035f16db268b91b6db5c7baddef5de5 MetaCoin: 0xcd2c65cc0b498cb7a3835cfb1e283ccd25862086 Saving successful migration to network... ... 0xeca6515f3fb47a477df99c3389d3452a48dfe507980bfd29a3c57837d6ef55c5 Saving artifacts...
內容顯示的是交易id和你所部署的智能合約地址。
6.在Ganache中,點擊Transactions
按鈕可以看到被處理的交易。
7.要與合約進行交互,可以使用Truffle控制臺。類似于Truffle Develop,唯一不同的是它連接到現有區塊鏈(在這種情況下,由Ganache生成的)
truffle console
你會看到下面的提示:
truffle(development)>
使用控制臺通過下面的方式進行交互:
查看賬戶余額
MetaCoin.deployed().then(function(instance){return instance.getBalance(web3.eth.accounts[0]);}).then(function(value){return value.toNumber()});
看看有多少以太合適(并注意合約定義1個metacoin價值2以太)
MetaCoin.deployed().then(function(instance){return instance.getBalanceInEth(web3.eth.accounts[0]);}).then(function(value){return value.toNumber()});
從一個賬號轉賬到另一個賬號
MetaCoin.deployed().then(function(instance){return instance.sendCoin(web3.eth.accounts[1], 500);});
檢查是否收到metacoin
MetaCoin.deployed().then(function(instance){return instance.getBalance(web3.eth.accounts[1]);}).then(function(value){return value.toNumber()});
檢查給別人轉賬的賬戶
MetaCoin.deployed().then(function(instance){return instance.getBalance(web3.eth.accounts[0]);}).then(function(value){return value.toNumber()});
“如何使用truffle部署以太坊智能合約到區塊鏈”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。