Commit graph

16026 commits

Author SHA1 Message Date
marcello33
d9a82cd3cd dev: fix: errorcheck lint issues 2023-06-15 13:18:25 +02:00
marcello33
218917076c dev: fix: more wsl lint issues 2023-06-15 13:06:10 +02:00
marcello33
3af5e435c7 dev: fix: some wsl lint issues 2023-06-15 12:27:20 +02:00
marcello33
2c87219c80 dev: fix: bodyclose lint issues 2023-06-15 10:11:23 +02:00
Sina Mahmoodi
7823ff6d06
eth/tracers: refactor exporting js buffer (#27472)
We had to do this workaround because it wasn't possible to export typed arrays from
JS to []byte. This was added in dop251/goja@2352993, so we can use the better way now.
2023-06-14 19:07:24 +02:00
marcello33
79ff0c17e1 dev: fix: error related lint issues 2023-06-14 17:21:52 +02:00
marcello33
6850ca4d2d dev: fix: govet lint errors 2023-06-14 17:08:14 +02:00
marcello33
f5bfef08a2 dev: chg: comment position fix 2023-06-14 17:06:34 +02:00
marcello33
29620ff726 dev: fix: ineffassign lint errors 2023-06-14 17:05:51 +02:00
marcello33
4307e68288 dev: fix: http related and nilnil lint errors 2023-06-14 16:58:04 +02:00
marcello33
631efbe675 dev: fix: thelper and tparallel lint 2023-06-14 16:29:26 +02:00
Sanghee Choi
acc2a2ac61
node: remove unused error return from Attach (#27450)
node: Delete the unused error from return parameters of Node.Attach() func
2023-06-14 08:24:47 -04:00
zhiqiangxu
6f08c2f3f1
rpc: add method to test for subscription support (#25942)
This adds two ways to check for subscription support. First, one can now check
whether the transport method (HTTP/WS/etc.) is capable of subscriptions using
the new Client.SupportsSubscriptions method.

Second, the error returned by Subscribe can now reliably be tested using this
pattern:
    
    sub, err := client.Subscribe(...)
    if errors.Is(err, rpc.ErrNotificationsUnsupported) {
        // no subscription support
    }

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2023-06-14 14:04:41 +02:00
marcello33
f1e7f6db28 dev: fix: build ci.go 2023-06-14 12:55:36 +02:00
marcello33
ab28b8ac5c dev: fix: NewParallelBlockChain using Genesis 2023-06-14 11:19:42 +02:00
marcello33
df106e64df dev: fix: CreateConsensusEngine for new ethereum objects 2023-06-13 15:11:08 +02:00
Freeman Jiang
8bbaf882a6
core/types: add "chainID" field to legacy tx JSON encoding (#27452)
Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>
2023-06-13 14:46:45 +02:00
mmsqe
f3314bb6df
rpc: add limit for batch request items and response size (#26681)
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>
2023-06-13 13:38:58 +02:00
marcello33
dda0d1163f dev: chg: solve some TODOs 2023-06-13 13:11:25 +02:00
marcello33
a85addd30b dev: chg: apply changes to NewParallelBlockChain 2023-06-13 13:02:35 +02:00
marcello33
b5571e97fb dev: chg: further fixes merging develop into upstream-merge 2023-06-13 13:01:18 +02:00
marcello33
8562597c6c dev: chg: regression changes after develop is merged into upstream-merge 2023-06-13 12:50:48 +02:00
marcello33
1c106dc251 dev: add: merge develop in upstream-merge 2023-06-13 12:37:20 +02:00
marcello33
00573af989 dev: chg: gomock re-generate mocks for backend interface 2023-06-13 10:06:07 +02:00
marcello33
81c3f1e035 dev: chg: txpool_test regression changes after merge 2023-06-13 10:01:12 +02:00
hero5512
5ac4da3653
internal/ethapi: remove error return on RPCMarshalBlock (#27449)
rm error when marshal block to rpc type allen
2023-06-13 03:02:11 -04:00
jwasinger
174d267f48
miner: log number of withdrawals in block upon payload update (#27457) 2023-06-13 02:55:05 -04:00
Matthieu Vachon
891ec7fef6
Use big.Int#Set instead of big.Int#SetBytes when possible (#896)
There is no reason to make the bytes transformation and back to big int to assign a big int to another one.

The `Set` method should be used instead.
2023-06-13 12:02:57 +05:30
marcello33
d3f6da90e1 dev: chg: more regression changes for bor after merge 2023-06-12 19:35:40 +02:00
Pratik Patil
0f81c960c5
updated version to 0.4.0-beta-5 2023-06-12 21:48:33 +05:30
Pratik Patil
eda1deea13
updated indore block for mumbai (#895) 2023-06-12 21:46:17 +05:30
marcello33
162af07d38 dev: chg: regression changes for bor after merge 2023-06-12 16:46:03 +02:00
marcello33
a043ec6d62 dev: add: merge upstream 2023-06-09 14:34:30 +02:00
Pratik Patil
3462d34685
updated version to 0.4.0-beta-4 2023-06-09 08:59:07 +05:30
Will Button
81b06d6ece
DEVOPS-829 format Timer as summary/histogram type (#893) 2023-06-09 08:53:04 +05:30
Jerry
114c02bf46
Update version to v0.4.0-beta3 2023-06-08 14:10:40 -07:00
Jerry
39ed6e47a4
Explicitly disable MVHashMap in mining
Currently, we determine if MVHashMap should be enabled by checking the block number with parallelUniverse flag in genesis, which has a value of 0. Some headers' block number is 0, so MVHashMap was enabled, which led to a few errors. Disable this flag explicitly until we figure out a proper hardfork solution.
2023-06-08 14:05:33 -07:00
Delweng
281e8cd5ab
eth/filters: reuse handleLogs method for removed logs (#27438) 2023-06-08 11:40:22 +02:00
Pratik Patil
745c32e637
updated version to 0.4.0-beta-2 2023-06-08 11:23:30 +05:30
Pratik Patil
477e93d2fa
added debug logs for state sync 2023-06-08 11:22:35 +05:30
Pratik Patil
d25732c949
Revert "miner :: add : check to run worker commitWork (#828)"
This reverts commit 6dee9b5f40.
2023-06-08 11:16:55 +05:30
Pratik Patil
73821b46c9
updated version to 0.4.0-beta 2023-06-07 20:54:14 +05:30
Pratik Patil
4d23e6de33
added IndoreBlock for Mumbai chain (#892) 2023-06-07 20:17:26 +05:30
KAI
5c51ef8527
accounts/keystore: handle error for invalid key in DecryptKey (#27432)
Co-authored-by: KAI <kaili@coinsummer.io>
Co-authored-by: Felix Lange <fjl@twurst.com>
2023-06-07 15:10:42 +02:00
Stephen Guo
99eb0b52aa
rlp: use identical receiver names for encBuffer methods (#27430) 2023-06-07 12:40:06 +02:00
Jerry
f96c668baf
Disable reverted tx optimization in block-stm validation (#891)
A reverted transaction, X, can incorrectly write to a slot, which might be read by another transaction, Y. If we skip checking states written by X, then Y might end up with reading the wrong value and we won't be able to detect this error.
2023-06-06 21:36:36 -07:00
Sina Mahmoodi
fbe432fa15
graphql: implement withdrawals (EIP-4895) (#27072)
implements withdrawals in graphql as per https://github.com/ethereum/execution-apis/pull/400
2023-06-06 12:33:25 -04:00
Pratik Patil
47f8e8682a
Implement PIP-12, Time Based StateSync Confirmations Delay (#864)
* updated Indore HF related changes by adding stateSyncConfirmationDelay

* converted StateSyncConfirmationDelay to map[string]uint64 and cleanup

* calculate last state ID from incoming state object with eth call (#883)

* removed IndoreBlock from configs

* fix

* remove code duplication and refactor

---------

Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
2023-06-06 20:40:46 +05:30
Delweng
0783cb7d91
eth,core: add api debug_getTrieFlushInterval (#27303)
* 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>
2023-06-06 08:41:44 -04:00
Péter Szilágyi
950d5643b1
core/txpool: make transaction validation reusable across packages (pools) (#27429)
* 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
2023-06-06 12:53:29 +03:00