ledgerwatch
2ce98f8337
Move validator set snapshot computation to bor_heimdall stage ( #8202 )
...
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2023-10-20 18:31:00 +01:00
Giulio rebuffo
863693a6a0
remove sentinel port from README ( #8539 )
...
By default sentinel is embedded and direct
2023-10-20 16:00:34 +02:00
Andrew Ashikhmin
106e880442
Update execution spec tests to v1.0.6 ( #8536 )
...
[v1.0.6](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.6 )
Cancun Devnet 10
2023-10-20 11:13:29 +02:00
Alex Sharov
f696c37183
etl: more tests ( #8534 )
2023-10-20 13:54:46 +07:00
Alex Sharov
783b2f39d6
downloader: fix e2 bucket name ( #8521 )
2023-10-20 13:54:38 +07:00
Giulio rebuffo
ec2207fc7f
Gnosis Snapshot updated ( #8532 )
2023-10-19 23:49:14 +02:00
Andrew Ashikhmin
f492d88178
Switch to official KZG ceremony trusted setup (EIP-4844) ( #8531 )
...
See https://github.com/ethereum/consensus-specs/pull/3521 &
https://github.com/crate-crypto/go-kzg-4844/pull/61 . This is required
for
[dencun-devnet-10](https://notes.ethereum.org/@ethpandaops/dencun-devnet-10 ).
2023-10-19 18:33:05 +02:00
Andrew Ashikhmin
5dd311c541
eth/68: always announce tx sizes without envelopes ( #8530 )
...
It turns out that Marius got it the other way round in Issue #8456 . See
https://discord.com/channels/595666850260713488/1162151688816308245
2023-10-19 14:37:55 +02:00
Willian Mitsuda
82c54aa1af
Remove duplicate code in ots API ( #8529 )
2023-10-19 07:11:22 -03:00
Andrew Ashikhmin
0f1466c940
Fix rlp.EncodeString for length 56 ( #8528 )
...
Should fix the [following
issue](https://discord.com/channels/687972960811745322/738982866670714901/1164291343745568858 ):
```
git_branch=devel git_tag=v2.52.0-50-g82f1e9f34-dirty git_commit=82f1e9f342ae46d38f41b0561f879f192cdd8fa0
[WARN] [10-18|19:40:19.892] newPayload failed err="rlp: element is larger than containing list"
[WARN] [10-18|19:40:19.892] fail to process block reason="rlp: element is larger than containing list" slot=7569470
```
2023-10-19 11:45:19 +02:00
Alex Sharov
12d33d516c
downloader: supress some "EOF" logs ( #8519 )
2023-10-19 11:29:35 +07:00
Alex Sharov
f998e18219
downloader: default webseed token for e2 ( #8512 )
2023-10-19 08:17:49 +07:00
Giulio rebuffo
684ca4c030
keep caplin data ( #8518 )
2023-10-19 00:53:03 +02:00
Giulio rebuffo
343479988c
Caplin <-> MDBX ( #8470 )
2023-10-18 23:10:53 +02:00
Giulio rebuffo
82f1e9f342
Skip blockhashes stage ( #8497 )
2023-10-18 16:39:11 +02:00
Alex Sharov
6edaee1853
downloader: less webseed logs ( #8510 )
2023-10-18 15:27:41 +07:00
Andrew Ashikhmin
f26be2c4c3
Simplify RLP size calculations ( #8506 )
...
Use `ListPrefixLen` & `StringLen` from erigon-lib more
2023-10-18 09:28:11 +02:00
Alex Sharov
33d5399436
downloader: support token ( #8507 )
2023-10-18 14:24:09 +07:00
Alex Sharov
3ac9f493b6
move chainname and snapcfg packages to erigon-lib ( #8508 )
2023-10-18 13:37:39 +07:00
canepat
9568567eda
Add RPC daemon using Silkworm ( #8486 )
...
This introduces _experimental_ RPC daemon run by embedded Silkworm
library. Same notes as in PR #8353 apply here plus the following ones:
- activated if `http` command-line option is enabled and `silkworm.path`
option is present, nothing more is required (i.e. currently, both block
execution and RPC daemon run by Silkworm when specifying
`silkworm.path`, just to keep things as simple as possible)
- only Execution API endpoints are implemented by Silkworm RPCDaemon,
whilst Engine API endpoints are still served by Erigon RPCDaemon
- some features are still missing, in particular:
- state change notification handling
- custom JSON RPC settings (i.e. Erigon RPC settings are not passed to
Silkworm yet)
2023-10-18 06:37:16 +07:00
canepat
19c428dd7d
Use Erigon execution for memory mutations ( #8503 )
2023-10-17 22:52:52 +02:00
Andrew Ashikhmin
def6067f30
eth/68: always announce tx sizes with envelopes ( #8502 )
...
N.B. [eth/68](https://eips.ethereum.org/EIPS/eip-5793 ) is implemented by
`EncodeAnnouncements` in `erigon-lib/rlp/encodel.go`
2023-10-17 16:52:29 +02:00
tk
8ddfbfd88c
Spell Check: Fix typos ( #8480 )
...
Spell Check:
Concensus --> Consensus
prodiced --> produced
configuraion --> configuration
cabable --> capable
structue --> structure
eample --> example
nework --> network
configration --> configuration
regestering --> registering
registratio --> registration
excuted --> executed
Simlarly --> Similarly
dictactes --> dictates
respresented --> represented
lengthes --> lengths
2023-10-17 11:21:27 +07:00
lupin012
93be5ecddc
rpctest: Add rpctest get block by number ( #8476 )
2023-10-17 10:40:36 +07:00
battlmonstr
e04dee12fd
p2p: bad p2p server port in the log ( #8493 )
...
Problem:
"Started P2P networking" log message contains port zero on startup,
e.g.: 127.0.0.1:0 because of the outdated localnodeAddrCache.
Solution:
Call updateLocalNodeStaticAddrCache after updating the port.
2023-10-17 10:40:02 +07:00
Alex Sharov
987d35a8b5
GOMEMLIMIT: support ( #8498 )
...
related to https://github.com/ledgerwatch/erigon/issues/8485 and
https://github.com/ledgerwatch/erigon/issues/6646
2023-10-17 10:38:49 +07:00
battlmonstr
911da43128
go.mod: minimal go version 1.20 ( #8495 )
...
Because 1.19 is not working anymore.
2023-10-17 06:52:28 +07:00
Giulio rebuffo
9e42b705ce
Caplin: under the hood block downloading ( #8459 )
2023-10-16 15:35:26 +02:00
Alex Sharov
f265bd8bfc
add "integration stage_headers --integrity.slow" to check gaps in headers or canonical markers ( #8489 )
2023-10-16 19:52:04 +07:00
Alex Sharov
c4b1930bad
mdbx: add lable to commit error ( #8492 )
2023-10-16 19:51:49 +07:00
Alex Sharov
21ebaab208
bor initFrozenSnapshot: parallel erecover ( #8488 )
...
on 16-core mumbai's initFrozenSnapshot took 10min (to 38M block)
2023-10-16 13:05:10 +01:00
Alex Sharov
ab04de6d9f
mdbx: don't mix modes ( #8490 )
...
db must not use "Durable" and "SyncPeriod" in same time
txpool and downloader must be: Durable
nodedb: SafeNoSync+SyncPeriod
because txpool and downloader already can call sync when they need
(txpool after regular flush, downloader after piece download+validation
completion).
2023-10-16 16:21:44 +07:00
Giulio rebuffo
2e9436a7d0
Verbose --internalcl for whenever we fail at startup ( #8487 )
...
Just does not make it die silently
2023-10-16 11:09:43 +02:00
Giulio rebuffo
a7e63da066
CI Job for Consensus specs ( #8483 )
...
Consensus Specification Tests takes less than 8 minutes so I think they
can be in a PR's own CI for whenever it is ready. for reference it is
less than make test
2023-10-15 19:47:53 +02:00
Giulio rebuffo
bf2ef04c46
Optimized the checkpoint state layout ( #8482 )
2023-10-15 18:05:13 +02:00
Andrew Ashikhmin
42641bc6af
Fix Sepolia snapshot hashes ( #8481 )
...
Pick up https://github.com/ledgerwatch/erigon-snapshot/pull/41
2023-10-15 11:22:56 +02:00
Alex Sharov
3b6f38025f
up x/sync lib ( #8479 )
2023-10-15 10:10:36 +07:00
Alex Sharov
0a2cc303f3
db: don't create tables in accede mode ( #8478 )
2023-10-15 09:34:24 +07:00
Giulio rebuffo
1da6dc25f3
Caplin: Resetting cache head hash when new slot is avaiable ( #8477 )
2023-10-14 20:53:16 +02:00
Giulio rebuffo
54ce971084
Added separate Withdrawal data type to Caplin ( #8474 )
...
Reason: JSON formatting
2023-10-14 17:59:52 +02:00
Alex Sharov
9db82fee5b
downloader: don't loose debug logs ( #8473 )
2023-10-14 17:11:39 +07:00
Alex Sharov
71ee11af90
mumbai snapshots - 41m ( #8461 )
2023-10-14 08:40:59 +07:00
Andrew Ashikhmin
f1477e5b2c
Small extra check of ReceiptHash ( #8469 )
...
Small addition to PR #8467
2023-10-14 08:40:45 +07:00
battlmonstr
757a91c44d
sync: fix a memory leak when header verification fails ( #8431 )
...
If HeaderDownload.VerifyHeader always returns false, the memory usage
grows at a fast pace
due to Link objects (containing headers) not deallocated even after the
link queue pruning.
2023-10-14 08:39:43 +07:00
Léo Vincent
c1e99219d0
fix: newly mined blocks now include transactions and check new blocks with empty receipt hash ( #8467 )
...
## Description
This PR is a follow-up of #8442 .
1. The previous PR resolved the issue where newly mined blocks had their
receipt hash set to an empty root hash. But I think it introduced an
issue where the new blocks include no transactions. So this PR addresses
that.
2. On top of that, this new PR introduces a validation step for the
receipt hash when peers receive new blocks at the p2p layer. If the
receipt hash is set to the empty root hash, but the block contains
transactions, it will now raise an error.
## Test
- When running a local erigon devnet with the new receipt hash check and
before #8442 fix (with a few more logs).
**=> error message: `newBlock66: block has empty receipt hash:
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421 but it
includes 2 transactions`**
```sh
Received new block request: &{Block:0xc000bd0230 TD:+7891}
Block header: &{ParentHash:0x998f5be682d09b9d57dbf9c42032c23754bc9569d39670a1d7479f74946df0a9 UncleHash:0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347 Coinbase:0x0000000000000000000000000000000000000000 Root:0x422bd23663d6d52b94cd537491eaa2b250b03e5e252b9c1dfabee5dc12673628 TxHash:0xe4ec65ce3aba6347c9e7139571cd23ec5e42b3c1952706a3d965a322699b9b5e ReceiptHash:0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421 Bloom:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] Difficulty:+2 Number:+3945 GasLimit:30000000 GasUsed:70178 Time:1697192495 Extra:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 254 60 127 243 72 143 204 98 97 12 136 59 50 115 115 204 239 143 157 234 71 55 113 77 66 2 227 74 65 226 190 44 226 215 32 177 90 161 172 41 69 31 229 166 221 185 14 128 47 169 132 130 249 179 129 153 159 134 124 162 234 81 187 1] MixDigest:0x0000000000000000000000000000000000000000000000000000000000000000 Nonce:[0 0 0 0 0 0 0 0] AuRaStep:0 AuRaSeal:[] BaseFee:+8 WithdrawalsHash:<nil> BlobGasUsed:<nil> ExcessBlobGas:<nil> ParentBeaconBlockRoot:<nil> Verkle:false VerkleProof:[] VerkleKeyVals:[]}
Block body: &{Transactions:[0xc000cde100 0xc000cde200] Uncles:[] Withdrawals:[]}
DBUG[10-13|12:21:35.789] Handling incoming message stream=RecvMessage err="newBlock66: block has empty receipt hash: 56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421 but it includes 2 transactions"
...
```
- When running a local erigon devnet with the new receipt hash check
after #8442 fix (with a few more logs).
**=> error message: `newBlock66: block has invalid transaction hash
...`**
```sh
Received new block request: &{Block:0xc002c38930 TD:+11963}
Block header: &{ParentHash:0x89a5134df82c85b38f2e02524143b575c44c5c6df444df9fc4d86c5972601ce0 UncleHash:0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347 Coinbase:0x0000000000000000000000000000000000000000 Root:0x1ab62696e1b585c8e084e12781e2f36f2591f91fe45e5b125df2468abd1f54e5 TxHash:0x6e7642d32215ab23f9096ed36463730ffa6c17c26dbba50c6100d64b5dee6349 ReceiptHash:0x9c8f5e4d71a8bb3ace2c0ce45e00357278fcac6da41b9e353872f106298cf6ec Bloom:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 16 0 0 0 0 0 32 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 16 0 16 0 0 0] Difficulty:+2 Number:+5981 GasLimit:30000000 GasUsed:70178 Time:1697193936 Extra:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 75 33 182 137 174 13 214 132 232 242 141 222 107 53 186 250 113 185 149 118 134 112 84 167 16 126 38 158 252 205 66 117 96 205 198 79 158 82 42 199 29 37 92 23 3 140 113 216 66 105 174 144 209 110 121 119 43 165 204 81 54 113 1] MixDigest:0x0000000000000000000000000000000000000000000000000000000000000000 Nonce:[0 0 0 0 0 0 0 0] AuRaStep:0 AuRaSeal:[] BaseFee:+8 WithdrawalsHash:<nil> BlobGasUsed:<nil> ExcessBlobGas:<nil> ParentBeaconBlockRoot:<nil> Verkle:false VerkleProof:[] VerkleKeyVals:[]}
Block body: &{Transactions:[] Uncles:[] Withdrawals:[]}
DBUG[10-13|12:45:36.908] Handling incoming message stream=RecvMessage err="newBlock66: block has invalid transaction hash: have 56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421, exp: 6e7642d32215ab23f9096ed36463730ffa6c17c26dbba50c6100d64b5dee6349"
...
```
- When running a local erigon devnet with the new receipt hash check and
after this PR's fix (include transactions in block)
**=> no error message 🎉 **
```sh
Received new block request: &{Block:0xc000d5a000 TD:+1227}
Block header: &{ParentHash:0xf5d6a19c8d56f230eeb8d2654e5562b934236136d5fcc50cbcde5c9ccc659810 UncleHash:0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347 Coinbase:0x0000000000000000000000000000000000000000 Root:0x9c17098ebfda6e59ceef147778367c628a44a6f1421ef21e844a9d8450f64a74 TxHash:0x507daf8bc5b329226614a0cf535273242cbf15d5ad582a4d5db0d5881732f791 ReceiptHash:0xaea5f86a33cba20385d4ce630b5f7ff613139b374718d89eafe224bd4b57e903 Bloom:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] Difficulty:+2 Number:+613 GasLimit:20918370 GasUsed:54544 Time:1697195980 Extra:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 30 19 173 212 211 186 172 0 200 117 103 101 19 76 147 18 161 141 70 70 237 243 162 239 236 162 35 154 248 10 28 90 20 214 32 140 72 23 151 36 212 210 99 122 154 244 229 171 249 29 105 109 23 80 112 142 65 235 189 59 238 8 27 1] MixDigest:0x0000000000000000000000000000000000000000000000000000000000000000 Nonce:[0 0 0 0 0 0 0 0] AuRaStep:0 AuRaSeal:[] BaseFee:+8 WithdrawalsHash:<nil> BlobGasUsed:<nil> ExcessBlobGas:<nil> ParentBeaconBlockRoot:<nil> Verkle:false VerkleProof:[] VerkleKeyVals:[]}
Block body: &{Transactions:[0xc0000dc400 0xc0000dc600] Uncles:[] Withdrawals:[]}
...
```
2023-10-13 18:05:38 +02:00
Giulio rebuffo
cfc2bcf707
Proper use of Dirs in Caplin ( #8458 )
2023-10-13 15:22:48 +02:00
Alex Sharov
7d357b4327
better webseed support ( #8466 )
2023-10-13 18:03:52 +07:00
Andrew Ashikhmin
b60642fa5a
Configure EIP-4844 parameters for Gnosis ( #8464 )
...
See https://github.com/gnosischain/specs/pull/20 &
https://github.com/gnosischain/specs/pull/24
2023-10-13 11:43:16 +02:00
GoodDaisy
ea328137a7
fix typos ( #8452 )
2023-10-13 11:36:23 +07:00
Mark Holt
7b3570c019
Add block producer progress check ( #8447 )
...
Add a check against the inbound headers before publishing a newly mined
block after the wait delay.
If the node received a block while it was processing transactions, or
waiting for its publish slot, do a final check that another node hasn't
already published a block.
2023-10-12 19:08:05 +01:00