• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 自媒體 查看內容
    • 10238
    • 0
    • 分享到

    如何搭建以太坊測試鏈(附教程)

    2018-7-26 12:36

    來源: HiBlock-Net


    在以太坊項目實際開發中,我們必須要有一個測試環境,因為產品環境是需要消耗GAS的。因此我們希望在測試環境測試無誤之后再發布到產品環境以太坊鏈上去。本篇教程講述如何搭建本地的測試鏈。


    1

    Testnets


    以太坊的測試網絡環境被稱為Testnets,擁有幾乎和以太坊等效的功能。因此可以在Testnets上開發和測試自己的智能合約,測試發幣等等,作為上鏈前的評估環境。


    目前Testnets環境有不少,受到開發者喜愛的主要有以下三種:


    • Ropsten(https://ropsten.etherscan.io/): 一個POW的區塊鏈,非常類似于以太坊,你可以很輕松的進行挖礦操作。

    • Kovan(https://kovan.etherscan.io/): 一個POA的區塊鏈,不能挖礦,需要申請(https://github.com/kovan-testnet/faucet)。

    • Rinkeby(https://rinkeby.etherscan.io/): 一個POA的區塊鏈,不能挖礦,需要申請(https://faucet.rinkeby.io/)。


    以上項目屬于公共的Testnets,可以無需本地搭建直接使用,參考對應的文檔接入即可,也可以使用Geth命令行工具連接到這些公共Testnets網絡中。


    下面我們要介紹的是需要自己DIY的Testnets項目,適用于本地小規模測試,或者沒有外網訪問的測試環境中,就是ganache-cli項目(https://github.com/trufflesuite/ganache-cli)。


    2

    ganache-cli


    曾經這個項目被稱為testrpc,現在已經增強了功能,并且重命名為ganache-cli,也由etherenum項目組遷移到了truffle項目組的名下,作為truffle框架下的一個子項目。


    安裝它需要使用npm:


    $ npm install -g ganache-cli


    快速啟動只需要空參運行ganache-cli即可:


    $ ganache-cli

    Ganache CLI v6.1.6 (ganache-core: 2.1.5)


    Available Accounts

    ==================

    (0) 0x721e4416f6290230274be32f3d68e8194403f5de (~100 ETH)

    (1) 0xefbd7fd54126b3a755cce16ab80b6f018eb2cc4a (~100 ETH)

    (2) 0x3af60c2747c737b37a49cbdaf6d4e3f80794cbcf (~100 ETH)

    (3) 0x35456a4255a0e8d2525ffd2eccd16e88b8242de7 (~100 ETH)

    (4) 0xba6b44714329f4578d785b6132e942b8f920ca07 (~100 ETH)

    (5) 0xfbb8c6da1c3bcfb7e285210f2404364112877a1b (~100 ETH)

    (6) 0x33e90bf0bc85d18f1fd104aaae22722ab046cfc4 (~100 ETH)

    (7) 0x88a7e5c3ebd8c36f84dded2b7e15a59473153cf3 (~100 ETH)

    (8) 0xe025cdf4066b6d8079438dd9eb9d8a30f82a7f1d (~100 ETH)

    (9) 0x5da32eb8ca2c8fd14c745776633924e4d87cfbe4 (~100 ETH)


    Private Keys

    ==================

    (0)0x7a11088361c7cad64acadce8deaae666a6721d02837523663cb46683b4ed7cda

    (1)0x3619c935a7f965449a0104935e4e631cba9077c0783cbf77fe0c5f92fd8bb763

    (2)0x9ac7a2914d651ef3afba681c1c2035909ae6ca93b86ee8fa367b0373c63f9379

    (3)0x7e4651e35c7e9956e7a18eb4f721fad81a0e608736cda6bdfee6a5ff9ee8b99d

    (4)0x11f3144b6f041601e80bfeb6fab4b74caff28fd9fb1cdbf3435967deee308592

    (5)0xf747fbd7e8e85fbf76d6f7c8eb4244d3b72655d5e86648daab6d020f98a0a251

    (6)0x065d754b60b856a42a6418e13fb625632122433d9b3263b686265fb67cfc550b

    (7)0x2857ecc4b378de190265245825dc42443370262c119b894dc61f88564d491252

    (8)0xa86da3e1e8fc33bbd4fcfab2461af10e7d6eaa16002fb9db582aedf8ff92881c

    (9)0x4a50bb4a4d4d29df2e894ad9d18086e079b7a3e8b8e4960649c5043268e73ae5


    HD Wallet

    ==================Mnemonic:      hip achieve device country identify gun drive nest danger run outside window

    Base HD Path:  m/44'/60'/0'/0/{account_index}


    Gas Price

    ==================

    20000000000


    Gas Limit

    ==================

    6721975


    Listening on 127.0.0.1:8545


    可以看到默參運行會直接創建10個錢包賬戶,初始化一些以太幣,并且有非常多的Gas和足夠的Gas Limit,通常來說也足夠運行智能合約的測試了。


    更多可用參數可以參考ganache-cli --help的輸出,可能比較有用的是持久化錢包(--db參數)和監聽0.0.0.0(--host參數),以便組建以太坊Testnets。比如這樣:


    # 在某一臺主機(我這里是192.168.31.100)上運行

    $ mkdir -p ganache_db  # 數據庫目錄必須事先創建,否則程序運行報錯

    $ ganache-cli -h 0.0.0.0 --db ganache_db/

    ....

    HD Wallet

    ==================

    Mnemonic:      crucial peanut biology duck casino safe laugh crowd over enrich crane turkey

    Base HD Path:  m/44'/60'/0'/0/{account_index}


    Gas Price

    ==================

    20000000000


    Gas Limit

    ==================

    6721975


    Listening on 0.0.0.0:8545


    我們以某一臺主機為master,監聽0.0.0.0,運行ganache-cli,其他參數全都默認。在另一臺主機再啟動一個ganache-cli,指明從master節點上進行fork:


    $ mkdir -p ganache_db

    $ ganache-cli -h 0.0.0.0 -f http://192.168.31.100:8545 --db ganache_db/

    ...

    Gas Price

    ==================20000000000


    Gas Limit

    ==================

    6721975


    Forked Chain

    ==================

    Location:    http://192.168.31.100:8545

    Block:       0

    Network ID:  1531668183776

    Time:        Mon Jul 16 2018 00:25:09 GMT+0900


    Listening on 0.0.0.0:8546


    最后出現了Forked Chain字樣,這樣就可以在多個節點上部署區塊鏈,模擬區塊鏈的網絡環境。


    啟動模擬環境之后,使用metamask(https://metamask.io/)就可以連接到測試網絡上,測試交易了,可以參考官方文檔進行操作: https://truffleframework.com/docs/advanced/truffle-with-metamask


    大概的步驟如下:

    啟動ganache-cli之后,在終端輸出可以看到類似于這樣的字樣:


    HD Wallet

    ==================

    Mnemonic:      hard verb crunch rare direct universe mean gold claw need neutral carry

    Base HD Path:  m/44'/60'/0'/0/{account_index}


    按照metamask網站(https://metamask.io/)的鏈接,安裝chrome或firefox插件之后,打開插件圖標,經過一系列的Accept操作之后,進入頁面,選擇Localhost 8545(如果修改過默認監聽端口,那么請使用最后的Custom RPC):



    然后選擇Import Existing DEN(因為ganache-cli已經幫我們初始化好了賬戶,不用自己重新創建了)。在彈出界面中錢包種子填入終端上的Menmonic,初始化密碼自己填一個,滿足8位即可:



    之后就可以看到簡單的錢包賬戶界面了:



    通過Import Account功能就可以導入其他創建好的賬戶了:



    同樣賬戶的私鑰已經打印到終端上了,直接用就可以了。


    本文作者:HiBlock區塊鏈技術布道群-馮宇Ops

    原文發布于簡書

    原文鏈接:https://www.jianshu.com/p/904aaae80320

    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频