This guide is intended to provide resources for those wanting to help test Metropolis EIPs. The CPP team is currently in the middle of a migration from EthDocs to a documentation site that is more dedicated to CPP-Ethereum so the documentation on creating tests for Ethereum using testeth is scattered. Everything you will need to get started should be compiled below.
- Ability to compile/build testeth and LLL compiler or run a docker file.
- Ability to understand the LLL Ethereum language.
- Ability to understand EIPs, particuarly those that are going to be going into the Metropolis hard fork.
- Create a GitHub account if you do not already have one.
- Read the resources below to learn about LLL, EVM, testeth, and EIPs.
- Join the Gitter chat room for Ethereum testers at https://gitter.im/ethereum/tests. Introduce yourself and ask questions if you get confused or need guidance on what to do.
- Create and/or run consensus tests by following the guide here: Yoichi's Guide to Generate Consensus Tests using testeth. If you create new tests open a pull request in the appropriate repository.
- Document your learnings and correct/add to current documentation.
LLL is a high-level language in Ethereum used to write smart contracts. LLL is considered a more difficult to learn and write than Solidity because it deals directly with a lot of the low level OPCODEs and features of the Ethereum Virtual Machine (EVM). If you have familiarity with stack machines or have ever taken a course on assembly languages you will be able to pick this up.
- An introduction to LLL for Ethereum Smart Contract Development by Daniel Ellison
- Building and installing Ethereum compilers by Daniel Ellison
- Building and installing Ethereum compilers screencast video by Daniel Ellison
- Compiling an LLL Contract for the First Time by Daniel Ellison
- Deploying your first LLL contract — Part 1
- Deploying your first LLL contract — Part 2
- The Resurrection of LLL blog posts by Daniel Ellison (this has 6 total parts)
- Advanced Solidity Tutorial by Andreas Olofsson (especially "EVM Stack and Assembler" section)
- Reddit thread with links to old LLL code
- Old Ethereum Github Wiki page with links to LLL specs and examples
- Old LLL code by Andreas Olofsson
- Yoichi's Guide to Generate Consensus Tests using testeth
- Pull request for Yoichi's Consensus Test Guide. Please provide feedback/improvements.
- @winsvega's testeth Docker image
- ethereum/tests repo
- EthDocs.org Ethereum Testing Section [Note: Outdated]
- ethereum/tests Wiki (Parts may be outdated)
- List of Metropolis EIPs
- Yoichi's Blog Summarizing Metropolis EIPs
- "What happens when Metropolis EIPs change" - blog by Yoichi
- Bi-monthly Ethereum core developer meeting notes/video where devs discuss EIPs
We are also looking for contributors to ethereumjs-vm (more info soon)