GithubHelp home page GithubHelp logo

renovate-bot / woodpile37-_-retesteth Goto Github PK

View Code? Open in Web Editor NEW

This project forked from woodpile37/retesteth

0.0 0.0 0.0 1.84 MB

testeth via RPC. Test run, generation by t8ntool protocol

Home Page: http://retesteth.ethdevops.io/

License: GNU General Public License v3.0

Shell 0.16% C++ 95.97% C 0.13% CMake 3.60% Dockerfile 0.15%

woodpile37-_-retesteth's Introduction

retesteth

testeth via RPC (wiki: https://github.com/ethereum/retesteth/wiki) tests execution/generation via transition tool (https://ethereum-tests.readthedocs.io/en/latest/t8ntool-ref.html) (Execution stats: http://retesteth.ethdevops.io/)

The Goal

  • A test tool that would be capable of running current Blockchain/State tests against any client
  • On client side use test RPC or transition tool executable which exports client core logic of transaction execution on given state
  • Filling existing tests (generating post state from *Filler.json instruction files) using the above and any existing client
  • Running 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
  • Or a simple transition tool that is also usefull for transaction debugging: https://ethereum-tests.readthedocs.io/en/latest/t8ntool-ref.html

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 multiple 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
  • done: Use retesteth to produce fork tests with geth/besu
  • done: Refactor the code, improve stability
  • now: Support and development, support teams

Building instructions

Ubuntu (retesteth):

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

MacOS (retesteth + tests + geth):

HOMEBREW_NO_AUTO_UPDATE=1 brew install -q cmake ninja git [email protected]
git clone --depth 1 https://github.com/ethereum/go-ethereum.git
git clone --depth 1 https://github.com/ethereum/tests.git
cd go-ethereum
make all
ln -s ./build/bin/evm /usr/local/bin/evm
cd ..
git clone https://github.com/ethereum/retesteth.git
cd retesteth
mkdir build
cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake
cmake --build .

Or try building instruction for beginners: retesteth + solidity build

Usage

Wiki: https://github.com/ethereum/retesteth/wiki Requires 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 -- --testpath "your path to ethereum/tests repo"

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!

woodpile37-_-retesteth's People

Contributors

alexeyakhunov avatar demmojo avatar jwasinger avatar marcuswentz avatar marioevz avatar pirapira avatar qbzzt avatar rootulp avatar winsvega avatar yperbasis avatar yxliang01 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.