Truffle+ganache進行區塊鏈項目開發

上一篇文章介紹瞭如何搭建Truffle開發框架,所以的開發都是基於這個框架,所以在開發之前需要把這個框架搭建好,不懂的需要先去看上一篇文章,鏈接如下:

https://blog.csdn.net/xuecuilan/article/details/90379919

初步建立好的項目目錄如下:

  • contracts:用來存放你編寫的智能合約代碼
  • migrations:用來部署的文件夾
  • test:用來存放測試代碼
  • truffle-config.js :truffle環境配置

Truffle集成了一個開發控制檯,運行下面代碼對你的智能合約進行編譯:

truffle compile

Truffle會根據你的contracts文件夾中的合約按順序進行一一編譯,結果如下: 

這一步編譯成功之後,truffle會把編譯好的ABI及字節碼信息保存在 build/cintracts裏面,如下:

 注意:每一個合約對應一個json文件;

編譯之後,就可以部署到區塊鏈上了。

在migrations文件夾下已經有一個1-initial-migration.js部署腳本,用來部署Migration.sol合約。Migration.sol合約是Truffle生成的一個用來確保不會進行重複部署的合約,這個合約在contracts文件夾下,我們需要建立一個自己的部署腳本:目錄結構如下

注意:如果一個合約用到別的合約的信息,可以分開寫部署腳本,如上;否則部署腳本可以寫在一起;腳本內容:

注意:deploy函數裏面寫合約名稱和構造函數的參數,用逗號隔開;

目前我們要把智能合約部署到ganache的測試鏈上,所以我們需要先啓動ganache的測試鏈,我用的是ganache提供的可視化界面,具體下載細節請自行百度:圖形如下:

她爲我們提供了十個賬戶,默認使用第一個;

啓動好ganache之後,我們需要修改truffle的配置信息,使其鏈接到ganache網絡;替換如下:需要修改host和port:

module.exports = {

  networks: {
    // Useful for testing. The `development` name is special - truffle uses it by default
    // if it's defined here and no other network is specified at the command line.
    // You should run a client (like ganache-cli, geth or parity) in a separate terminal
    // tab if you use this network and you must also set the `host`, `port` and `network_id`
    // options below to some value.
    //
    development: {
     host: "127.0.0.1",     // Localhost (default: none)
     port: 7545,            // Standard Ethereum port (default: none)
     network_id: "*",       // Any network (default: none)
    },

然後執行如下代碼進行編譯:

truffle migrate

部署成功後,就可以看到ganache鏈中block的變化,之後就可以進行編寫測試代碼了。

測試代碼分爲兩種:一種用javascript編寫,一種用solidity編寫,我一直用solidity進行的測試;

編寫完測試代碼,運行下面代碼進行測試:

truffle test

如下表示測試通過:

接下來與web頁面進行交互什麼的。。。後續再總結

Truffle開發和用Remix的區別:

  • Truffle看起來很正式,目錄結構很清晰,領導會覺得你很熟練,適合裝逼;
  • remix上寫合約,錯誤提示比idea上更加智能(自我感覺,一直喜歡用,測試很方便,當然領導覺得你這樣測試相當於沒測試);
  • remix需要一直部署合約,就是說你只要改一點點合約 就必須重新部署,但是truffle只需要部署一次;

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章