Git Product home page Git Product logo

retesteth's Introduction

retesteth

testeth via RPC (wiki: https://github.com/ethereum/retesteth/wiki)
(Execution stats: http://retesteth.ethdevops.io/)

The Goal

  • A test tool that would be capable of running current Blockchain tests against any client by sending rpc request to the client instatnce on either local or remote host. (using unix or TCP sockets)
  • Filling existing tests (generating post state from *Filler.json instruction files) using rpc and any exisiting client
  • Running rpc request - response tests with a provided client on localhost
  • Bunch tests execution with many clients with many threads
  • A minimum set of additional rpc methods for client to negotiate with the tool: https://github.com/ethereum/retesteth/wiki/RPC-Methods

Current progress

  • done: State tests execution and filling was done as PoC on ethereum cpp client (aleth)
  • done: Tests execution using threads on localhost with multimple instances of a client (geth + aleth)
  • done: Develop minimum set of rpc methods that are to be implemented on other clients and could be used to run tests via rpc
  • done: PoC Running Blockchain tests using geth client
  • done: Implement a set of PoC methods in other client then aleth
  • done: Refactoring and stability when generating GeneralStateTests
  • done: Blockchain test generation support
  • now: Use retesteth to produce fork tests with geth/besu/aleth
  • now: Refactor the code, impove stability

Building instructions

git clone [email protected]:ethereum/retesteth.git
cd retesteth
mkdir build
cd build
cmake ..
make -j4

Or try building instruction for begginers: retesteth + solidity build

Usage

WIKI: https://github.com/ethereum/retesteth/wiki
Requres to have a client installed on your system. Read the wiki page on detailed instruction on how to configure your client to work with retesteth https://github.com/ethereum/retesteth/wiki/Add-client-configuration-to-Retesteth

./retesteth -t GeneralStateTests

Docker instructions

See: https://github.com/ethereum/retesteth/wiki/Docker-instructions

RPC Methods

See: https://github.com/ethereum/retesteth/wiki/RPC-Methods

Contact

Telegram: @wdimitry

Building instructions for beginners

Dependencies

GIT

sudo apt-get update
sudo apt-get install git g++ build-essential

Cmake

Make sure the version is higher than VERSION 3.9.3, otherwise install cmake from a different source

sudo apt-cache policy cmake
sudo apt-get install cmake

Retesteth

cd ~
mkdir Ethereum
cd Ethereum
git clone https://github.com/ethereum/retesteth.git
cd retesteth
mkdir build
cd build
cmake ..

Now you should see the successful build files generation result:

Configuring done
-- Generating done
-- Build files have been written 

Run the build command to compile: -j threadCount to optimize the build speed. Depending on your processor threads it will increase the building speed.

make -j4

Solidity

check the available boost version by
sudo apt-cache policy libboost-all-dev

install boost dependency boost if version >=1.65
sudo apt-get install libboost-all-dev

Solidity building instructions:

cd ~
cd Ethereum
git clone https://github.com/ethereum/solidity.git
cd solidity
git checkout 8f2595957bfc0f3cd18ca29240dabcd6b2122dfd
mkdir build
cd build
cmake .. -DLLL=1
make lllc -j4

DONE!

retesteth's People

Contributors

winsvega avatar qbzzt avatar alexeyakhunov avatar yxliang01 avatar pirapira avatar yperbasis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.