- 13 Jun, 2023 3 commits
-
-
mmsqe authored
This PR adds server-side limits for JSON-RPC batch requests. Before this change, batches were limited only by processing time. The server would pick calls from the batch and answer them until the response timeout occurred, then stop processing the remaining batch items. Here, we are adding two additional limits which can be configured: - the 'item limit': batches can have at most N items - the 'response size limit': batches can contain at most X response bytes These limits are optional in package rpc. In Geth, we set a default limit of 1000 items and 25MB response size. When a batch goes over the limit, an error response is returned to the client. However, doing this correctly isn't always possible. In JSON-RPC, only method calls with a valid `id` can be responded to. Since batches may also contain non-call messages or notifications, the best effort thing we can do to report an error with the batch itself is reporting the limit violation as an error for the first method call in the batch. If a batch is too large, but contains only notifications and responses, the error will be reported with a null `id`. The RPC client was also changed so it can deal with errors resulting from too large batches. An older client connected to the server code in this PR could get stuck until the request timeout occurred when the batch is too large. **Upgrading to a version of the RPC client containing this change is strongly recommended to avoid timeout issues.** For some weird reason, when writing the original client implementation, @fjl worked off of the assumption that responses could be distributed across batches arbitrarily. So for a batch request containing requests `[A B C]`, the server could respond with `[A B C]` but also with `[A B] [C]` or even `[A] [B] [C]` and it wouldn't make a difference to the client. So in the implementation of BatchCallContext, the client waited for all requests in the batch individually. If the server didn't respond to some of the requests in the batch, the client would eventually just time out (if a context was used). With the addition of batch limits into the server, we anticipate that people will hit this kind of error way more often. To handle this properly, the client now waits for a single response batch and expects it to contain all responses to the requests. --------- Co-authored-by:
Felix Lange <fjl@twurst.com> Co-authored-by:
Martin Holst Swende <martin@swende.se>
-
hero5512 authored
rm error when marshal block to rpc type allen
-
jwasinger authored
-
- 08 Jun, 2023 1 commit
-
-
Delweng authored
-
- 07 Jun, 2023 2 commits
-
-
KAI authored
Co-authored-by:
KAI <kaili@coinsummer.io> Co-authored-by:
Felix Lange <fjl@twurst.com>
-
Stephen Guo authored
-
- 06 Jun, 2023 7 commits
-
-
Sina Mahmoodi authored
implements withdrawals in graphql as per https://github.com/ethereum/execution-apis/pull/400
-
Delweng authored
* core,eth: add api debug_getTrieFlushInterval Signed-off-by:
jsvisa <delweng@gmail.com> * eth/api_debug: comment of SetTrieFlushInterval Signed-off-by:
jsvisa <delweng@gmail.com> * Apply suggestions from code review --------- Signed-off-by:
jsvisa <delweng@gmail.com> Co-authored-by:
Martin Holst Swende <martin@swende.se>
-
Péter Szilágyi authored
* core/txpool: abstraction prep work for secondary pools (blob pool) * core/txpool: leave subpool concepts to a followup pr * les: fix tests using hard coded errors * core/txpool: use bitmaps instead of maps for tx type filtering
-
Paul Lange authored
-
Daniel Katzan authored
This fix a minor implementation issue with the newly introduced isGapped function and it is described in ticket: https://github.com/ethereum/go-ethereum/issues/27401
-
Martin Holst Swende authored
* 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>
-
rjl493456442 authored
* core/state/snapshot, core/types, eth: move account definition to type * core, eth: revert snapshot Account API change
-
- 05 Jun, 2023 4 commits
-
-
Marius van der Wijden authored
* core: crypto: implement BLOBHASH and pointEval precompile * core: crypto: fixed nitpicks, moved precompile return value * core/vm: fix review comments
-
rjl493456442 authored
* core/state: remove cached snap data if reset occurs * core/state: address comment from peter * core/state: skip revert in case data is nil
-
John Chase authored
-
Péter Szilágyi authored
* eth/downloader: drop beacon head updates if the syncer is restarting * eth/donwloader: v2 of the goroutine spike preventer
-
- 02 Jun, 2023 1 commit
-
-
Péter Szilágyi authored
-
- 01 Jun, 2023 3 commits
-
-
rjl493456442 authored
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.
-
jin authored
-
Guillaume Ballet authored
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.
-
- 31 May, 2023 7 commits
-
-
Felix Lange authored
* 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.
-
Péter Szilágyi authored
-
Péter Szilágyi authored
-
Péter Szilágyi authored
-
ucwong authored
go.mod:golang upgrade
-
rjl493456442 authored
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)
-
James Prestwich authored
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>
-
- 30 May, 2023 4 commits
-
-
Seungbae Yu authored
This is a minor optimization/refactoring of Feed. --------- Co-authored-by:
Felix Lange <fjl@twurst.com>
-
ucwong authored
-
jwasinger authored
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>
-
Guillaume Ballet authored
-
- 29 May, 2023 2 commits
-
-
Delweng authored
Signed-off-by:
jsvisa <delweng@gmail.com> Co-authored-by:
Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
-
Delweng authored
This change splits up the multiple API functions / namespaces currently defined in the eth package into different per-namespace files.
-
- 25 May, 2023 6 commits
-
-
Delweng authored
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>
-
Delweng authored
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>
-
Delweng authored
* 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>
-
Delweng authored
* 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>
-
Martin Holst Swende authored
-
Martin Holst Swende authored
-