-
Notifications
You must be signed in to change notification settings - Fork 95
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
Merge v1.12.1 pre #248
Merge v1.12.1 pre #248
Conversation
* core: replace noarg fmt.Errorf with errors.New Signed-off-by: jsvisa <delweng@gmail.com> * console: replace noarg fmt.Errorf with errors.New Signed-off-by: jsvisa <delweng@gmail.com> * core: go autoimport Signed-off-by: jsvisa <delweng@gmail.com> * core: dry Signed-off-by: jsvisa <delweng@gmail.com> --------- Signed-off-by: jsvisa <delweng@gmail.com>
* accounts: replace noarg fmt.Errorf with errors.New Signed-off-by: jsvisa <delweng@gmail.com> * accounts: go autoimport Signed-off-by: jsvisa <delweng@gmail.com> --------- Signed-off-by: jsvisa <delweng@gmail.com>
This change implements async log retrievals via feeding logs in channels, instead of returning slices. This is a first step to implement #15063. --------- Signed-off-by: jsvisa <delweng@gmail.com> Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com> Co-authored-by: Martin Holst Swende <martin@swende.se> Co-authored-by: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
RPC methods `eth_getHeaderBy*` returned a size value which was meant for internal processes. Please instead use `size` field returned by `eth_getBlockBy*` if you're interested in the RLP encoded storage size of the block. Signed-off-by: jsvisa <delweng@gmail.com>
This change splits up the multiple API functions / namespaces currently defined in the eth package into different per-namespace files.
Signed-off-by: jsvisa <delweng@gmail.com> Co-authored-by: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
eth: make StorageRangeAt take a block hash or number Co-authored-by: Martin Holst Swende <martin@swende.se> Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
This is a minor optimization/refactoring of Feed. --------- Co-authored-by: Felix Lange <fjl@twurst.com>
…mplementation (#27310) Deserialize hex keys early to shortcut on invalid input, and re-use the account storageTrie for each proof for each proof in the account, preventing repeated deep-copying of the trie. Closes #27308 -------- Co-authored-by: Martin Holst Swende <martin@swende.se> Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Drop the notions of uncles, and disables activities while syncing - Disable activities (e.g. generate pending state) while node is syncing, - Disable empty block submission (but empty block is still kept for payload building), - Drop uncle notion since (ethash is already deprecated)
go.mod:golang upgrade
* p2p/discover: remove ReadRandomNodes Even though it's public, this method is not callable by code outside of package p2p/discover because one can't get a valid instance of Table. * p2p/discover: add Table.Nodes * p2p/discover: make Table settings configurable In unit tests and externally developed cmd/devp2p test runs, it can be useful to tune the timer intervals used by Table.
Continuing with a series of PRs to make the Trie interface more generic, this PR moves the RLP encoding of storage slots inside the StateTrie and light.Trie implementations, as other types of tries don't use RLP.
This changes the journal logic to mark the state object dirty immediately when it is reset. We're mostly adding this change to appease the fuzzer. Marking it dirty immediately makes no difference in practice because accounts will always be modified by EVM right after creation.
…(#27397) * eth/downloader: drop beacon head updates if the syncer is restarting * eth/donwloader: v2 of the goroutine spike preventer
* core/state: remove cached snap data if reset occurs * core/state: address comment from peter * core/state: skip revert in case data is nil
* core: crypto: implement BLOBHASH and pointEval precompile * core: crypto: fixed nitpicks, moved precompile return value * core/vm: fix review comments
… (#27323) * core/state/snapshot, core/types, eth: move account definition to type * core, eth: revert snapshot Account API change
* cmd/evm: make evm blocktest output logs if so instructed * Apply suggestions from code review Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de> --------- Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
This fix a minor implementation issue with the newly introduced isGapped function and it is described in ticket: ethereum/go-ethereum#27401
core/state/pruner/pruner.go: Trie.NodeIterator() now also returns an error in upstream, and we moved a lot of the pruning logic into dumpRawTrieDescendents, so the changes to handle the error from NodeIterator could not be automatically applied. Resolved by applying them in dumpRawTrieDescendants.
internal/ethapi/api.go: Upstream decodeHash added a 3rd return value, and this update had a conflict with our handling of fallback to classic in BlockChainAPI.GetStorageAt (419f466). Resolve by keeping our implementation of this function, assigning to _ the new return value as done upstream.
….12.1-pre eth/backend.go: Upstream added OverrideVerkle in eth.New near a call to core.NewBlockChain, which we added a parameter to, causing automatic conflict resolution to fail. Resolve by putting OverrideVerkle before the call to NewBlockChain.
….12.1-pre core/state/pruner/pruner.go: Upstream removed the Cachedir parameter from pruner.RecoverPruning, and we had changed code related to checking the bloom filter in 43e8c2f. Keep our bloom filter logic and remove the Cachedir argument to RecoverPruning as in upstream.
Upstream in 8bbb16b, cachingDB.OpenStorageTrie was modified to take the address instead of the address hash as one of its parameters. In pruner.go dumpRawTrieDescendants, which is a function we added, there was a call to OpenStorageTrie that needed to be updated. Followed the same pattern for getting the address from the address hash in nodeIterator.step() to resolve.
….12.1-pre params/config.go: Upstream added IsDevMode to ChainConfig, text conflict with ArbitrumChainParams. Keep both.
….12.1-pre core/block_validator_test.go: Removal of some tests upstream conflicted with our change to NewBlockChain parameters, which was used in the tests. Resolved by removing the tests.
….12.1-pre internal/ethapi/api_test.go: In newTestBackend, upstream changed some arguments to a call to core.NewBlockChain, which we've added an extra parameter (ChainConfig) to. Use upstreams change, and set ChainConfig to nil.
….12.1-pre eth/tracers/internal/tracetest/calltrace_test.go: Some of the expected tracer responses in the tests were changed upstream, and so we needed to re-add the arbitrum-specific fields to the responses.
….12.1-pre core/state/statedb.go, core/vm/instructions.go: Our addition of balance tracking around Suicidied accounts had a trivial text conflict when upstream renamed Suicide to SelfDestruct. Keep the balance tracking and use the new name. core/vm/interface.go: We added GetSuicides to the StateDB interface and it conflicts with upstream name changes. Rename our function to GetSelfDestructs.
core/evm.go, core/vm/evm.go, core/state_transition.go: Conflicts in BlockContext and Message structs arbitrum fields and new Blob fields. Keep both. core/genesis.go: Conflict with upstream rearranging Genesis.ToBlock fork check to include IsCancun in addition to IsShanghai, and our addition of the ArbOSFormatVersion to IsShanghai. core/state_processor.go: Upstream changed line before to applyTransaction which we have added a resultFilter parameter to. Keep updated line from upstream and also the resultFilter. core/state_processor_test.go: Fixed some calls to core.NewBlockChain modified upstream that needed to include our ChainConfig param. Regenerated tests/gen_sttransaction.go and core/gen_genesis.go using the instructions in their respective files, there were no changes, so the automatic merge of these files was successful.
les/peer.go: We had used core.DefaultTriesInMemory instead of TriesInMemory in 6f5ee42 to fix a build issue, and upstream removed the surrounding if block checking UltraLightOnlyAnnounce. Allow the if to be removed and keep using core.DefaultTriesInMemory.
core/state/statedb.go: In our commit adding deterministic statedb (b185d0b) we added some logic in StateDB.IntermediateRoot behind a check for deterministic mode, and moved some existing logic into the else clause. Upstream, stateObject.updateRoot had its one parameter removed, so to resolve this we used our code from IntermediateRoot, with the updateRoot arguments removed.
arbitrum/recordingdb.go: In 88f3d61 upstream added a block number parameter to StateDB.Commit, so in this change we plumb the block number through to RecordingDatabase.addStateVerify.
….12.1-pre miner/worker.go: Minor conflict around upstream changing worker.CommitTransaction's call to core.ApplyTransaction's tx argument to tx.Tx, and our change adding an extra return value to ApplyTransaction. Combine both changes.
….12.1-pre core/evm.go, core/vm/evm.go: Upstream changed DataGas to BlobGas, some trivial conflicts with Arbitrum added struct fields.
graphql/graphql.go: Minor conflict in imports.
We require contributors to sign our Contributor License Agreement. In order for us to review and merge your code, please sign the linked documents below to get yourself added. https://na3.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=b15c81cc-b5ea-42a6-9107-3992526f2898&env=na3&acct=6e152afc-6284-44af-a4c1-d8ef291db402&v=2 |
node/defaults.go, node/node.go: Resolve conflict around addition of BatchRequestLimit and BatchResponseMaxSize parameters upstream with our addition of the AuthModules and AuthOrigins node configuration (keep both).
We require contributors to sign our Contributor License Agreement. In order for us to review and merge your code, please sign the linked documents below to get yourself added. https://na3.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=b15c81cc-b5ea-42a6-9107-3992526f2898&env=na3&acct=6e152afc-6284-44af-a4c1-d8ef291db402&v=2 |
@Tristan-Wilson any timeline for upstream to make the release? |
@taariq Looks like upstream has made several new releases that I'll have to catch up to when I get a chance. In any case, I looked at your ticket VolumeFi/paloma#754 and if you're using Offchain's go-ethereum fork because you're using nitro it's not vulnerable to the issue since we don't use the p2p subsystem. |
Closing in favor of #258 |
Draft PR for now until upstream actually makes the release.