Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core/types: remove LogForStorage type #23173

Merged
merged 3 commits into from
Jul 7, 2021
Merged

Conversation

s1na
Copy link
Contributor

@s1na s1na commented Jul 7, 2021

Martin noticed that the encoding of Log and LogForStorage is exactly the same now. After tracking it down it seems like #17106 changed the storage schema of logs to be simply the encoding of [Address, Topics, Data], which is equivalent to the encoding of Log (or rlpLog). Support for the legacy format was dropped in #22852 and if I'm not wrong there's no reason anymore to have these two equivalent types.

Switching to this branch on a running node didn't seem to create a problem, but I'm not sure what to look for.

Note: this change includes an API change in core/types

s1na and others added 2 commits July 7, 2021 11:03
Since the RLP encoding simply contains the first three fields
of Log, we can avoid creating a temporary struct for encoding.
Copy link
Contributor

@fjl fjl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice!

@fjl fjl merged commit 7522642 into ethereum:master Jul 7, 2021
@fjl fjl added this to the 1.10.5 milestone Jul 7, 2021
@s1na s1na deleted the rm-storage-log branch July 8, 2021 07:54
sidhujag pushed a commit to sidhujag/go-ethereum that referenced this pull request Jul 10, 2021
The encoding of Log and LogForStorage is exactly the same
now. After tracking it down it seems like ethereum#17106 changed the
storage schema of logs to be the same as the consensus
encoding.

Support for the legacy format was dropped in ethereum#22852 and if
I'm not wrong there's no reason anymore to have these two
equivalent types.

Since the RLP encoding simply contains the first three fields
of Log, we can also avoid creating a temporary struct for
encoding/decoding, and use the rlp:"-" tag in Log instead.

Note: this is an API change in core/types. We decided it's OK
to make this change because LogForStorage is an implementation
detail of go-ethereum and the type has zero uses outside of
package core/types.

Co-authored-by: Felix Lange <fjl@twurst.com>
rjl493456442 added a commit to rjl493456442/go-ethereum that referenced this pull request Jul 22, 2021
fjl pushed a commit that referenced this pull request Jul 22, 2021
* Revert "core/types: go generate (#23177)"

This reverts commit 00b922f.

* Revert "core/types: remove LogForStorage type (#23173)"

This reverts commit 7522642.

* Revert "core/types: remove support for legacy receipt/log storage encoding (#22852)"

This reverts commit 643fd0e.
sidhujag pushed a commit to sidhujag/go-ethereum that referenced this pull request Jul 28, 2021
* Revert "core/types: go generate (ethereum#23177)"

This reverts commit 00b922f.

* Revert "core/types: remove LogForStorage type (ethereum#23173)"

This reverts commit 7522642.

* Revert "core/types: remove support for legacy receipt/log storage encoding (ethereum#22852)"

This reverts commit 643fd0e.
atif-konasl pushed a commit to frozeman/pandora-execution-engine that referenced this pull request Oct 15, 2021
The encoding of Log and LogForStorage is exactly the same
now. After tracking it down it seems like ethereum#17106 changed the
storage schema of logs to be the same as the consensus
encoding.

Support for the legacy format was dropped in ethereum#22852 and if
I'm not wrong there's no reason anymore to have these two
equivalent types.

Since the RLP encoding simply contains the first three fields
of Log, we can also avoid creating a temporary struct for
encoding/decoding, and use the rlp:"-" tag in Log instead.

Note: this is an API change in core/types. We decided it's OK
to make this change because LogForStorage is an implementation
detail of go-ethereum and the type has zero uses outside of
package core/types.

Co-authored-by: Felix Lange <fjl@twurst.com>
atif-konasl pushed a commit to frozeman/pandora-execution-engine that referenced this pull request Oct 15, 2021
* Revert "core/types: go generate (ethereum#23177)"

This reverts commit 00b922f.

* Revert "core/types: remove LogForStorage type (ethereum#23173)"

This reverts commit 7522642.

* Revert "core/types: remove support for legacy receipt/log storage encoding (ethereum#22852)"

This reverts commit 643fd0e.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants