fix(op): filter out receipts for dup txns (#8400)

This commit is contained in:
Emilia Hane
2024-05-28 18:53:43 +02:00
committed by GitHub
parent d78c5b71fd
commit 3e7f1377ed
24 changed files with 552 additions and 232 deletions

134
book/cli/reth/import-op.md vendored Normal file
View File

@ -0,0 +1,134 @@
# op-reth import
This syncs RLP encoded blocks from a file. Supports import of OVM blocks
from the Bedrock datadir. Requires blocks, up to same height as receipts
file, to already be imported.
```bash
$ op-reth import-op --help
Usage: op-reth import-op [OPTIONS] <IMPORT_PATH>
Options:
--config <FILE>
The path to the configuration file to use.
--datadir <DATA_DIR>
The path to the data dir for all reth files and subdirectories.
Defaults to the OS-specific data directory:
- Linux: `$XDG_DATA_HOME/reth/` or `$HOME/.local/share/reth/`
- Windows: `{FOLDERID_RoamingAppData}/reth/`
- macOS: `$HOME/Library/Application Support/reth/`
[default: default]
--chunk-len <CHUNK_LEN>
Chunk byte length to read from file.
[default: 1GB]
-h, --help
Print help (see a summary with '-h')
Database:
--db.log-level <LOG_LEVEL>
Database logging level. Levels higher than "notice" require a debug build
Possible values:
- fatal: Enables logging for critical conditions, i.e. assertion failures
- error: Enables logging for error conditions
- warn: Enables logging for warning conditions
- notice: Enables logging for normal but significant condition
- verbose: Enables logging for verbose informational
- debug: Enables logging for debug-level messages
- trace: Enables logging for trace debug-level messages
- extra: Enables logging for extra debug-level messages
--db.exclusive <EXCLUSIVE>
Open environment in exclusive/monopolistic mode. Makes it possible to open a database on an NFS volume
[possible values: true, false]
<IMPORT_PATH>
The path to a `.rlp` block file for import.
The online sync pipeline stages (headers and bodies) are replaced by a file import. Skips block execution since blocks below Bedrock are built on OVM.
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout
[default: terminal]
Possible values:
- json: Represents JSON formatting for logs. This format outputs log records as JSON objects, making it suitable for structured logging
- log-fmt: Represents logfmt (key=value) formatting for logs. This format is concise and human-readable, typically used in command-line applications
- terminal: Represents terminal-friendly formatting for logs
--log.stdout.filter <FILTER>
The filter to use for logs written to stdout
[default: ]
--log.file.format <FORMAT>
The format to use for logs written to the log file
[default: terminal]
Possible values:
- json: Represents JSON formatting for logs. This format outputs log records as JSON objects, making it suitable for structured logging
- log-fmt: Represents logfmt (key=value) formatting for logs. This format is concise and human-readable, typically used in command-line applications
- terminal: Represents terminal-friendly formatting for logs
--log.file.filter <FILTER>
The filter to use for logs written to the log file
[default: debug]
--log.file.directory <PATH>
The path to put log files in
[default: <CACHE_DIR>/logs]
--log.file.max-size <SIZE>
The maximum size (in MB) of one log file
[default: 200]
--log.file.max-files <COUNT>
The maximum amount of log files that will be stored. If set to 0, background file logging is disabled
[default: 5]
--log.journald
Write logs to journald
--log.journald.filter <FILTER>
The filter to use for logs written to journald
[default: error]
--color <COLOR>
Sets whether or not the formatter emits ANSI terminal escape codes for colors and other text formatting
[default: always]
Possible values:
- always: Colors on
- auto: Colors on
- never: Colors off
Display:
-v, --verbosity...
Set the minimum log level.
-v Errors
-vv Warnings
-vvv Info
-vvvv Debug
-vvvvv Traces (warning: very verbose!)
-q, --quiet
Silence all log output
```

View File

@ -1,10 +1,13 @@
# reth import-receipts
# op-reth import-receipts-op
This imports RLP encoded receipts from a file
This imports non-standard RLP encoded receipts from a file.
The supported RLP encoding, is the non-standard encoding used
for receipt export in <https://github.com/testinprod-io/op-geth/pull/1>.
Supports import of OVM receipts from the Bedrock datadir.
```bash
$ reth import-receipts --help
Usage: reth import-receipts [OPTIONS] <IMPORT_PATH>
$ op-reth import-receipts-op --help
Usage: op-reth import-receipts-op [OPTIONS] <IMPORT_PATH>
Options:
--datadir <DATA_DIR>
@ -18,28 +21,10 @@ Options:
[default: default]
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, goerli, holesky, dev
[default: mainnet]
--chunk-len <CHUNK_LEN>
Chunk byte length.
Chunk byte length to read from file.
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - DISCOVERY_PORT: default + `instance` - 1 - AUTH_PORT: default + `instance` * 100 - 100 - HTTP_RPC_PORT: default - `instance` + 1 - WS_RPC_PORT: default + `instance` * 2 - 2
[default: 1]
[default: 1GB]
-h, --help
Print help (see a summary with '-h')
@ -64,7 +49,7 @@ Database:
[possible values: true, false]
<IMPORT_PATH>
The path to a receipts file for import. File must use `HackReceiptCodec` (used for
The path to a receipts file for import. File must use `HackReceiptFileCodec` (used for
exporting OP chain segment below Bedrock block via testinprod/op-geth).
<https://github.com/testinprod-io/op-geth/pull/1>

View File

@ -34,7 +34,7 @@ Options:
Disables stages that require state.
--chunk-len <CHUNK_LEN>
Chunk byte length.
Chunk byte length to read from file.
--instance <INSTANCE>
Add a new instance of a node.