跳转到主要内容

一个用于辅助智能合约开发的以太坊模拟器。

项目描述

# 以太坊测试RPC服务器

[![加入聊天 https://gitter.im/pipermerriam/eth-testrpc](https://badges.gitter.im/pipermerriam/eth-testrpc.svg)](https://gitter.im/pipermerriam/eth-testrpc?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

## 以太坊测试RPC

针对自动化测试使用的有限RPC客户端。使用[pythereum](https://github.com/ethereum/pyethereum)在后台运行以太坊客户端,无需挖矿或网络。结果是提供一个即时结果和快速反馈的以太坊客户端。

### 安装

安装很简单,通过pip

` 使用pip安装 eth-testrpc `

或者,升级

` pip install eth-testrpc --upgrade `

或者,使用gevent线程安装

` pip install eth-testrpc[gevent] `

然后设置环境变量 TESTRPC_THREADING_BACKEND=gevent

### 运行

通过pip安装将在您的机器上提供< cite>testrpc-py命令

` $ testrpc `

这将在localhost:8545上运行testrpc。您可以传递不同的端口(-p, –port)或域名(-d, –domain)。

### 实现的方法

当前实现的RPC方法有

  • eth_coinbase

  • eth_accounts

  • eth_gasPrice

  • eth_blockNumber

  • eth_sendTransaction

  • eth_sendRawTransaction

  • eth_call

  • eth_getCompilers

  • eth_compileSolidity

  • eth_getCode(仅支持“latest”块号)

  • eth_getBalance

  • eth_getTransactionCount

  • eth_getTransactionByHash

  • eth_getTransactionReceipt

  • eth_newBlockFilter(暂时移除,直到在底层库中实现)

  • eth_newFilter(暂时移除,直到在底层库中实现)

  • eth_getFilterChanges(暂时移除,直到在底层库中实现)

  • eth_uninstallFilter(暂时移除,直到在底层库中实现)

  • eth_protocolVersion(见 rpc_configure

  • eth_syncing(见 rpc_configure

  • eth_mining(见 rpc_configure

  • web3_sha3

  • web3_clientVersion

  • net_version(见 rpc_configure

  • net_listening(见 rpc_configure

  • net_peerCount(见 rpc_configure

还有一些特殊的非标准方法,这些方法不包括在原始RPC规范中

  • evm_reset:无参数,无返回值。

  • evm_snapshot:无参数。返回创建的快照的整数ID。

  • evm_revert:一个可选参数。回滚到传递的快照ID,或最新的快照。

在调用 evm_reset 时,testrpc 将将其内部链的状态回滚到创世块,并像没有处理交易一样操作。同样,您可以使用 evm_snapshotevm_revert 方法以所需的方式保存和恢复evm状态。这些方法的示例用法如下

  • evm_reset:在测试套件的开始运行一次。

  • evm_snapshot:在每个测试的开始运行,快照evm的状态。

  • evm_revert:在每个测试的末尾运行,回滚到已知干净的状态。

TestRPC还公开了用于通过某些数量的块推进测试evm的 evm_mine 方法。

  • evm_mine:可选提供要挖掘的整数块数。默认为1块。无返回值。

TestRPC公开了用于快速前进到未来时间戳的 testing_timeTravel 方法。

  • testing_timeTravel:接受一个整数时间戳,该时间戳必须大于当前最新块的戳记。

TestRPC公开了用于修改以下端点返回的静态值的 rpc_configure 方法。

  • eth_protocolVersion(默认 63

  • eth_syncing(默认 False

  • eth_mining(默认 True

  • net_version(默认 1

  • net_listening(默认 False

  • net_peerCount(默认 0

  • homestead_block_number(默认 0

  • dao_fork_block_number(默认 0

  • anti_dos_fork_block_number(默认 0

  • clearing_fork_block_number(默认 0

rpc_configure接受两个参数。

  • key:表示您想要更改返回值的RPC方法的字符串。

  • value:端点应返回的值。

《宅地》《DAO》《反DDoS》《清算》分叉配置决定了相应分叉规则应在哪个区块号生效。所有默认值均为< cite>0

TestRPC使用默认的gas限制为4000000。要更改此值,请将环境变量TESTRPC_GAS_LIMIT设置为所需值。

### 发布新版本(针对eth-testrpc开发者)

  • setup.py中增加版本号

  • CHANGES.txt中添加条目

  • 标记发布。

` git tag -s -m "X.X.X 发布" vX.X.X git push --tags `

  • 为刚推送的标签在GitHub上进行发布

  • 构建并推送发布到PyPI

` make release `

### 许可证

MIT

### Consensys

此库最初由Consensys编写,后来在不再维护时转让。非常感谢他们创建了这个极其有用的库。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

eth-testrpc-1.3.5.tar.gz (17.6 kB 查看散列

上传时间

构建分发

eth_testrpc-1.3.5-py3-none-any.whl (18.1 kB 查看散列

上传时间 Python 3

支持者: