ganache-cli命令行參數說明


參考:
http://blog.hub   wiz.com/2018/04/16/ganache-cli-manual/

ganache-cli是以太坊節點仿真器軟件ganache的命令行版本,可以方便開發者快速進行以太坊DApp的開發與測試。 本文將詳細介紹ganache-cli的安裝及命令行參數的作用。

安裝

1
npm install -g ganache-cli

啟動

1
~$ ganache-cli

啟動選項

  • -a 或 –accounts: 指定啟動時要創建的測試賬戶數量。
  • -e 或 –defaultBalanceEther: 分配給每個測試賬戶的ether數量,默認值為100。
  • -b 或r –blockTime: 指定自動挖礦的blockTime,以秒為單位。默認值為0,表示不進行自動挖礦。
  • -d 或 –deterministic: 基於預定的助記詞(mnemonic)生成固定的測試賬戶地址。
  • -n 或 –secure: 默認鎖定所有測試賬戶,有利於進行第三方交易簽名。
  • -m 或 –mnemonic: 用於生成測試賬戶地址的助記詞。
  • -p 或 –port: 設置監聽端口,默認值為8545。
  • -h 或 –hostname: 設置監聽主機,默認值同NodeJS的server.listen()
  • -s 或 –seed: 設置生成助記詞的種子。.
  • -g 或 –gasPrice: 設定Gas價格,默認值為20000000000。
  • -l 或 –gasLimit: 設定Gas上限,默認值為90000。
  • -f 或 –fork: 從一個運行中的以太坊節點客戶端軟件的指定區塊分叉。輸入值應當是該節點旳HTTP地址和端口,例如http://localhost:8545。 可選使用@標記來指定具體區塊,例如:http://localhost:8545@1599200
  • -i 或 –networkId:指定網絡id。默認值為當前時間,或使用所分叉鏈的網絡id。
  • –db: 設置保存鏈數據的目錄。如果該路徑中已經有鏈數據,ganache-cli將用它初始化鏈而不是重新創建。
  • –debug:輸出VM操作碼,用於調試。
  • –mem:輸出ganache-cli內存使用統計信息,這將替代標准的輸出信息。
  • –noVMErrorsOnRPCResponse:不把失敗的交易作為RCP錯誤發送。開啟這個標志使錯誤報告方式兼容其他的節點客戶端,例如geth和Parity。

特殊選項

  • –account: 指定賬戶私鑰和賬戶余額來創建初始測試賬戶。可多次設置:
    1
    $ ganache-cli --account="<privatekey>,balance" [--account="<privatekey>,balance"]

注意私鑰長度為64字符,必須使用0x前綴的16進制字符串。賬戶余額可以是整數,也可以是0x前綴的17進制字符串,單位為wei。

使用–account選項時,不會自動創建HD錢包。

  • -u 或 –unlock: 解鎖指定賬戶,或解鎖指定序號的賬戶。可以設置多次。當與–secure選項同時使用時,這個選項將改變指定賬戶的鎖定狀態:
1
$ ganache-cli --secure --unlock "0x1234..." --unlock "0xabcd..."

也可以指定一個數字,按序號解鎖賬號:

1
$ ganache-cli --secure -u 0 -u 1

 

----------------------------------------------------------------------------------------------------------------------------------------------------

Ganache CLI - 用於測試和開發的快速以太坊RPC客戶端

 

Ganache CLI

    用於測試和開發的快速以太坊RPC客戶端。 http://truffleframework.com/ganache

注意:testrpc 是現在的ganache-cli。 像使用testrpc一樣去使用它。

 

Welcome to Ganache CLI

        Ganache CLI是以太坊開發工具Truffle套件的一部分,是以太坊開發私有區塊鏈的Ganache命令行版本。

        Ganache CLI使用ethereumjs來模擬完整的客戶端行為,使開發以太坊應用程序更快,更輕松,更安全。它還包括所有主流的RPC函數和功能(如event),並可以准確地運行以使開發變得容易。

Looking for TestRPC?

         如果你來這里期待找到TestRPC,那你就來對了。 Truffle采用了TestRPC,並將其作為Truffle套件工具的一部分。 從現在開始,您可以期待更好的支持以及大量有助於使以太坊發展更安全,更輕松,更愉快的新功能。就像你將testrpc一樣使用ganache-cli。

Installation

         ganache-cli是用Javascript編寫的,並通過npm作為Node包進行分發。安裝之前首先要確保安裝了Node.js(> = v6.11.5)。

 

        npm install -g ganache-cli

Using Ganache CLI 

    Command Line

        $ ganache-cli <options>

 

選項:

        · -a or --accounts: 指定在啟動時要生成的帳戶數量。

        · -e or --defaultBalanceEther: 分配每個測試帳戶的以太幣數量。默認值是100。

        · -b or --blockTime: 為自動挖礦指定blockTime(以秒為單位)。默認值為0,不進行自動挖礦。

        · -d or --deterministic: 基於預先定義的助記符生成確定性地址。

        · -n or --secure: 默認鎖定可用帳戶(適用於第三方交易簽名)

        · -m or --mnemonic: 使用特定的HD錢包助記符來生成初始地址。

        · -p or --port: 要監聽的端口號。默認為8545。

        · -h or --hostname: 監聽的主機名。默認為127.0.0.1。

        · -s or --seed: 使用任意數據生成要使用的HD錢包助記符。

        · -g or --gasPrice: 使用自定義的燃料價格(默認為20000000000)

        · -l or --gasLimit: 使用自定義燃料限制(默認為90000)

        · -f or --fork: 從另一個當前在給定塊上運行的以太坊客戶端分叉。 輸入應該是另一個客戶端的HTTP位置和端口, e.g. http://localhost:8545. 您可以選擇使用@ 符號:http:// localhost:8545 @ 1599200 指定要分叉的塊。

        · -i or --networkId: 指定ganache-cli用於標識自身的網絡ID (如果已配置,默認為當前時間或分叉區塊鏈的網絡ID)

        · --db: 指定目錄的路徑以保存鏈式數據庫。如果數據庫已經存在,ganache-cli會初始化該鏈,而不是創建一個新鏈。

        · --debug: 輸出VM操作碼以進行調試。

        · --mem: 輸出ganache-cli內存使用情況統計信息。這取代了傳統的輸出。

        · --noVMErrorsOnRPCResponse: 不要將交易發送失敗作為RPC錯誤傳輸。為與其他客戶端(如geth和Parity)兼容的錯誤報告行為啟用此標志。

 

特殊選項:

        · --account: 指定--account = ...(no's')任意多次傳遞任意私鑰及其相關余額以生成初始地址。

 

          $ ganache-cli --account="<privatekey>,balance" [--account="<privatekey>,balance"]

 

    請注意,私鑰長度為64個字符,並且必須以0x前綴的十六進制字符串形式輸入。余額可以輸入為一個整數或0x前綴的十六進制值,指定該帳戶中wei的數量。

    使用--account時,不會為您創建HD錢包。

 

        · -u or --unlock: 指定 - unlock...多次傳遞地址或帳戶索引以解鎖特定帳戶。當與 -- secure一起使用時,--unlock將覆蓋指定帳戶的鎖定狀態。

 

          $ ganache-cli --secure --unlock "0x1234..." --unlock "0xabcd..."

 

您還可以指定一個數字,按他們的索引解鎖賬戶:

 

          $ ganache-cli --secure -u 0 -u 1

 

    此功能也可用於模擬帳戶來解鎖您無法訪問的地址。當與-fork功能一起使用時,可以使用ganache-cli將交易作為區塊鏈上的任何地址進行處理,這對於測試和動態分析非常有用。

Library

作為Web3提供者(provider):

        var ganache = require("ganache-cli");

        web3.setProvider(ganache.provider());

 

作為一般的http服務器(server):

        var ganache = require("ganache-cli");

        var server = ganache.server();

        server.listen(port, function(err, blockchain) {...});

 

.provider()和.server()都有一個對象,它允許你指定ganache-cli的行為。該參數是可選的。可用的選項有:

 

    · "accounts": Array of Object's. 每個對象都應該有一個十六進制值的平衡鍵。還可以指定密鑰secretKey,它代表帳戶的私鑰。如果沒有secretKey,則地址是使用給定余額自動生成的。如果指定,則該密鑰用於確定帳戶的地址。

    · "debug": boolean - 用於調試的輸出VM操作碼

    · "logger": Object - 實現log()函數的對象,如控制台。

    · "mnemonic": 使用特定的HD錢包助記符來生成初始地址。

    · "port": 作為服務器運行時要偵聽的端口號。

    · "seed": 使用任意數據生成要使用的HD錢包助記符。

    · "total_accounts": number - 在啟動時生成的帳戶數量。

    · "fork": string - 與上面的--fork選項相同

    · "network_id": integer - 與上面的--networkId選項相同

    · "time": Date -  第一個塊應該開始的日期。使用此功能以及evm_increaseTime方法來測試時間相關的代碼。

    · "locked": boolean  - 帳戶是否默認鎖定。

    · "db_path": String  - 指定目錄的路徑以保存鏈式數據庫。如果數據庫已經存在,ganache-cli會初始化該鏈,而不是創建一個新鏈。

    · "account_keys_path": String  - 指定用於保存帳戶和私鑰的文件,以進行測試。

    · "vmErrorsOnRPCResponse": boolean  - 是否將事務故障作為RPC錯誤傳送。對於與其他客戶端(如geth和Parity)兼容的錯誤報告行為,設置為false。

Implemented Methods

目前實現的RPC方法是:

  • bzz_hive (stub)

  • bzz_info (stub)

  • debug_traceTransaction

  • eth_accounts

  • eth_blockNumber

  • eth_call

  • eth_coinbase

  • eth_estimateGas

  • eth_gasPrice

  • eth_getBalance

  • eth_getBlockByNumber

  • eth_getBlockByHash

  • eth_getBlockTransactionCountByHash

  • eth_getBlockTransactionCountByNumber

  • eth_getCode (only supports block number “latest”)

  • eth_getCompilers

  • eth_getFilterChanges

  • eth_getFilterLogs

  • eth_getLogs

  • eth_getStorageAt

  • eth_getTransactionByHash

  • eth_getTransactionByBlockHashAndIndex

  • eth_getTransactionByBlockNumberAndIndex

  • eth_getTransactionCount

  • eth_getTransactionReceipt

  • eth_hashrate

  • eth_mining

  • eth_newBlockFilter

  • eth_newFilter (includes log/event filters)

  • eth_protocolVersion

  • eth_sendTransaction

  • eth_sendRawTransaction

  • eth_sign

  • eth_syncing

  • eth_uninstallFilter

  • net_listening

  • net_peerCount

  • net_version

  • miner_start

  • miner_stop

  • personal_listAccounts

  • personal_lockAccount

  • personal_newAccount

  • personal_unlockAccount

  • personal_sendTransaction

  • shh_version

  • rpc_modules

  • web3_clientVersion

  • web3_sha3

還有一些特殊的非標准方法不包含在原始RPC規范中:

  • evm_snapshot :  快照當前塊的區塊鏈狀態。沒有參數。返回創建的快照的整數ID。

  • evm_revert :  將區塊鏈狀態恢復為上一個快照。采用一個參數,即要恢復的快照ID。如果沒有傳遞快照ID,它將恢復到最新的快照。返回true。

  • evm_increaseTime :  及時向前跳。取一個參數,即以秒為單位增加的時間量。返回總時間調整,以秒為單位。

  • evm_mine : 強制挖礦。沒有參數。開采礦塊與是否采礦開始或停止無關。

Unsupported Methods

  • eth_compileSolidity:  如果你想用Javascript編譯Solidity,請參閱solc-js項目。

Docker

    開始使用Docker映像的最簡單方法是:

 

        docker run -d -p 8545:8545 trufflesuite/ganache-cli:latest

 

    要通過Docker將選項傳遞給ganache-cli,只需將參數添加到run命令中即可:

 

        docker run -d -p 8545:8545 trufflesuite/ganache-cli:latest -a 10 --debug

 

    從源代碼構建Docker容器:

        git clone https://github.com/trufflesuite/ganache-cli.git&& cd ganache-cli

        docker build -t trufflesuite/ganache-cli .


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM