-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample_config.yaml
More file actions
148 lines (134 loc) · 6.11 KB
/
Copy pathexample_config.yaml
File metadata and controls
148 lines (134 loc) · 6.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
logging: "info" # panic,fatal,warn,info,debug,trace
metricsAddr: ":9090"
# healthCheckAddr: ":9191" # optional. if supplied it enables healthcheck server
# pprofAddr: ":6060" # optional. if supplied it enables pprof server
# apiAddr: ":8080" # optional. if supplied it enables manual block queue API server
# Ethereum execution nodes
ethereum:
execution:
- name: "execution-1"
nodeAddress: http://localhost:8545
# Redis configuration for distributed task queues and leader election
redis:
address: "redis://localhost:6379"
prefix: "execution-processor"
stateManager:
storage:
addr: "localhost:9000"
database: "admin"
table: "execution_block"
limiter:
# enable limiter to stop processing blocks up to the latest canonical beacon block table
# if disabled, the state manager will process blocks up to head of the execution node
enabled: false
addr: "localhost:9000"
database: "default"
table: "canonical_beacon_block"
# Processor configuration (block discovery with leader election)
processors:
# How often to process blocks
interval: "5s"
mode: "forwards" # forwards, backwards
concurrency: 20
maxProcessQueueSize: 10000 # Stop processing new blocks if process queue exceeds this size
backpressureHysteresis: 0.8 # Clear backpressure when queue drops below this fraction of max (8000 in this case)
# Stale block detection (optional, enabled by default)
staleBlockDetection:
enabled: true
staleThreshold: "5m" # Time after which a block is considered stale
checkInterval: "1m" # How often to check for stale blocks
# Gap detection (optional, disabled by default)
gapDetection:
enabled: false
scanInterval: "5m" # How often to scan for gaps
batchSize: 10 # Max gaps to process per scan
lookbackRange: 10000 # Max blocks to look back, 0 = unlimited
# Leader election configuration (optional, enabled by default)
leaderElection:
enabled: true
ttl: "10s"
renewalInterval: "3s"
# nodeId: "" # Auto-generated if not specified
# Processor configuration
transactionStructlog:
enabled: true
addr: "localhost:9000"
database: "default"
table: "canonical_execution_transaction_structlog"
# debug: false # Enable debug logging for ClickHouse queries
# maxPendingBlockRange: 2 # Max distance between oldest incomplete and current block (default: 2)
# bufferMaxRows: 100000 # Max rows before flush (default: 100000)
# bufferFlushInterval: "1s" # Max time before flush (default: 1s)
# Aggregated structlog processor (call frame level aggregation)
transactionStructlogAgg:
enabled: false
addr: "localhost:9000"
database: "default"
table: "canonical_execution_transaction_structlog_agg"
# debug: false # Enable debug logging for ClickHouse queries
# maxPendingBlockRange: 2 # Max distance between oldest incomplete and current block (default: 2)
# bufferMaxRows: 100000 # Max rows before flush (default: 100000)
# bufferFlushInterval: "1s" # Max time before flush (default: 1s)
# Simple transaction processor (lightweight - no debug traces)
transactionSimple:
enabled: false
addr: "localhost:9000"
database: "default"
table: "execution_transaction"
# debug: false # Enable debug logging for ClickHouse queries
# maxPendingBlockRange: 2 # Max distance between oldest incomplete and current block (default: 2)
# bufferMaxRows: 100000 # Max rows before flush (default: 100000)
# bufferFlushInterval: "1s" # Max time before flush (default: 1s)
# cryo processors. One config, one processor per enabled group: a group is a
# single cryo invocation, so it is also the unit of success, failure and
# progress tracking.
#
# Requires the `cryo` binary on PATH (bundled in the image).
cryo:
enabled: false
addr: "localhost:9000"
database: "default"
# binaryPath: "cryo" # Resolved on PATH unless absolute
# tempDir: "" # Scratch space parent, empty = OS default
# fetchTimeout: "2m" # Bounds one cryo invocation
# bufferMaxRows: 100000 # Per dataset, not per group (default: 100000)
# bufferFlushInterval: "3s" # Per dataset (default: 3s)
# maxPendingBlockRange: 2 # Raise substantially for backfill
# globalArgs: ["--hex", "--u256-types", "string"] # Replaces the defaults entirely
groups:
# The group name is the `processor` key in admin.execution_block and is
# therefore permanent: renaming it orphans its progress, and moving a
# datatype between groups requires a re-seed.
- name: all
enabled: true
# Datatypes are cryo arguments, not always dataset names: `state_diffs`
# is one argument that yields balance_diffs, nonce_diffs and
# storage_diffs. Collecting those three individually fails inside cryo.
datatypes:
- blocks
- transactions
- logs
- erc20_transfers
- erc721_transfers
- traces
- native_transfers
- contracts
- address_appearances
- balance_reads
- nonce_reads
- storage_reads
- four_byte_counts
- state_diffs
# minBlock: 1 # Trace-based datasets cannot trace block 0
# tablePrefix: "" # Prepended to every target table name
# maxPendingBlockRange: 20 # Overrides the processor-wide setting
# Splitting by RPC family instead costs ~50% more per block and 5x the
# ledger rows, but lets datasets be cut over independently:
#
# - name: block datatypes: [blocks, transactions]
# - name: logs datatypes: [logs, erc20_transfers, erc721_transfers]
# - name: trace_block datatypes: [traces, native_transfers, contracts, address_appearances]
# - name: debug_trace datatypes: [balance_reads, nonce_reads, storage_reads, four_byte_counts]
# - name: state_diffs datatypes: [state_diffs]
# Application settings
shutdownTimeout: 6m