以太坊Solidity程式語言開發框架————14、網路與APP部署

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

背景

即使最小的專案也至少會與兩個以上的區塊鏈打交道,一個是開發機上的測試鏈,如EthereumJS TestRPC.另一個則是比如你最終要部署的網路,如以太坊網路,自己公司內的私鏈等等。Truffle提供了一個管理不同網路下的構建和部署資源的系統,來簡化最終的部署流程。

配置

詳見1. 配置檔案章節瞭解更多。

指定一個網路

大多數Truffle提供的命令根據指定的網路不同而表現不同,會使用對應網路下的合約和配置資訊。可以通過--network選項在引數上進行控制。

$ truffle migrate --network live
networks: {
  development: {
    host: "localhost",
    port: 8545,
    network_id: "*" // match any network
  },
  live: {
    host: "178.25.19.88", // Random IP for example purposes (do not use)
    port: 80,
    network_id: 1,        // Ethereum public network
    // optional config values
    // gas
    // gasPrice
    // from - default address to use for any transaction Truffle makes during migrations
  }
}

在上面這個例子中,Truffle會在live網路中進行移植。如果配置如上述配置示例的Example的章節所指定的內容的話,是最終在以太坊網路上進行部署。

構建資源

正如4. 編譯合約章節中所提到的那樣,構建後的資源儲存在./build/contracts目錄下,以.sol.js這樣的檔案存在。當你編譯合約檔案,或者在某個網路上執行移植時,Truffle將會更新這些.sol.js的檔案,文來包含相關網路的資訊。當這些資源在後續中被使用了,比如在前端應用中。它會自動檢測當前使用的網路,根據網路自動使用對應的合約資源。

應用部署

因為網路是在執行時自動檢測的,這意味著你只需要部署你的應用或前端一次。當你的程式執行時,會動態檢測當前使用的網路,以呼叫合適的資源,這讓你的程式非常的靈活。

舉例來說,如果你將程式釋出到http://mydapp.io/,使用錢包瀏覽器時,你的程式能很好的執行。如果你的錢包瀏覽器執行在正式網路上,你的dapp會使用正式網路上部署的合約,如果是在測試網路上,則對應的使用測試網路的資源。

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

相關文章