go-ethereum/les
Roberto Bayardo 67ac5f0ae7
core, core/types: plain Message struct (#25977)
Here, the core.Message interface turns into a plain struct and
types.Message gets removed.

This is a breaking change to packages core and core/types. While we do
not promise API stability for package core, we do for core/types. An
exception can be made for types.Message, since it doesn't have any
purpose apart from invoking the state transition in package core.
types.Message was also marked deprecated by the same commit it
got added in, 4dca5d4db7 (November 2016).

The core.Message interface was added in December 2014, in commit
db494170dc, for the purpose of 'testing' state transitions. It's the
same change that made transaction struct fields private. Before that,
the state transition used *types.Transaction directly.

Over time, multiple implementations of the interface accrued across
different packages, since constructing a Message is required whenever
one wants to invoke the state transition. These implementations all
looked very similar, a struct with private fields exposing the fields
as accessor methods.

By changing Message into a struct with public fields we can remove all
these useless interface implementations. It will also hopefully
simplify future changes to the type with less updates to apply across
all of go-ethereum when a field is added to Message.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2023-03-09 14:19:12 +01:00
..
catalyst beacon/engine: move core/beacon to beacon/engine (#26616) 2023-02-06 10:37:58 -05:00
checkpointoracle all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
downloader common/prque: generic priority queue (#26290) 2023-02-09 13:03:54 +02:00
fetcher all: use unified emptyRootHash and emptyCodeHash (#26718) 2023-02-21 06:12:27 -05:00
flowcontrol common/prque: generic priority queue (#26290) 2023-02-09 13:03:54 +02:00
utils all: remove deprecated uses of math.rand (#26710) 2023-02-16 14:36:58 -05:00
vflux all: remove deprecated uses of math.rand (#26710) 2023-02-16 14:36:58 -05:00
api.go all: fix docstrings 2022-10-04 09:18:02 +02:00
api_backend.go core, core/types: plain Message struct (#25977) 2023-03-09 14:19:12 +01:00
api_test.go all: remove deprecated uses of math.rand (#26710) 2023-02-16 14:36:58 -05:00
benchmark.go all: remove deprecated uses of math.rand (#26710) 2023-02-16 14:36:58 -05:00
bloombits.go les: handler separation (#19639) 2019-08-21 11:29:34 +02:00
client.go cmd, core, eth, els, params: disallow setheads below genesis, tweaks 2023-01-06 15:29:58 +02:00
client_handler.go all: implement forkid changes for shanghai 2023-01-03 12:57:06 +02:00
commons.go all: remove support for Ropsten (#26644) 2023-02-09 10:03:00 +02:00
costtracker.go eth: move eth.Config to a common package (#22205) 2021-02-05 13:51:15 +01:00
distributor.go all: use AbsTime.Add instead of conversion (#25417) 2022-07-29 18:23:30 +02:00
distributor_test.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00
enr_entry.go cmd/devp2p: skip ENR field tails properly in nodeset filter (#22565) 2021-03-24 12:32:39 +01:00
fetcher.go les/fetcher : fix requestTimer leak (#26514) 2023-01-18 03:46:32 -05:00
fetcher_test.go all: fix spelling mistakes (#25961) 2022-10-11 09:37:00 +02:00
handler_test.go all: change chain head markers from block to header (#26777) 2023-03-02 08:29:15 +02:00
metrics.go les: polish code (#22625) 2021-04-27 09:44:59 +02:00
odr.go all: refactor txpool into it's own package in prep for 4844 2022-10-24 16:35:53 +03:00
odr_requests.go all: fix docstrings 2022-10-04 09:18:02 +02:00
odr_test.go core, core/types: plain Message struct (#25977) 2023-03-09 14:19:12 +01:00
peer.go all: more linters (#24783) 2022-06-13 16:24:45 +02:00
peer_test.go all: implement forkid changes for shanghai 2023-01-03 12:57:06 +02:00
protocol.go all: fix docstrings 2022-10-04 09:18:02 +02:00
pruner.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
pruner_test.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
request_test.go cmd, core, eth, les, light: track deleted nodes (#25757) 2022-09-27 10:01:02 +02:00
retrieve.go les: generate random nums directly, not via strange conversions 2021-05-21 12:36:04 +03:00
server.go all: refactor txpool into it's own package in prep for 4844 2022-10-24 16:35:53 +03:00
server_handler.go eth, les: polish forkid a bit, fix races and transition validation 2023-01-06 15:29:57 +02:00
server_requests.go all: use unified emptyRootHash and emptyCodeHash (#26718) 2023-02-21 06:12:27 -05:00
servingqueue.go common/prque: generic priority queue (#26290) 2023-02-09 13:03:54 +02:00
state_accessor.go core, core/types: plain Message struct (#25977) 2023-03-09 14:19:12 +01:00
sync.go les: duplicate downloader and fetcher to allow progressive refactoring 2021-09-10 11:11:59 +03:00
sync_test.go les: fix data races in tests (#23457) 2021-08-25 11:56:25 +02:00
test_helper.go all: implement forkid changes for shanghai 2023-01-03 12:57:06 +02:00
txrelay.go les: generate random nums directly, not via strange conversions 2021-05-21 12:36:04 +03:00
ulc.go cmd, eth, les: fix up ultra light config integration 2019-07-09 20:34:42 +03:00
ulc_test.go all: more linters (#24783) 2022-06-13 16:24:45 +02:00