91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用truffle部署以太坊智能合約到區塊鏈

發布時間:2021-12-29 14:10:03 來源:億速云 閱讀:242 作者:iii 欄目:互聯網科技

本篇內容介紹了“如何使用truffle部署以太坊智能合約到區塊鏈”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

安裝 Truffle

安裝 Truffle 框架非常的簡單,只需要一行命令:

npm install -g truffle

當然前提是你已經安裝好了NodeJS并且版本要在5.0以上。

Tunffle還要求一個運行的以太坊客戶端,以便支持標準的JSON RPC API,有很多的選擇比如Ganache、geth。

構建一個Truffle項目

要使用大量的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 配置文件。

瀏覽一下這個項目

  1. 打開contracts/MetaCoin.sol,這是一個用Solidity編寫的智能合約文件,這個智能合約建了Metacoin代幣,我們可以注意到它引用了同目錄下的另外一個solidity編寫的文件contracts/ConvertLib.sol

  2. 打開contracts/Migrations.sol,這是一個單獨的Solidity文件,用來管理和更新部署的智能合同的狀態。這個文件每個Tunffle項目都有,通常不用管。

  3. 打開migrations/1_initial_deployment.js文件,這個腳本是為了部署Migrations.sol文件中的Migrations合約。

  4. 打開migrations/2_deploy_contracts.js文件,這個腳本是為了部署MetaCoin合約,會按順序執行完上一步的腳本后執行。

  5. 打開test/TestMetacoin.sol文件,這是一個Solidity編寫的測試文件,確保你的合約正常工作。

  6. 打開test/metacoin.js文件,這個腳本與上面的測試文件類似。

  7. 打開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

使用 Ganache 部署項目

當使用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

如何使用truffle部署以太坊智能合約到區塊鏈

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部署以太坊智能合約到區塊鏈”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

比如县| 当雄县| 澄迈县| 天水市| 红桥区| 紫阳县| 明溪县| 临泉县| 来宾市| 湖南省| 鄱阳县| 桦南县| 连山| 黄平县| 建德市| 五家渠市| 电白县| 樟树市| 嵩明县| 麻阳| 墨江| 铁岭市| 文成县| 平江县| 昌宁县| 策勒县| 中阳县| 徐州市| 遵化市| 肇源县| 凉城县| 南平市| 利川市| 鄂伦春自治旗| 阿克| 安国市| 富平县| 龙胜| 雷山县| 汤阴县| 九龙县|