You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If block.number >= SERENITY_HARDFORK_BLKNUM, we do the following:
At the start of every block execution, set the storage of 0x40 at key 0 (encoded as big endian z-padded to 32 bytes as usual) to -1.
At the start of every transaction execution, increment this key by 1, regardless of whether or not the transaction succeeded. Then set the storage of 0x50 at that key to equal to the RLP of [blknumber], and set the storage of 0x50 at the key 2**256 - 1 to 256 zero bytes.
Create a precompile contract at storage 0x50, with the following logic: if it receives less than 128 bytes of input data, fails and throws. If it receives 128+n bytes of input data, then attach the input data as an RLP item to the list in 0x50 (ie. after the first log, the RLP would be [blknumber, data1], and so forth), and modify the bytes at key 2**256 - 1 as if you were modifying a bloom filter according to current log rules, with the first 128 bytes being the four topics.
At the start of every block execution, set the storage of 0x40 at key 1 to equal the max gas limit in the block. At the end of every transaction execution, subtract the amount of gas consumed by the transaction from this value, and use this value as the store of how much gas remains usable in the block.
The receipt root field of every block should now equal the empty string, and the bloom filter field of every block should now equal the empty string.
All LOG opcodes are now deemed equivalent to a corresponding call to 0x50. The gas costs of 0x50 are equivalent to the current costs of LOG opcodes, except that gas is only charged for nonzero topics.
Rationale
This removes the receipt field from the blockchain as a separate object, instead merging its functionality, both for holding logs and keeping track of the gas used in the block, into the state, satisfying the goal of increasing purity and abstraction of the protocol. It also opens a path for deprecating the LOG opcodes, further simplifying the virtual machine.
The text was updated successfully, but these errors were encountered:
There has been no activity on this issue for two months. It will be closed in a week if no further activity occurs. If you would like to move this EIP forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.
This issue was closed due to inactivity. If you are still pursuing it, feel free to reopen it and respond to any feedback or request a review in a comment.
If
block.number >= SERENITY_HARDFORK_BLKNUM
, we do the following:0x40
at key0
(encoded as big endian z-padded to 32 bytes as usual) to -1.0x50
at that key to equal to the RLP of[blknumber]
, and set the storage of0x50
at the key2**256 - 1
to 256 zero bytes.0x50
, with the following logic: if it receives less than 128 bytes of input data, fails and throws. If it receives 128+n bytes of input data, then attach the input data as an RLP item to the list in0x50
(ie. after the first log, the RLP would be[blknumber, data1]
, and so forth), and modify the bytes at key2**256 - 1
as if you were modifying a bloom filter according to current log rules, with the first 128 bytes being the four topics.0x40
at key1
to equal the max gas limit in the block. At the end of every transaction execution, subtract the amount of gas consumed by the transaction from this value, and use this value as the store of how much gas remains usable in the block.0x50
. The gas costs of0x50
are equivalent to the current costs ofLOG
opcodes, except that gas is only charged for nonzero topics.Rationale
This removes the receipt field from the blockchain as a separate object, instead merging its functionality, both for holding logs and keeping track of the gas used in the block, into the state, satisfying the goal of increasing purity and abstraction of the protocol. It also opens a path for deprecating the LOG opcodes, further simplifying the virtual machine.
The text was updated successfully, but these errors were encountered: