Configuration fields
This inventory is generated from config/schema-v1.json. “Required here” means
required by the immediate containing object; optional objects can still contain
required members when present.
config_version
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
config_version | 1 | yes | — |
network
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
network | "ethereum-mainnet" | yes | — |
data_dir
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
data_dir | string | yes | {"default":"./data","minLength":1} |
finality
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
finality | starterFinality | yes | — |
finality.checkpoint | string | yes | {"pattern":"^0x[0-9a-fA-F]{64}$"} |
finality.checkpoint_slot | positiveInteger | yes | {"minimum":1} |
finality.endpoints | array<string> | yes | {"minItems":1} |
finality.kind | beacon_api | consensus_p2p | disabled | yes | — |
finality.minimum_agreement | positiveInteger | no | {"minimum":1} |
finality.bootnodes | array<string> | no | — |
finality.minimum_peers | nonNegativeInteger | no | {"minimum":0} |
finality.discovery_port | integer | no | {"minimum":0,"maximum":65535} |
blocks
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
blocks | starterBlocks | no | — |
uniswap
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
uniswap | starterUniswap | no | — |
uniswap.markets | array<ETH/USDC | ETH/USDT | WBTC/ETH> | yes | {"minItems":1} |
api
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
api | starterApi | yes | — |
api.bind | socketAddressIPv4 or bracketed IPv6 socket address with port | yes | {"default":"127.0.0.1:18080"} |
api.bearer_token_env | string | no | {"minLength":1} |
api.delivery | object | no | — |
api.delivery.history_batches | deliveryBatch | no | — |
api.delivery.history_batches.target_encoded_bytes | humanBytes | yes | — |
api.delivery.history_batches.maximum_encoded_bytes | humanBytes | yes | — |
api.delivery.history_batches.maximum_events | positiveInteger | yes | {"minimum":1} |
api.delivery.history_batches.maximum_processed_blocks | positiveInteger | yes | {"minimum":1} |
api.delivery.history_batches.maximum_delay | humanMilliseconds | yes | — |
api.delivery.history_batches.maximum_buffered_batches | positiveInteger | yes | {"minimum":1} |
api.delivery.history_batches.maximum_buffered_bytes | humanBytes | yes | — |
api.delivery.history_batches.compression | none | gzip | no | — |
api.delivery.live_batches | deliveryBatch | no | — |
api.delivery.live_batches.target_encoded_bytes | humanBytes | yes | — |
api.delivery.live_batches.maximum_encoded_bytes | humanBytes | yes | — |
api.delivery.live_batches.maximum_events | positiveInteger | yes | {"minimum":1} |
api.delivery.live_batches.maximum_processed_blocks | positiveInteger | yes | {"minimum":1} |
api.delivery.live_batches.maximum_delay | humanMilliseconds | yes | — |
api.delivery.live_batches.maximum_buffered_batches | positiveInteger | yes | {"minimum":1} |
api.delivery.live_batches.maximum_buffered_bytes | humanBytes | yes | — |
api.delivery.live_batches.compression | none | gzip | no | — |
chain
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
chain | chain | yes | — |
chain.name | string | yes | {"minLength":1} |
chain.chain_id | positiveInteger | yes | {"minimum":1} |
chain.merge_block | nonNegativeInteger | no | {"minimum":0} |
raw_history
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
raw_history | rawHistory | no | — |
raw_history.enabled | boolean | no | — |
raw_history.maximum_logical_bytes | humanBytes | no | — |
raw_history.maximum_physical_bytes | humanBytes | no | — |
raw_history.maximum_frame_logical_bytes | humanBytes | no | — |
raw_history.maximum_segment_logical_bytes | humanBytes | no | — |
raw_history.maximum_segment_physical_bytes | humanBytes | no | — |
raw_history.reader_connections | positiveInteger | no | {"minimum":1} |
raw_history.maximum_source_frames | positiveInteger | no | {"minimum":1} |
raw_history.maximum_buffered_frames | positiveInteger | no | {"minimum":1} |
artifact_storage
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
artifact_storage | artifactStorage | no | — |
artifact_storage.backend | sqlite | tiered_segments | no | — |
artifact_storage.segment_target_blocks | positiveInteger | no | {"minimum":1} |
artifact_storage.compression | none | snappy | deflate | no | — |
artifact_storage.maximum_artifact_logical_bytes | humanBytes | no | — |
artifact_storage.maximum_segment_logical_bytes | humanBytes | no | — |
artifact_storage.maximum_segment_physical_bytes | humanBytes | no | — |
artifact_storage.compaction_interval | humanMilliseconds | no | — |
artifact_storage.maximum_segments_per_cycle | positiveInteger | no | {"minimum":1} |
budgets
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
budgets | budgets | yes | — |
budgets.memory_bytes | positiveInteger | yes | {"minimum":1} |
budgets.temporary_disk_bytes | positiveInteger | yes | {"minimum":1} |
budgets.pending_delta_bytes | positiveInteger | yes | {"minimum":1} |
budgets.recent_raw_soft_bytes | positiveInteger | yes | {"minimum":1} |
budgets.recent_raw_hard_bytes | positiveInteger | yes | {"minimum":1} |
budgets.source_concurrency | positiveInteger | yes | {"minimum":1} |
budgets.mapper_concurrency | positiveInteger | yes | {"minimum":1} |
budgets.history_material | historyMaterialBudget | no | — |
budgets.history_material.mode | disabled | observe | enabled | no | — |
budgets.history_material.memory_bytes | humanBytes | no | — |
budgets.history_material.maximum_buffered_frames_per_acquisition | positiveInteger | no | {"minimum":1} |
budgets.history_material.minimum_physical_chunk_blocks | positiveInteger | no | {"minimum":1} |
budgets.history_material.maximum_overfetch_ratio | number | no | {"minimum":1} |
budgets.history_pipeline | historyPipelineBudget | no | — |
budgets.history_pipeline.maximum_active_chunks | positiveInteger | no | {"minimum":1} |
budgets.history_pipeline.maximum_mapped_bytes | humanBytes | no | — |
budgets.history_pipeline.commit | historyCommitBudget | no | — |
budgets.history_pipeline.commit.maximum_blocks | positiveInteger | no | {"minimum":1} |
budgets.history_pipeline.commit.maximum_changes | positiveInteger | no | {"minimum":1} |
budgets.history_pipeline.commit.maximum_encoded_bytes | humanBytes | no | — |
budgets.history_pipeline.commit.maximum_delay | humanMilliseconds | no | — |
budgets.history_pipeline.commit.target_writer_hold | humanMilliseconds | no | — |
budgets.store | storeBudget | no | — |
budgets.store.maximum_physical_bytes | humanBytes | no | — |
budgets.artifacts | artifactBudget | no | — |
budgets.artifacts.maximum_retained_bytes | humanBytes | no | — |
budgets.artifacts.maximum_pending_bytes | humanBytes | no | — |
budgets.delivery | deliveryBudget | no | — |
budgets.delivery.maximum_retained_bytes | humanBytes | no | — |
budgets.delivery.maximum_history_retained_bytes | humanBytes | no | — |
sources
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
sources | sources | yes | — |
sources.history | array<historySource> | yes | {"minItems":1} |
sources.history[].id | string | yes | {"minLength":1} |
sources.history[].kind | xatu | era_e | parquet | archive | yes | — |
sources.history[].priority | integer | yes | {"minimum":0,"maximum":65535} |
sources.history[].trust | trusted_dataset | verified_material | yes | — |
sources.history[].manifest | string | no | — |
sources.history[].endpoint | string | no | {"format":"uri"} |
sources.live | liveSource | yes | — |
sources.live.kind | p2p | disabled | yes | — |
sources.live.minimum_peers | nonNegativeInteger | yes | {"minimum":0} |
sources.live.body_serving_peer_target | nonNegativeInteger | no | {"minimum":0} |
sources.live.preferred_peers | nonNegativeInteger | no | {"minimum":0} |
sources.live.max_outbound_peers | nonNegativeInteger | no | {"minimum":0} |
sources.live.max_concurrent_dials | nonNegativeInteger | no | {"minimum":0} |
sources.live.listener_port | integer | no | {"minimum":0,"maximum":65535} |
sources.live.discovery_port | integer | no | {"minimum":0,"maximum":65535} |
sources.live.discv5_port | integer | no | {"minimum":0,"maximum":65535} |
sources.live.enable_discv5 | boolean | no | — |
sources.live.nat | string | no | — |
sources.live.trusted_peers | array<string> | no | — |
sources.live.bootstrap_dns_tree | stringOptional authenticated EIP-1459 execution peer-hint tree. It affects discovery only; execution material remains protocol-verified locally. | no | {"pattern":"^enrtree://"} |
sources.live.peer_refill_interval_ms | positiveInteger | no | {"minimum":1} |
sources.live.peer_recovery_timeout_seconds | positiveInteger | no | {"minimum":1} |
sources.live.material_request_concurrency | positiveInteger | no | {"minimum":1} |
sources.live.material_request_blocks | integer | no | {"minimum":1,"maximum":16} |
sources.live.request_timeout_seconds | positiveInteger | no | {"minimum":1} |
sources.live.request_retries | positiveInteger | no | {"minimum":1} |
sources.live.request_retry_backoff_ms | positiveInteger | no | {"minimum":1} |
sources.live.history_header_request_concurrency | positiveInteger | no | {"minimum":1} |
sources.live.history_header_request_blocks | positiveInteger | no | {"minimum":1} |
sources.live.persistent_retries | boolean | no | — |
sources.live.retry_backoff_max_seconds | positiveInteger | no | {"minimum":1} |
sources.live.peer_store_flush_seconds | positiveInteger | no | {"minimum":1} |
sources.live.peer_store_max_entries | positiveInteger | no | {"minimum":1} |
sources.live.archive_reconciliation_blocks | positiveInteger | no | {"minimum":1} |
sources.live.archive_reconciliation_interval_seconds | positiveInteger | no | {"minimum":1} |
sources.live.history_fallback_blocks | positiveIntegerOptional maximum finalized suffix eligible for execution-P2P history fallback. When omitted, every gap at or after the processor start block is eligible. | no | {"minimum":1} |
sources.live.handoff_overlap_blocks | positiveInteger | no | {"minimum":1} |
processors
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
processors | array<processor> | yes | {"minItems":1} |
processors[].id | string | yes | {"minLength":1} |
processors[].instance | string | yes | {"minLength":1} |
processors[].version | string | yes | {"minLength":1} |
processors[].history_control | node_owned | application_subscriptions | no | — |
processors[].history_mode | automatic | on_demand | no | — |
processors[].require_retained_input | boolean | no | — |
processors[].start_block | nonNegativeInteger | yes | {"minimum":0} |
processors[].publish | included_and_finalized | finalized_only | terminal_only | yes | — |
processors[].state | statePolicy | yes | — |
processors[].state.mode | ephemeral | durable | checkpointed | yes | — |
processors[].output | outputPolicy | yes | — |
processors[].output.mode | none | latest | window | full | yes | — |
processors[].output.window | outputWindow | no | — |
processors[].output.window.max_blocks | positiveInteger | no | {"minimum":1} |
processors[].output.window.max_age | humanDuration | no | — |
processors[].output.window.max_rows | positiveInteger | no | {"minimum":1} |
processors[].output.window.max_bytes | humanBytes | no | — |
processors[].output.finalized_only | boolean | no | — |
processors[].delivery | deliveryPolicy | yes | — |
processors[].delivery.mode | none | best_effort | window | until_acknowledged | yes | — |
processors[].delivery.max_bytes | humanBytes | no | — |
processors[].delivery.max_age | humanDuration | no | — |
processors[].delivery.on_limit | pause | fail | expire_and_reset | no | — |
processors[].delivery.pruning | deliveryPruning | no | — |
processors[].delivery.pruning.interval | humanDuration | yes | — |
processors[].delivery.pruning.minimum_batch_blocks | positiveInteger | yes | {"minimum":1} |
processors[].delivery.pruning.minimum_batch_changes | positiveInteger | yes | {"minimum":1} |
processors[].delivery.pruning.maximum_delete_changes | positiveInteger | yes | {"minimum":1} |
processors[].delivery.pruning.retain_finalized_blocks | positiveInteger | yes | {"minimum":1} |
processors[].delivery.pruning.retain_acknowledged_age | humanDuration | yes | — |
processors[].delivery.consumers | array<consumer> | no | — |
processors[].delivery.consumers[].id | string | yes | {"minLength":1,"maxLength":128} |
processors[].delivery.consumers[].required | boolean | yes | — |
processors[].delivery.consumers[].lease_ttl | humanDuration | yes | — |
processors[].checkpoint | checkpointPolicy | yes | — |
processors[].checkpoint.mode | none | automatic | yes | — |
processors[].checkpoint.keep | nonNegativeInteger | yes | {"minimum":0} |
processors[].undo | undoPolicy | yes | — |
processors[].undo.mode | none | unfinalized | yes | — |
processors[].undo.safety_blocks | nonNegativeInteger | yes | {"minimum":0} |
processors[].coverage | processorCoverage | no | — |
processors[].coverage.verification_segment_blocks | positiveInteger | no | {"minimum":1} |
processors[].settings | objectStrictly decoded by the selected processor factory | no | — |
rpc
| Field | Type / values | Required here | Constraints |
|---|---|---|---|
rpc | rpc | yes | — |
rpc.http_bind | socketAddressIPv4 or bracketed IPv6 socket address with port | yes | — |
rpc.ws_bind | socketAddressIPv4 or bracketed IPv6 socket address with port | yes | — |
rpc.historical_mode | on_demand | disabled | yes | — |
rpc.transaction_locator | boolean | yes | — |
rpc.minimum_recent_blocks | positiveInteger | yes | {"minimum":1} |