Commit Graph

15160 Commits

Author SHA1 Message Date
Péter Szilágyi
d40a255e97
all: move main transaction pool into a subpool (#27463)
* all: move main transaction pool into a subpool

* go.mod: remove superfluous updates

* core/txpool: review fixes, handle txs rejected by all subpools

* core/txpool: typos
2023-06-16 15:29:40 +03:00
John Chase
c375936e81
rlp: fix typos (#27484)
fix typos

Co-authored-by: john <yejiarui@123.com>
2023-06-16 15:21:43 +03:00
lx
cf64a044af
Merge pull request #1696 from bnb-chain/develop
release: draft release v1.2.6
v1.2.6
2023-06-16 17:12:04 +08:00
dylanhuang
acd2f5f249
p2p: fix length calculation for headPeers method (#1708) 2023-06-16 13:32:58 +08:00
lx
9841ba5bdc
Merge branch 'master' into develop 2023-06-16 06:29:14 +08:00
larry.lx
55bb1086ca release: prepare for release v1.2.6 2023-06-16 06:07:21 +08:00
larry.lx
019aedc17e upgrade: block height of Hertz(London&Berlin) on testnet 2023-06-16 06:07:21 +08:00
larry.lx
1ace44b9ca release: prepare for release v1.2.5 2023-06-16 06:07:21 +08:00
Mister-EA
cd44fc40ff
Merge pull request #1704 from bnb-chain/default-config-reflection
core: use reflection to set default block values
2023-06-15 17:26:35 +02:00
cui fliter
604da5c84b
cmd/evm: fix typos in docs (#27478)
fix some typos

Signed-off-by: cui fliter <imcusg@gmail.com>
2023-06-15 08:55:00 -04:00
Martin Holst Swende
9cf9fae668
core/types: add support for BlobTxType receipts (#27470)
Co-authored-by: Felix Lange <fjl@twurst.com>
2023-06-15 14:18:54 +02:00
aaronbuchwald
93ecd77d77
core: remove unnecessary log copy (#27475)
The logs in this function are pulled straight from disk in rawdb.ReadRawReceipts and 
also modified in receipts.DeriveFields, so removing the copy should be fine.
2023-06-15 13:52:06 +02:00
NathanBSC
486e019880
core/statedb: always clear out access list when setting a new one (#1702)
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2023-06-15 17:09:27 +08:00
Mister-EA
73397217e2 core: use reflection to set default block values 2023-06-15 10:31:42 +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
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
Matus Kysel
e31270aa38
Merge pull request #1694 from bnb-chain/improve-readme
readme: add minimal compiler version
2023-06-14 10:42:10 +02:00
Mister-EA
23ba7b0893
Merge pull request #1695 from sunny2022da/2718-test-dev
test: Add EIP-2718 unit test for parlia ChainConfig
2023-06-14 10:10:59 +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
Sunny
2cd0387cbe test: Add EIP-2718 unit test for parlia ChainConfig 2023-06-13 18:35:32 +08:00
Matus Kysel
4560dc2f66
readme: add minimal compiler version 2023-06-13 10:25:07 +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
lx
3dca640303
config: use default fork config if not specified in config.toml (#1654) 2023-06-13 14:14:45 +08:00
Mister-EA
15c30b73f8
Merge pull request #1676 from bnb-chain/eip3529-tests-parlia
EIP-3529 (BEP-212) Unit tests for Parlia Config
2023-06-12 14:11:24 +02:00
Mister-EA
4a467ecc5f
Merge pull request #1686 from bnb-chain/refactor-eip3529-tests
eip3529tests: refactor tests
2023-06-12 11:54:13 +02:00
NathanBSC
38002f8a56
fix: set the signer of parlia to the most permissive one (#1682) 2023-06-12 13:31:18 +08:00
Mister-EA
b1fbb294ea eip3529tests: refactor tests 2023-06-09 12:27:31 +02:00
Delweng
281e8cd5ab
eth/filters: reuse handleLogs method for removed logs (#27438) 2023-06-08 11:40:22 +02:00
NathanBSC
ff32314de0
fix: not double GasLimit of block upon London upgrade (#1681) 2023-06-08 17:32:07 +08:00
lx
53fef9e830
Merge pull request #1678 from brilliant-lx/leveldb_downgrade_master
release: draft release v1.2.5
v1.2.5
2023-06-08 17:18:22 +08:00
yutianwu
78ad049641
fix: check integer overflow when decode crosschain payload (#1679) 2023-06-08 14:40:10 +08:00
NathanBSC
cf9efe5761
fix: voting can only be enabled when mining (#1671) 2023-06-08 14:37:24 +08:00
larry.lx
dd5b69b863 release: prepare for release v1.2.5 2023-06-08 13:57:56 +08:00
lx
bc543bae67 goleveldb: downgrade the version for performance (#1675)
this PR: https://github.com/bnb-chain/bsc/pull/936 upgraded the goleveldb
indirectly, since it has dependency of prysm, which also depends on goleveldb indrectly.

But the new version has some performance issue on Databse Close, see:
https://github.com/syndtr/goleveldb/issues/434

So we need to rollback to the previous verison
2023-06-08 13:53:11 +08:00
lx
d6feb729c5
goleveldb: downgrade the version for performance (#1675)
this PR: https://github.com/bnb-chain/bsc/pull/936 upgraded the goleveldb
indirectly, since it has dependency of prysm, which also depends on goleveldb indrectly.

But the new version has some performance issue on Databse Close, see:
https://github.com/syndtr/goleveldb/issues/434

So we need to rollback to the previous verison
2023-06-08 11:58:15 +08:00
Mister-EA
a97f713286 parlia_tests: update comment 2023-06-07 16:11:30 +02:00
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
Mister-EA
4afd224350 core: add eip3529 tests for parlia config 2023-06-07 14:16:01 +02:00
Mister-EA
f316b1d086 params: introduce ParliaTestChainConfig 2023-06-07 14:10:00 +02:00
Stephen Guo
99eb0b52aa
rlp: use identical receiver names for encBuffer methods (#27430) 2023-06-07 12:40:06 +02: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
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
Paul Lange
4cf708d30b
les: remove unused var AdvertiseProtocolVersions (#27405) 2023-06-06 04:34:22 -04:00
Daniel Katzan
b8ee2877c5
core/txpool: fix minor flaw in isGapped check (#27404)
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
2023-06-06 04:29:41 -04:00
Martin Holst Swende
8eb0c2de76
cmd/evm: make evm blocktest output logs if so instructed (#27396)
* 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>
2023-06-06 04:27:40 -04:00
rjl493456442
0e5d2c7c53
core/state/snapshot, core/types, eth: move account definition to type (#27323)
* core/state/snapshot, core/types, eth: move account definition to type

* core, eth: revert snapshot Account API change
2023-06-06 11:17:39 +03:00