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:[email protected]
  • -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 .

原文地址:https://www.cnblogs.com/xiaoxuebiye/p/12579610.html

时间: 2024-10-11 11:52:37

ganache-cli命令行参数说明的相关文章

memcache【命令行参数说明】

Memcache 命令行参数说明 1.启动Memcache 常用参数 -p <num>      设置TCP端口号(默认不设置为: 11211) -U <num>      UDP监听端口(默认: 11211, 0 时关闭) -l <ip_addr>  绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问) -d                    以daemon方式运行 -u <username>

开发CLI命令行

命令行工具:CLI 是在命令行终端使用的工具,如git, npm, vim 都是CLI工具.比如我们可以通过 git clone 等命令简单把远程代码复制到本地 和 cli 相对的是图形用户界面(gui),gui 侧重于易用,cli 则侧重于效率. 如何开发一个CLI工具? 先初始化一个项目: mkdir plgcli cd plgcli 创建 plgcli文件夹, 进入文件夹 修改 package.json文件,增加bin字段 { "name": "plgcli"

如何在CLI命令行下运行PHP脚本,同时向PHP脚本传递参数?

<?php/* //命令行输入输出流fwrite(STDOUT,"Enter your name:");$name = trim(fgets(STDOUT));fwrite(STDOUT,"hello,$name");*/echo $argc;if ($argc > 1){print_r($argv);} ?> 另存为 ./test.php [[email protected] test]# php  ./test.php xxx fdf 3Arr

gcc的使用简介与命令行参数说明

(一) gcc的基本用法(二) 警告提示功能选项(三) 库操作选项(四) 调试选项(五) 交叉编译选项 (一) gcc的基本用法使用gcc编译器时,必须给出一系列必要的调用参数和文件名称.不同参数的先后顺序对执行结果没有影响,只有在使用同类参数时的先后顺序才需要考虑.如果使用了多个 -L 的参数来定义库目录,gcc会根据多个 -L 参数的先后顺序来执行相应的库目录.因为很多gcc参数都由多个字母组成,所以gcc参数不支持单字母的组合,Linux中常被叫短参数(short options),如 -

使用CLI命令行部署VMware VCSA 6.5

在本文中,我们讨论如何使用CLI部署VMware vCSA 6.5,vCSA 6.0提供了两种实现类型,向导和脚本化.vCSA使用CLI.我们将使用一个名为vcsa-deploy的实用程序.同样vcsa-deploy使您能够为vCSA VMware执行安装,升级和迁移. 还有这种操作?对!这种操作是很先进的,省去了鼠标点击了都.66666啊 注意事项: CLI部署需要用到python运行环境,python下载:http://www.python.org/downloads/ 6.7版本json配

在cli命令行上显示当前数据库,以及查询表的行头信息

在$HIVE_HOME/conf/hive-site.xml文件下加入以下配置文件 <property> <name>hive.cli.print.header</name> <value>true</value> <description>Whether to print the names of the columns in query output.</description> </property> &

Linux 程序设计学习笔记----命令行参数处理

转载请注明出处.http://blog.csdn.net/suool/article/details/38089001 问题引入----命令行参数及解析 在使用linux时,与windows最大的不同应该就是经常使用命令行来解决大多数问题.比如下面这样的: 而显然我们知道C语言程序的入口是mian函数,即是从main函数开始执行,而main函数的原型是: int main( int argc, char *argv[] ); int main( int argc, char **argv );

[译文]casperjs使用说明-使用命令行

使用命令行 Casperjs使用内置的phantomjs命令行解析器,在cli模块里,它传递参数位置的命名选项 但是不要担心不能熟练操控CLI模块的API,一个casper实例已经包含了cli属性,允许你很容易的使用他的参数 让我们来看这个简单的casper脚本: var casper = require("casper").create(); casper.echo("Casper CLI passed args:"); require("utils&q

JBoss7应用服务器的命令行工具

本文讲述怎样通过JBoss AS的命令行接口连接到服务器.从JBossAS7版开始,引入了一个名为CLI的新工具,它位于%JBOSS_HOME%\bin目录.进入%JBOSS_HOME%\bin目录,查看jboss-cli.bat脚本文件是否存在.在执行此脚本前,需要先运行JBoss服务器.启动JBoss应用服务器: > %JBOSS_HOME%\bin\standalone.bat CLI命令行脚本执行如下: > %JBOSS_HOME%\bin\jboss-cli.bat You are