以太坊Solidity程式語言開發框架————13、配置檔案

FLy_鵬程萬里發表於2018-07-14

位置

你的配置檔案是truffle.js。位於專案的根目錄下。這個檔案是Javascript檔案,支援執行程式碼來建立配置。它必須匯出一個物件,來代表專案配置,如下面的例子。

WINDOWS下的名稱空間衝突

當使用Windows的命令列時,預設的配置檔名與truffle衝突。這種情況下,我們推薦使用Windows的power Shell或Git BASH。你也可以將配置檔案重新命名為truffle-config.js來避免衝突。

例子

module.exports = {
  build: {
    "index.html": "index.html",
    "app.js": [
      "javascripts/app.js"
    ],
    "app.css": [
      "stylesheets/app.css"
    ],
    "images/": "images/"
  },
  rpc: {
    host: "localhost",
    port: 8545
  }
};

預設配置檔案已經配置好了,buildrpc。這些預設和非預設選項,詳見後面。

選項

BUILD

這個是前端的構建配置。預設呼叫預設構建器,在上述構建章節,有所說明。但你也可以自定的構建流程,檢視高階構建流程章節來了解更多。

例子:

build: {
  "index.html": "index.html",
  "app.js": [
    "javascripts/app.js"
  ],
  "app.css": [
    "stylesheets/app.css"
  ],
  "images/": "images/"
}

NETWORKS

指定在移植(Migration)時使用哪個網路。當在某個特定的網路上編譯或執行移植時,合約會快取起來方便後續使用。當你的合約抽象層檢查到你連到某個網路上時,它會使用這個這個網路上原有的快取合約來簡化部署流程。網路通過以太坊的RPC呼叫中的net_version來進行標識。

下述的networks物件,通過一個網路名做為配置的鍵,值對應定義了其網路引數。networks的對應選項不是必須的,但如果一旦指定,每個網路必須定義一個對應的network_id。如果你想指定一個預設網路,你可以通過將netword_id的值標記為default來實現,當沒有匹配到其它的網路時,就會使用預設網路。需要注意的是整個配置中,應該有且僅有一個default的網路。一般來說,預設網路主要用於開發,配置,合約等資料沒有長期儲存的需要,網路ID也會因TestRPC的重啟而頻繁改變時。

網路名稱用於使用者介面呼叫時使用,在移植中的使用方式如下:

$ truffle migrate --network live

你還可以選擇性的指定rpc的配置資訊。下面是一個示例:

networks: {
  "live": {
    network_id: 1, // Ethereum public network
    // optional config values
    // host - defaults to "localhost"
    // port - defaults to 8545
    // gas
    // gasPrice
    // from - default address to use for any transaction Truffle makes during migrations
  },
  "morden": {
    network_id: 2,        // Official Ethereum test network
    host: "178.25.19.88", // Random IP for example purposes (do not use)
    port: 80
  },
  "staging": {
    network_id: 1337 // custom private network
    // use default rpc settings
  },
  "development": {
    network_id: "default"
  }
}

RPC

關於如何連線到以太坊客戶端的一些細節。hostport是需要,另外還需要一些其它的。

  • host:指向以太坊客戶端的地址。本機開發時,一般為localhost
  • port:以太坊客戶端接收請求的埠,預設是8545
  • gas:部署時的Gas限制,預設是4712388
  • gasPrice:部署時的Gas價格。預設是100000000000(100 Shannon)
  • from:移植時使用的源地址。如果沒有指定,預設是你的以太坊客戶端第一個可用帳戶。

示例:

rpc: {
  host: "localhost",
  port: 8545
}

MOCHA

MochaJS測試框架的配置選項,詳細參考documentation

示例:

mocha: {
  useColors: true
}

如果任何問題,歡迎留言批評指正。

相關文章