Skip to content
This repository was archived by the owner on Nov 6, 2020. It is now read-only.
This repository was archived by the owner on Nov 6, 2020. It is now read-only.

New statetest execution model #9431

@holiman

Description

@holiman

A couple of months ago, the stateTest execution model was slightly changed, which I noticed when updating the tests within the geth repo.

Some gitter discussion on the topic: https://gitter.im/ethereum/tests?at=5b85004aff445156164b685f
Changes is to add a 0-value mining reward (touch). Normally, the coinbase gets txfees during a statetest -- making it exist already. So this change only makes a difference in the cases
where

  • the coinbase suicided, or
  • there are only 'bad' transactions, which aren't executed. In those cases, the coinbase gets no txfee, so isn't created, and thus needs to be touched

Here are the relevant changes to Geth that was needed in order to make it work: https://github.com/ethereum/go-ethereum/pull/17538/files/548127685648625d8acb3e6ea1b479a2f2a167a9#diff-f53696be8527ac422b8d4de7c8e945c1R149 .

It would be good to know if parity will implement this, or not.

  • If parity does not implement this, then geth shouldn't either, since the execution model of statetests is at the heart of the evmlab-based fuzzing engine, and differences here will yield tons of false positives.

CC @winsvega to answer any questions about the reason for change.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions