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.

Constantinople statetest support #9568

@holiman

Description

@holiman

Version

Version: parity-evm built from scratch today, so most likely bbaac0c

Description

I trying out the fuzzer on Constantinople rules, which unfortunately does not execute on parity.
parity:

# /parity-evm state-test --std-json /testfiles/martin-Sat_21_41_37-29930-11-test.json

{"action":"skipping because of missing spec","test":"randomStatetestmartin-Sat_21_41_37-29930-11:constantinople:0"}

geth

# evm --json --nomemory statetest /testfiles/martin-Sat_21_41_37-29930-11-test.json

{"pc":0,"op":97,"gas":"0x6770fc","gasCost":"0x3","memory":"0x","memSize":0,"stack":[],"depth":1,"opName":"PUSH2","error":""}
{"pc":3,"op":120,"gas":"0x6770f9","gasCost":"0x3","memory":"0x","memSize":0,"stack":["0xdfa0"],"depth":1,"opName":"PUSH25","error":""}
...

Example file to repro the behaviour (I had to remove the code due to max-character limit in GH issues):

{"randomStatetestmartin-Sat_21_41_37-29930-11": {"_fuzz": {"compressed_random_state": null}, "env": {"currentCoinbase": "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty": "0x20000", "currentGasLimit": "0x4e022e707ab8ab", "currentNumber": "1", "currentTimestamp": "1000", "previousHash": "d663c53908df5dfcb22877d223956064501796d274ef5c2228473dc8639d1b50"}, "post": {"Constantinople": [{"hash": "0x00000000000000000000000000000000000000000000000000000000deadc0de", "logs": "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "indexes": {"data": 0, "gas": 0, "value": 0}}]}, "pre": {"ffffffffffffffffffffffffffffffffffffffff": {"balance": "0x1c4ef331ed3517fa", "code": "0x00", "nonce": "0x55", "storage": {}}, "1000000000000000000000000000000000000000": {"balance": "0x2696307dd1a7a247", "code": "0x00", "nonce": "0x55", "storage": {}}, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b": {"balance": "0x8ca921e5c5d5fa90", "code": "0x00", "nonce": "0x55", "storage": {}}, "c94f5374fce5edbc8e2a8697c15331677e6ebf0b": {"balance": "0x3e91fcbd5e70a9ac", "code": "0x00", "nonce": "0x55", "storage": {}}, "d94f5374fce5edbc8e2a8697c15331677e6ebf0b": {"balance": "0xdda850621df9ca1d", "code": "0x00", "nonce": "0x55", "storage": {}}, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b": {"balance": "0x0aef8f40be752b38", "code": "0x", "nonce": "0x55", "storage": {}}}, "transaction": {"data": ["0x00"], "gasLimit": ["0x8ff6f4", "3000000"], "gasPrice": "0x05", "nonce": "0x55", "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to": "0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value": ["0x74c5f72f", "0"]}}}

This is one of the few remaining snags before we can put fuzzing properly into prod.

Metadata

Metadata

Assignees

No one assigned

    Labels

    F3-annoyance 💩The client behaves within expectations, however this “expected behaviour” itself is at issue.M4-core ⛓Core client code / Rust.M5-binaries 📦External binaries (ethkey, ethstore, ethvm, etc.)P2-asap 🌊No need to stop dead in your tracks, however issue should be addressed as soon as possible.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions