-
Notifications
You must be signed in to change notification settings - Fork 78
Expand file tree
/
Copy pathdefault.config.yml
More file actions
187 lines (149 loc) · 5.84 KB
/
default.config.yml
File metadata and controls
187 lines (149 loc) · 5.84 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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
logging:
#outputLevel: "info"
#outputStderr: false
#filePath: "explorer.log"
#fileLevel: "warn"
# Chain network configuration
chain:
#displayName: "Ephemery Iteration xy"
# HTTP Server configuration
server:
host: "localhost" # Address to listen on
port: "8080" # Port to listen on
# API configuration
api:
enabled: true # Enable or disable API endpoints
corsOrigins: [] # List of allowed CORS origins, empty = allow all
# Authentication secret for JWT tokens (use random base64 string, generate with: dora-utils token secret)
authSecret: ""
# Require authentication for all API requests (set to true to disable unauthenticated access)
requireAuth: false
# Default rate limiting for unauthenticated requests
defaultRateLimit: 60 # requests per minute, 0 = no limit
defaultRateLimitBurst: 10 # burst capacity
disableDefaultRateLimit: false # disable rate limiting completely
# IP/CIDR whitelisting (bypass rate limits) - supports IPv4/IPv6 addresses and CIDR ranges
whitelistedIPs: [] # e.g. ["127.0.0.1", "::1", "10.0.0.0/8", "2001:db8::/32"]
# Frontend configuration
frontend:
enabled: true # Enable or disable to web frontend
debug: false
minimize: false # minimize html templates
# Name of the site, displayed in the title tag
siteName: "Dora the Explorer"
siteSubtitle: ""
# link to EL Explorer
ethExplorerLink: ""
# file or inventory url to load validator names from
validatorNamesYaml: ""
validatorNamesInventory: ""
# frontend features
disablePageCache: false
showSensitivePeerInfos: false
showPeerDASInfos: false
showSubmitDeposit: false
showSubmitElRequests: false
showValidatorSummary: false
publicRpcUrl: "http://127.0.0.1:8545"
# DAS Guardian configuration
#disableDasGuardianCheck: false # Disable DAS Guardian completely (default: false - enabled)
#enableDasGuardianMassScan: false # Enable mass DAS Guardian scanning (default: false - disabled)
# Tracoor cross references
#tracoorUrl: "https://tracoor.sepolia.ethpandaops.io/"
#tracoorNetwork: "sepolia"
beaconapi:
# beacon node rpc endpoints
endpoints:
- name: "local"
url: "http://127.0.0.1:5052"
# local cache for page models
localCacheSize: 100 # 100MB
# remote cache for page models
redisCacheAddr: ""
redisCachePrefix: ""
executionapi:
# execution node rpc endpoints
endpoints:
- name: "local"
url: "http://127.0.0.1:8545"
logBatchSize: 1000
depositDeployBlock: 0 # el block number from where to crawl the deposit contract (should be <=, but close to the deposit contract deployment block)
electraDeployBlock: 0 # el block number from where to crawl the electra system contracts (should be <=, but close to electra fork activation block)
genesisConfig: "" # path or URL to genesis.json file in geth format
# indexer keeps track of the latest epochs in memory.
indexer:
# max number of epochs to keep in memory
inMemoryEpochs: 3
# number of epochs to keep validator activity history for (high memory usage for large validator sets)
activityHistoryLength: 6
# disable synchronizing historic data
disableSynchronizer: false
# reset synchronization state to this epoch on startup - only use to resync database, comment out afterwards
#resyncFromEpoch: 0
# force re-synchronization of epochs that are already present in DB - only use to fix missing data after schema upgrades
#resyncForceUpdate: true
# number of seconds to pause the synchronization between each epoch (don't overload CL client)
syncEpochCooldown: 2
# maximum number of parallel beacon state requests (might cause high memory usage)
maxParallelValidatorSetRequests: 1
executionIndexer:
enabled: false # enable execution data indexing
retention: 4368h # 4368 hours = 6 months
# database configuration
database:
engine: "sqlite" # sqlite / pgsql
# sqlite settings (only used if engine is sqlite)
sqlite:
file: "./explorer-db.sqlite"
# pgsql settings (only used if engine is pgsql)
pgsql:
host: "127.0.0.1"
port: 5432
user: ""
password: ""
name: ""
pgsqlWriter: # optional separate writer connection (used for replication setups)
host: ""
port: 5432
user: ""
password: ""
name: ""
# separate block db for storing block bodies (no archive beacon node required)
blockDb:
engine: "none" # pebble / s3 / none (disable block db)
# pebble settings (only used if engine is set to pebble)
pebble:
path: "./tmp-blockdb.peb"
cacheSize: 100 # 100MB
# s3 settings (only used if engine is set to s3)
s3:
bucket: ""
endpoint: ""
secure: false
region: ""
accessKey: ""
secretKey: ""
path: "" # path prefix
# Filtered RPC Proxy configuration (for deployments without public RPC access)
rpcProxy:
enabled: false # Enable the filtered RPC proxy
upstreamUrl: "" # URL of the execution client to proxy to (e.g. http://localhost:8545)
requestsPerMinute: 30 # Rate limit per IP (requests per minute)
burstLimit: 10 # Maximum burst requests per IP
timeout: 30s # Timeout for upstream requests
logRequests: false # Log all RPC requests for monitoring
# Whitelist of allowed RPC methods (security-critical)
allowedMethods:
- "eth_blockNumber" # Get latest block number
- "eth_getStorageAt" # Read contract storage (for queue lengths)
- "eth_getLogs" # Get event logs (for fee calculations)
- "eth_call" # Read-only contract calls
- "eth_estimateGas" # Gas estimation
- "eth_gasPrice" # Current gas price
- "eth_maxPriorityFeePerGas" # EIP-1559 fee data
- "eth_feeHistory" # Historical fee data
- "eth_getBalance" # Account balance
- "eth_getTransactionCount" # Nonce for sending transactions
- "eth_getCode" # Contract code
- "eth_chainId" # Network chain ID
- "net_version" # Network version