erigon-pulse/turbo
Andrew Ashikhmin 17d6f86218
Don't mark blocks as bad on transient errors (#8197)
For example, erigon on devnet8 marked a block as bad due to
"mdbx_cursor_open: cannot allocate memory":
```
[INFO] [09-12|04:57:36.041] [NewPayload] Handling new payload        height=171035 hash=0x321dea00c4853ee354bebaf8aef3e63fbe06c4508271c0db4c92b0f087aedc3b
171034
[WARN] [09-12|04:57:36.069] Could not validate block                 err="[3/7 BlockHashes] table: Header, mdbx_cursor_open: cannot allocate memory, stack: [kv_mdbx.go:1057 kv_mdbx.
go:1069 kv_mdbx.go:1077 memory_mutation.go:473 memory_mutation.go:502 etl.go:123 etl.go:96 block_writer.go:40 stage_blockhashes.go:49 default_stages.go:457 sync.go:425 sync.go:258 s
tageloop.go:414 backend.go:476 fork_validator.go:250 fork_validator.go:156 ethereum_execution.go:151 execution_client.go:51 chain_reader.go:252 engine_server.go:741 engine_server.go
:235 engine_server.go:600 value.go:586 value.go:370 service.go:224 handler.go:494 handler.go:444 handler.go:392 handler.go:223 handler.go:316 asm_amd64.s:1598]"
[WARN] [09-12|04:57:36.069] ethereumExecutionModule.ValidateChain: chain is invalid hash=0x321dea00c4853ee354bebaf8aef3e63fbe06c4508271c0db4c92b0f087aedc3b
```
With this PR blocks are marked as bad only on genuine protocol errors.
2023-09-17 11:14:36 +02:00
..
adapter Add parentBeaconBlockRoot to RPCMarshalHeader (EIP-4788) (#7997) 2023-08-11 10:26:44 +02:00
app torrent: add --webseeds cli arg (#8176) 2023-09-12 12:18:47 +07:00
backup move mdbx to new org (#8061) 2023-08-24 18:00:24 +07:00
builder Fix CopyTxs for BlobTxWrapper (EIP-4844) (#8002) 2023-08-11 20:30:02 +02:00
cli torrent: add --webseeds cli arg (#8176) 2023-09-12 12:18:47 +07:00
cmdtest move all packages from "internal" folder - to simplify users live (#5857) 2022-10-25 09:58:25 +07:00
debug moved metrics sub packages types to metrics (#8119) 2023-09-03 08:09:27 +07:00
engineapi Don't mark blocks as bad on transient errors (#8197) 2023-09-17 11:14:36 +02:00
execution/eth1 Caplin: Improved logging (#8169) 2023-09-10 22:10:21 +02:00
jsonrpc Downloader: add tests to protect from re-downloading (#8191) 2023-09-15 13:46:59 +07:00
logging added --log.dir.prefix flag (#7714) 2023-06-12 15:30:05 +01:00
mock reference hash, address, and chain config from lib (#6536) 2023-01-13 18:12:18 +00:00
node Support for --chain=holesky (#8064) 2023-08-26 16:31:29 +06:00
rlphacks Use go:build lines and remove obsolete +build lines (#4175) 2022-05-17 14:46:53 +07:00
rpchelper Add addPeer RPC (#7804) 2023-09-06 15:31:02 +07:00
services Snapshots of Bor events (#7901) 2023-08-18 17:10:35 +01:00
shards Txpool upgrades for EIP-4844 Blob Transactions (#8004) 2023-09-11 09:38:58 +07:00
snapshotsync downloader: better logging (#8183) 2023-09-13 13:42:24 +07:00
stages Don't mark blocks as bad on transient errors (#8197) 2023-09-17 11:14:36 +02:00
testlog Introduce logger into etl (#7537) 2023-05-18 21:20:07 +01:00
transactions Move ApplyDAOHardFork & UpgradeBuildInSystemContract to engine.Initialize (#8095) 2023-08-30 15:51:19 +02:00
trie [devnet tool] Side-quest logging - replace quiet parameter (#7464) 2023-05-08 17:52:31 +01:00
README.md Rename to Erigon (#2018) 2021-05-26 11:35:39 +01:00

Erigon-API

Erigon-API is a set of tools for building applications containing Erigon node.

Our own binary erigon is built using it.

Modules

  • cli - erigon-cli, methods & helpers to run a CLI app with Erigon node.

  • node - represents an Ethereum node, running devp2p and sync and writing state to the database.

  • stagedsync - staged sync algorithm.

Examples

  • erigon - our binary is using erigon-api with all defaults

  • erigoncustom - a very simple example of adding a custom stage, a custom bucket and a custom command-line parameter

  • erigon-examples - a series of examples for Erigon api