Skip to content

London update 9.0.1: Fixing issues

Compare
Choose a tag to compare
@winsvega winsvega released this 05 Jun 22:21
· 873 commits to develop since this release

The recent tests changes:

Fixing issues in the tests with EIP1559 formulas
More explicit transaction rejection reason from tools when filling the tests

Announcement

The test process diagram: http://tinyurl.com/2ctak8yn
Reminder of a brand new web interface for test debugging: http://retesteth.ethdevops.io/web/
Tests stats on latest builds: http://retesteth.ethdevops.io/
(implement test RPC support or t8ntool protocol to apply for the page. https://ethereum-tests.readthedocs.io/en/latest/t8ntool-ref.html)
Previous release link: https://github.com/ethereum/tests/releases/tag/9.0.0

Test format

BlockchainTests Fillers

"invalid" section in transaction replaced with "expectException" similar to the one in BlockHeader overwrite
It is now possible to set expected exception depending on the mining network for a specific transaction
This require test_mineBlocks RPC change in the test protocol and t8ntool response change as well.
The new return on test_mineBlocks is a json

{
   "valid" : true,
   "rejectedTransactions" : [
       {
            "hash" : "0x1122..11",
            "error" ; "Gas Limit reached"
       }
   ]
}

BlockchainTests Filled

If the block test filler had transactions marked "expectException" the filled test would have "transactionSequence" section with transaction order as its imported into state in the current block. if transaction import expected to fail it is marked so with exception. The new section allows clients to check transaction rejection in the blockchain tests. As previously invalid transaction been checked only during the test filling. Invalid transaction do not present in the valid block rlp. Now clients can try importing it on top of the previous block state and make sure the rejection exception is validated.

"transactionSequence" : [
 {
     "rawBytes" : "0xf863802b...4db0d72118",
     "valid" : "false",
     "exception" : "TR_NoFunds"
 },
 {
      "rawBytes" : "0xf863802...b4db0d72118",
     "valid" : "true"
 }
],

Test Regeneration

Update all:

  • Documentation
    PR #867

  • Fixes of pr's errors
    PR #864
    PR #866
    PR #870
    PR #871

  • GasLimit delta checks fix on London
    PR #860

  • EIP1559 transaction gasPrices
    PR #859

  • Update EIP1559 rules
    PR #862

  • Issue 854 Coinbase as hotload account
    #854
    PR #855

  • Correct tests with expected transaction failure reason
    PR #872

  • More transaction exception tests
    PR #873

Upcoming changes:

Transaction rejection check in StateTests
Deprecate "transaction" section in filled GeneralStateTests #828 Rejectd
London EIP tests
Besu retesteth RPC support (web vmtracing support)
Move legacy tests into separate repo (too much space used)