-
Notifications
You must be signed in to change notification settings - Fork 73
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
614 lines (604 loc) · 36.7 KB
/
docker-compose.yaml
File metadata and controls
614 lines (604 loc) · 36.7 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
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
---
services:
envoy:
image: ghcr.io/ar-io/ar-io-envoy:${ENVOY_IMAGE_TAG:-6934e519fb98a46da4c17bdfa51d66225428b7c0}
build:
context: envoy/
restart: unless-stopped
ports:
- '${ENVOY_PORT:-3000}:3000'
#- '9901:9901' # don't expose admin port by default
environment:
- LOG_LEVEL=${ENVOY_LOG_LEVEL:-info}
- TVAL_AR_IO_HOST=core
- TVAL_AR_IO_PORT=${CORE_PORT:-4000}
- TVAL_OBSERVER_HOST=observer
- TVAL_OBSERVER_PORT=${OBSERVER_PORT:-5050}
- TVAL_TRUSTED_NODE_HOST=${TRUSTED_NODE_HOST:-arweave.net}
- TVAL_TRUSTED_NODE_PORT=${TRUSTED_NODE_PORT:-443}
- TVAL_FALLBACK_NODE_HOST=${FALLBACK_NODE_HOST:-peers.arweave.xyz}
- TVAL_FALLBACK_NODE_PORT=${FALLBACK_NODE_PORT:-1984}
- TVAL_GRAPHQL_HOST=${GRAPHQL_HOST:-core}
- TVAL_GRAPHQL_PORT=${GRAPHQL_PORT:-4000}
- TVAL_GRAPHQL_HOST_HEADER=${GRAPHQL_HOST_HEADER:-}
- TVAL_DATASETS_HOST=${DATASETS_PROXY_HOST:-core}
- TVAL_DATASETS_PORT=${DATASETS_PROXY_PORT:-4000}
- TVAL_ARNS_ROOT_HOST=${ARNS_ROOT_HOST:-}
- TVAL_ARWEAVE_POST_DRY_RUN=${ARWEAVE_POST_DRY_RUN:-false}
- TVAL_ENABLE_ARWEAVE_PEER_EDS=${ENABLE_ARWEAVE_PEER_EDS:-true}
- TVAL_ARWEAVE_PEER_DNS_RECORDS=${ARWEAVE_PEER_DNS_RECORDS:-peers.arweave.xyz}
- TVAL_ARWEAVE_PEER_DNS_PORT=${ARWEAVE_PEER_DNS_PORT:-1984}
volumes:
- envoy-eds-data:/data/envoy-eds
ulimits:
nofile:
soft: 65536
hard: 65536
networks:
- ar-io-network
depends_on:
- core
- observer
core:
image: ghcr.io/ar-io/ar-io-core:${CORE_IMAGE_TAG:-cb16b168ca36a45d762d8391676078f98ce67da7}
build:
context: .
restart: unless-stopped
ports:
- ${CORE_PORT:-4000}:4000
volumes:
- ${CHUNKS_DATA_PATH:-./data/chunks}:/app/data/chunks
- ${CONTIGUOUS_DATA_PATH:-./data/contiguous}:/app/data/contiguous
- ${HEADERS_DATA_PATH:-./data/headers}:/app/data/headers
- ${SQLITE_DATA_PATH:-./data/sqlite}:/app/data/sqlite
- ${DUCKDB_DATA_PATH:-./data/duckdb}:/app/data/duckdb
- ${TEMP_DATA_PATH:-./data/tmp}:/app/data/tmp
- ${LMDB_DATA_PATH:-./data/lmdb}:/app/data/lmdb
- ${PARQUET_DATA_PATH:-./data/parquet}:/app/data/parquet
- ${DATASETS_PATH:-./data/datasets}:/app/data/datasets
- ${ETL_STAGING_PATH:-./data/etl/staging}:/app/data/etl/staging
- ${CDB64_ROOT_TX_INDEX_DATA_PATH:-./data/cdb64-root-tx-index}:/app/data/cdb64-root-tx-index
- ${KEYS_DATA_PATH:-./data/keys}:/app/data/keys
- ${WALLETS_PATH:-./wallets}:/app/wallets:ro
- ${SECRETS_PATH:-./secrets}:/app/secrets:ro
- envoy-eds-data:/app/data/envoy-eds
environment:
- NODE_ENV=${NODE_ENV:-production}
- LOG_LEVEL=${CORE_LOG_LEVEL:-info}
- LOG_FORMAT=${CORE_LOG_FORMAT:-simple}
- LOG_FILTER=${CORE_LOG_FILTER:-}
- LOG_ALL_STACKTRACES=${CORE_LOG_ALL_STACKTRACES:-}
- TRUSTED_NODE_URL=${TRUSTED_NODE_URL:-http://envoy:3000}
- TRUSTED_GATEWAY_URL=${TRUSTED_GATEWAY_URL:-}
- TRUSTED_GATEWAYS_URLS=${TRUSTED_GATEWAYS_URLS:-}
- TRUSTED_GATEWAYS_REQUEST_TIMEOUT_MS=${TRUSTED_GATEWAYS_REQUEST_TIMEOUT_MS:-}
- TRUSTED_GATEWAYS_BLOCKED_ORIGINS=${TRUSTED_GATEWAYS_BLOCKED_ORIGINS:-}
- TRUSTED_GATEWAYS_BLOCKED_IPS_AND_CIDRS=${TRUSTED_GATEWAYS_BLOCKED_IPS_AND_CIDRS:-}
- CACHE_ONLY_CLIENT_IPS_AND_CIDRS=${CACHE_ONLY_CLIENT_IPS_AND_CIDRS:-}
- BUNDLER_URLS=${BUNDLER_URLS:-}
- START_HEIGHT=${START_HEIGHT:-}
- STOP_HEIGHT=${STOP_HEIGHT:-}
- SKIP_CACHE=${SKIP_CACHE:-}
- SKIP_DATA_CACHE=${SKIP_DATA_CACHE:-}
- STREAM_STALL_TIMEOUT_MS=${STREAM_STALL_TIMEOUT_MS:-}
- NEGATIVE_CACHE_ENABLED=${NEGATIVE_CACHE_ENABLED:-}
- NEGATIVE_CACHE_MAX_SIZE=${NEGATIVE_CACHE_MAX_SIZE:-}
- NEGATIVE_CACHE_TTL_MS=${NEGATIVE_CACHE_TTL_MS:-}
- NEGATIVE_CACHE_MISS_THRESHOLD_MS=${NEGATIVE_CACHE_MISS_THRESHOLD_MS:-}
- NEGATIVE_CACHE_MISS_COUNT_THRESHOLD=${NEGATIVE_CACHE_MISS_COUNT_THRESHOLD:-}
- NEGATIVE_CACHE_MISS_TRACKER_TTL_MS=${NEGATIVE_CACHE_MISS_TRACKER_TTL_MS:-}
- NEGATIVE_CACHE_MAX_TTL_MS=${NEGATIVE_CACHE_MAX_TTL_MS:-}
- NEGATIVE_CACHE_PROMOTION_HISTORY_TTL_MS=${NEGATIVE_CACHE_PROMOTION_HISTORY_TTL_MS:-}
- NEGATIVE_CACHE_HEALTH_WINDOW_MS=${NEGATIVE_CACHE_HEALTH_WINDOW_MS:-}
- NEGATIVE_CACHE_UNHEALTHY_THRESHOLD=${NEGATIVE_CACHE_UNHEALTHY_THRESHOLD:-}
- NEGATIVE_CACHE_HEALTH_MIN_SAMPLE_SIZE=${NEGATIVE_CACHE_HEALTH_MIN_SAMPLE_SIZE:-}
- SIMULATED_REQUEST_FAILURE_RATE=${SIMULATED_REQUEST_FAILURE_RATE:-}
- INSTANCE_ID=${INSTANCE_ID:-}
- AR_IO_WALLET=${AR_IO_WALLET:-}
- ADMIN_API_KEY=${ADMIN_API_KEY:-}
- BACKFILL_BUNDLE_RECORDS=${BACKFILL_BUNDLE_RECORDS:-}
- FILTER_CHANGE_REPROCESS=${FILTER_CHANGE_REPROCESS:-}
- ANS104_UNBUNDLE_WORKERS=${ANS104_UNBUNDLE_WORKERS:-}
- ANS104_DOWNLOAD_WORKERS=${ANS104_DOWNLOAD_WORKERS:-}
- ANS104_UNBUNDLE_FILTER=${ANS104_UNBUNDLE_FILTER:-}
- ANS104_INDEX_FILTER=${ANS104_INDEX_FILTER:-}
- DATA_ITEM_FLUSH_COUNT_THRESHOLD=${DATA_ITEM_FLUSH_COUNT_THRESHOLD:-}
- MAX_FLUSH_INTERVAL_SECONDS=${MAX_FLUSH_INTERVAL_SECONDS:-}
- ARNS_ROOT_HOST=${ARNS_ROOT_HOST:-}
- SANDBOX_PROTOCOL=${SANDBOX_PROTOCOL:-}
- START_WRITERS=${START_WRITERS:-}
- IO_PROCESS_ID=${IO_PROCESS_ID:-}
- CHAIN_CACHE_TYPE=${CHAIN_CACHE_TYPE:-redis}
- REDIS_CACHE_URL=${REDIS_CACHE_URL:-redis://redis:6379}
- REDIS_USE_TLS=${REDIS_USE_TLS:-}
- REDIS_CACHE_TTL_SECONDS=${REDIS_CACHE_TTL_SECONDS:-}
- ENABLE_RATE_LIMITER=${ENABLE_RATE_LIMITER:-}
- RATE_LIMITER_TYPE=${RATE_LIMITER_TYPE:-redis}
- RATE_LIMITER_REDIS_ENDPOINT=${RATE_LIMITER_REDIS_ENDPOINT:-redis://redis:6379}
- RATE_LIMITER_REDIS_USE_TLS=${RATE_LIMITER_REDIS_USE_TLS:-}
- RATE_LIMITER_REDIS_USE_CLUSTER=${RATE_LIMITER_REDIS_USE_CLUSTER:-}
- RATE_LIMITER_RESOURCE_TOKENS_PER_BUCKET=${RATE_LIMITER_RESOURCE_TOKENS_PER_BUCKET:-}
- RATE_LIMITER_RESOURCE_REFILL_PER_SEC=${RATE_LIMITER_RESOURCE_REFILL_PER_SEC:-}
- RATE_LIMITER_IP_TOKENS_PER_BUCKET=${RATE_LIMITER_IP_TOKENS_PER_BUCKET:-}
- RATE_LIMITER_IP_REFILL_PER_SEC=${RATE_LIMITER_IP_REFILL_PER_SEC:-}
- RATE_LIMITER_IPS_AND_CIDRS_ALLOWLIST=${RATE_LIMITER_IPS_AND_CIDRS_ALLOWLIST:-}
- RATE_LIMITER_ARNS_ALLOWLIST=${RATE_LIMITER_ARNS_ALLOWLIST:-}
- NODE_MAX_OLD_SPACE_SIZE=${NODE_MAX_OLD_SPACE_SIZE:-}
- ENABLE_FS_HEADER_CACHE_CLEANUP=${ENABLE_FS_HEADER_CACHE_CLEANUP:-}
- ON_DEMAND_RETRIEVAL_ORDER=${ON_DEMAND_RETRIEVAL_ORDER:-}
- SKIP_FORWARDING_HEADERS=${SKIP_FORWARDING_HEADERS:-}
- SKIP_FORWARDING_EMPTY_USER_AGENT=${SKIP_FORWARDING_EMPTY_USER_AGENT:-}
- SKIP_FORWARDING_USER_AGENTS=${SKIP_FORWARDING_USER_AGENTS:-}
- BACKGROUND_RETRIEVAL_ORDER=${BACKGROUND_RETRIEVAL_ORDER:-}
- CHUNK_DATA_RETRIEVAL_ORDER=${CHUNK_DATA_RETRIEVAL_ORDER:-}
- CHUNK_METADATA_RETRIEVAL_ORDER=${CHUNK_METADATA_RETRIEVAL_ORDER:-}
- CHUNK_DATA_SOURCE_PARALLELISM=${CHUNK_DATA_SOURCE_PARALLELISM:-}
- CHUNK_METADATA_SOURCE_PARALLELISM=${CHUNK_METADATA_SOURCE_PARALLELISM:-}
- CHUNK_REQUEST_CONCURRENCY=${CHUNK_REQUEST_CONCURRENCY:-}
- CHUNK_FIRST_DATA_TIMEOUT_MS=${CHUNK_FIRST_DATA_TIMEOUT_MS:-}
- CHUNK_GET_BASE64_SIZE_BYTES=${CHUNK_GET_BASE64_SIZE_BYTES:-}
- CHUNK_METADATA_CACHE_TYPE=${CHUNK_METADATA_CACHE_TYPE:-redis}
- CONTIGUOUS_METADATA_CACHE_TYPE=${CONTIGUOUS_METADATA_CACHE_TYPE:-}
- CHUNK_OFFSET_CHAIN_FALLBACK_ENABLED=${CHUNK_OFFSET_CHAIN_FALLBACK_ENABLED:-}
- CHUNK_OFFSET_CHAIN_FALLBACK_CONCURRENCY=${CHUNK_OFFSET_CHAIN_FALLBACK_CONCURRENCY:-}
- CHUNK_OFFSET_CHAIN_FALLBACK_BLOCK_CACHE_SIZE=${CHUNK_OFFSET_CHAIN_FALLBACK_BLOCK_CACHE_SIZE:-}
- CHUNK_OFFSET_CHAIN_FALLBACK_BLOCK_CACHE_TTL_MS=${CHUNK_OFFSET_CHAIN_FALLBACK_BLOCK_CACHE_TTL_MS:-}
- CHUNK_OFFSET_CHAIN_FALLBACK_TX_DATA_CACHE_SIZE=${CHUNK_OFFSET_CHAIN_FALLBACK_TX_DATA_CACHE_SIZE:-}
- CHUNK_OFFSET_CHAIN_FALLBACK_TX_DATA_CACHE_TTL_MS=${CHUNK_OFFSET_CHAIN_FALLBACK_TX_DATA_CACHE_TTL_MS:-}
- CHUNK_OFFSET_CHAIN_FALLBACK_TX_OFFSET_CACHE_SIZE=${CHUNK_OFFSET_CHAIN_FALLBACK_TX_OFFSET_CACHE_SIZE:-}
- CHUNK_OFFSET_CHAIN_FALLBACK_TX_OFFSET_CACHE_TTL_MS=${CHUNK_OFFSET_CHAIN_FALLBACK_TX_OFFSET_CACHE_TTL_MS:-}
- ARWEAVE_PEER_CHUNK_GET_MAX_PEER_ATTEMPT_COUNT=${ARWEAVE_PEER_CHUNK_GET_MAX_PEER_ATTEMPT_COUNT:-}
- ARWEAVE_PEER_CHUNK_GET_PEER_SELECTION_COUNT=${ARWEAVE_PEER_CHUNK_GET_PEER_SELECTION_COUNT:-}
- ARWEAVE_PEER_CHUNK_POST_CONCURRENCY_LIMIT=${ARWEAVE_PEER_CHUNK_POST_CONCURRENCY_LIMIT:-}
- ARWEAVE_PEER_CHUNK_POST_MAX_PEER_ATTEMPT_COUNT=${ARWEAVE_PEER_CHUNK_POST_MAX_PEER_ATTEMPT_COUNT:-}
- ARWEAVE_PEER_CHUNK_POST_MIN_SUCCESS_COUNT=${ARWEAVE_PEER_CHUNK_POST_MIN_SUCCESS_COUNT:-}
- ARWEAVE_CHUNK_GET_GEOMETRY_TIMEOUT_MS=${ARWEAVE_CHUNK_GET_GEOMETRY_TIMEOUT_MS:-}
- ARWEAVE_CHUNK_GET_GEOMETRY_RETRY_COUNT=${ARWEAVE_CHUNK_GET_GEOMETRY_RETRY_COUNT:-}
- WEBHOOK_TARGET_SERVERS=${WEBHOOK_TARGET_SERVERS:-}
- WEBHOOK_INDEX_FILTER=${WEBHOOK_INDEX_FILTER:-}
- WEBHOOK_BLOCK_FILTER=${WEBHOOK_BLOCK_FILTER:-}
- WEBHOOK_EMIT_DATA_CACHED_EVENTS=${WEBHOOK_EMIT_DATA_CACHED_EVENTS:-}
- CONTIGUOUS_DATA_CACHE_CLEANUP_THRESHOLD=${CONTIGUOUS_DATA_CACHE_CLEANUP_THRESHOLD:-}
- CHUNK_DATA_CACHE_CLEANUP_THRESHOLD=${CHUNK_DATA_CACHE_CLEANUP_THRESHOLD:-}
- ENABLE_CHUNK_DATA_CACHE_CLEANUP=${ENABLE_CHUNK_DATA_CACHE_CLEANUP:-}
- BACKGROUND_CACHE_RANGE_MAX_SIZE=${BACKGROUND_CACHE_RANGE_MAX_SIZE:-}
- BACKGROUND_CACHE_RANGE_CONCURRENCY=${BACKGROUND_CACHE_RANGE_CONCURRENCY:-}
- CACHE_DEFAULT_MAX_AGE=${CACHE_DEFAULT_MAX_AGE:-}
- CACHE_STABLE_MAX_AGE=${CACHE_STABLE_MAX_AGE:-}
- CACHE_UNSTABLE_TRUSTED_MAX_AGE=${CACHE_UNSTABLE_TRUSTED_MAX_AGE:-}
- CACHE_UNSTABLE_MAX_AGE=${CACHE_UNSTABLE_MAX_AGE:-}
- CACHE_NOT_FOUND_MAX_AGE=${CACHE_NOT_FOUND_MAX_AGE:-}
- CACHE_BLOCKED_MAX_AGE=${CACHE_BLOCKED_MAX_AGE:-}
- CACHE_PRIVATE_CONTENT_TYPES=${CACHE_PRIVATE_CONTENT_TYPES:-}
- CACHE_PRIVATE_SIZE_THRESHOLD=${CACHE_PRIVATE_SIZE_THRESHOLD:-}
- TRUSTED_CACHE_RETRY_RATE=${TRUSTED_CACHE_RETRY_RATE:-}
- UNTRUSTED_CACHE_RETRY_RATE=${UNTRUSTED_CACHE_RETRY_RATE:-}
- TRUSTED_ARNS_GATEWAY_URL=${TRUSTED_ARNS_GATEWAY_URL:-}
- TRUSTED_ARNS_RESOLVER_HOST_HEADER=${TRUSTED_ARNS_RESOLVER_HOST_HEADER:-}
- AR_IO_SDK_LOG_LEVEL=${AR_IO_SDK_LOG_LEVEL:-none}
- ARNS_RESOLVER_PRIORITY_ORDER=${ARNS_RESOLVER_PRIORITY_ORDER:-}
- ARNS_COMPOSITE_RESOLVER_TIMEOUT_MS=${ARNS_COMPOSITE_RESOLVER_TIMEOUT_MS:-}
- ARNS_COMPOSITE_LAST_RESOLVER_TIMEOUT_MS=${ARNS_COMPOSITE_LAST_RESOLVER_TIMEOUT_MS:-}
- ARNS_CACHED_RESOLUTION_FALLBACK_TIMEOUT_MS=${ARNS_CACHED_RESOLUTION_FALLBACK_TIMEOUT_MS:-}
- ARNS_RESOLVER_ENFORCE_UNDERNAME_LIMIT=${ARNS_RESOLVER_ENFORCE_UNDERNAME_LIMIT:-}
- ARNS_RESOLVER_OVERRIDE_TTL_SECONDS=${ARNS_RESOLVER_OVERRIDE_TTL_SECONDS:-}
- ARWEAVE_NODE_IGNORE_URLS=${ARWEAVE_NODE_IGNORE_URLS:-}
- ARNS_CACHE_TTL_SECONDS=${ARNS_CACHE_TTL_SECONDS:-}
- ARNS_CACHE_MAX_KEYS=${ARNS_CACHE_MAX_KEYS:-10000}
- ARNS_CACHE_TYPE=${ARNS_CACHE_TYPE:-redis}
- ARNS_NAMES_CACHE_TTL_SECONDS=${ARNS_NAMES_CACHE_TTL_SECONDS:-}
- ARNS_MAX_CONCURRENT_RESOLUTIONS=${ARNS_MAX_CONCURRENT_RESOLUTIONS:-}
- ARNS_NAME_LIST_CACHE_HIT_REFRESH_INTERVAL_SECONDS=${ARNS_NAME_LIST_CACHE_HIT_REFRESH_INTERVAL_SECONDS:-}
- ARNS_NAME_LIST_CACHE_MISS_REFRESH_INTERVAL_SECONDS=${ARNS_NAME_LIST_CACHE_MISS_REFRESH_INTERVAL_SECONDS:-}
- ARNS_ANT_STATE_CACHE_HIT_REFRESH_WINDOW_SECONDS=${ARNS_ANT_STATE_CACHE_HIT_REFRESH_WINDOW_SECONDS:-}
- ARIO_PROCESS_DEFAULT_CIRCUIT_BREAKER_TIMEOUT_MS=${ARIO_PROCESS_DEFAULT_CIRCUIT_BREAKER_TIMEOUT_MS:-}
- ARIO_PROCESS_DEFAULT_CIRCUIT_BREAKER_ERROR_THRESHOLD_PERCENTAGE=${ARIO_PROCESS_DEFAULT_CIRCUIT_BREAKER_ERROR_THRESHOLD_PERCENTAGE:-}
- ARIO_PROCESS_DEFAULT_CIRCUIT_BREAKER_ROLLING_COUNT_TIMEOUT_MS=${ARIO_PROCESS_DEFAULT_CIRCUIT_BREAKER_ROLLING_COUNT_TIMEOUT_MS:-}
- ARIO_PROCESS_DEFAULT_CIRCUIT_BREAKER_RESET_TIMEOUT_MS=${ARIO_PROCESS_DEFAULT_CIRCUIT_BREAKER_RESET_TIMEOUT_MS:-}
- ENABLE_MEMPOOL_WATCHER=${ENABLE_MEMPOOL_WATCHER:-}
- ENABLE_DATASETS_ENDPOINT=${ENABLE_DATASETS_ENDPOINT:-}
- MEMPOOL_POLLING_INTERVAL_MS=${MEMPOOL_POLLING_INTERVAL_MS:-}
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-}
- AWS_REGION=${AWS_REGION:-}
- AWS_ENDPOINT=${AWS_ENDPOINT:-}
- AWS_S3_CONTIGUOUS_DATA_BUCKET=${AWS_S3_CONTIGUOUS_DATA_BUCKET:-}
- AWS_S3_CONTIGUOUS_DATA_PREFIX=${AWS_S3_CONTIGUOUS_DATA_PREFIX:-}
- AWS_S3_TURBO_CONTIGUOUS_DATA_BUCKET=${AWS_S3_TURBO_CONTIGUOUS_DATA_BUCKET:-}
- AWS_S3_TURBO_CONTIGUOUS_DATA_PREFIX=${AWS_S3_TURBO_CONTIGUOUS_DATA_PREFIX:-}
- AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN:-}
- LEGACY_AWS_S3_CHUNK_DATA_BUCKET=${LEGACY_AWS_S3_CHUNK_DATA_BUCKET:-}
- LEGACY_AWS_S3_CHUNK_DATA_PREFIX=${LEGACY_AWS_S3_CHUNK_DATA_PREFIX:-}
- LEGACY_AWS_S3_ACCESS_KEY_ID=${LEGACY_AWS_S3_ACCESS_KEY_ID:-}
- LEGACY_AWS_S3_SECRET_ACCESS_KEY=${LEGACY_AWS_S3_SECRET_ACCESS_KEY:-}
- LEGACY_AWS_S3_REGION=${LEGACY_AWS_S3_REGION:-}
- LEGACY_AWS_S3_ENDPOINT=${LEGACY_AWS_S3_ENDPOINT:-}
- LEGACY_PSQL_CONNECTION_STRING=${LEGACY_PSQL_CONNECTION_STRING:-}
- LEGACY_PSQL_PASSWORD_FILE=${LEGACY_PSQL_PASSWORD_FILE:-}
- LEGACY_PSQL_SSL_REJECT_UNAUTHORIZED=${LEGACY_PSQL_SSL_REJECT_UNAUTHORIZED:-}
- LEGACY_PSQL_MAX_CONNECTIONS=${LEGACY_PSQL_MAX_CONNECTIONS:-}
- LEGACY_PSQL_IDLE_TIMEOUT_SECONDS=${LEGACY_PSQL_IDLE_TIMEOUT_SECONDS:-}
- LEGACY_PSQL_CONNECT_TIMEOUT_SECONDS=${LEGACY_PSQL_CONNECT_TIMEOUT_SECONDS:-}
- LEGACY_PSQL_MAX_LIFETIME_SECONDS=${LEGACY_PSQL_MAX_LIFETIME_SECONDS:-}
- LEGACY_PSQL_STATEMENT_TIMEOUT_MS=${LEGACY_PSQL_STATEMENT_TIMEOUT_MS:-}
- LEGACY_PSQL_IDLE_IN_TRANSACTION_TIMEOUT_MS=${LEGACY_PSQL_IDLE_IN_TRANSACTION_TIMEOUT_MS:-}
- AWS_DYNAMODB_TURBO_REGION=${AWS_DYNAMODB_TURBO_REGION:-}
- AWS_DYNAMODB_TURBO_ENDPOINT=${AWS_DYNAMODB_TURBO_ENDPOINT:-}
- AWS_DYNAMODB_TURBO_ASSUME_ROLE_ARN=${AWS_DYNAMODB_TURBO_ASSUME_ROLE_ARN:-}
- AWS_DYNAMODB_TURBO_DATA_ITEM_TABLE=${AWS_DYNAMODB_TURBO_DATA_ITEM_TABLE:-}
- AWS_DYNAMODB_TURBO_OFFSETS_TABLE=${AWS_DYNAMODB_TURBO_OFFSETS_TABLE:-}
- AWS_ELASTICACHE_TURBO_HOST=${AWS_ELASTICACHE_TURBO_HOST:-}
- AWS_ELASTICACHE_TURBO_USE_TLS=${AWS_ELASTICACHE_TURBO_USE_TLS:-}
- AWS_ELASTICACHE_TURBO_PORT=${AWS_ELASTICACHE_TURBO_PORT:-}
- AR_IO_NODE_RELEASE=${AR_IO_NODE_RELEASE:-77}
- CHUNK_POST_MIN_SUCCESS_COUNT=${CHUNK_POST_MIN_SUCCESS_COUNT:-}
- CHUNK_POST_MIN_PREFERRED_SUCCESS_COUNT=${CHUNK_POST_MIN_PREFERRED_SUCCESS_COUNT:-}
- CHUNK_POST_MAX_CONSECUTIVE_FAILURES=${CHUNK_POST_MAX_CONSECUTIVE_FAILURES:-}
- CHUNK_POST_SORTED_PEERS_CACHE_DURATION_MS=${CHUNK_POST_SORTED_PEERS_CACHE_DURATION_MS:-}
- CHUNK_POST_RESPONSE_TIMEOUT_MS=${CHUNK_POST_RESPONSE_TIMEOUT_MS:-}
- CHUNK_POST_ABORT_TIMEOUT_MS=${CHUNK_POST_ABORT_TIMEOUT_MS:-}
- CHUNK_REBROADCAST_SOURCES=${CHUNK_REBROADCAST_SOURCES:-}
- CHUNK_REBROADCAST_RATE_LIMIT_TOKENS=${CHUNK_REBROADCAST_RATE_LIMIT_TOKENS:-}
- CHUNK_REBROADCAST_RATE_LIMIT_INTERVAL=${CHUNK_REBROADCAST_RATE_LIMIT_INTERVAL:-}
- CHUNK_REBROADCAST_MAX_CONCURRENT=${CHUNK_REBROADCAST_MAX_CONCURRENT:-}
- CHUNK_REBROADCAST_DEDUP_TTL_SECONDS=${CHUNK_REBROADCAST_DEDUP_TTL_SECONDS:-}
- CHUNK_REBROADCAST_MIN_SUCCESS_COUNT=${CHUNK_REBROADCAST_MIN_SUCCESS_COUNT:-}
- AO_CU_URL=${AO_CU_URL:-}
- NETWORK_AO_CU_URL=${NETWORK_AO_CU_URL:-}
- ANT_AO_CU_URL=${ANT_AO_CU_URL:-}
- AO_ANT_HYPERBEAM_URL=${AO_ANT_HYPERBEAM_URL:-}
- AO_MU_URL=${AO_MU_URL:-}
- AO_GATEWAY_URL=${AO_GATEWAY_URL:-}
- AO_GRAPHQL_URL=${AO_GRAPHQL_URL:-}
- WRITE_ANS104_DATA_ITEM_DB_SIGNATURES=${WRITE_ANS104_DATA_ITEM_DB_SIGNATURES:-}
- WRITE_TRANSACTION_DB_SIGNATURES=${WRITE_TRANSACTION_DB_SIGNATURES:-}
- ENABLE_DATA_DB_WAL_CLEANUP=${ENABLE_DATA_DB_WAL_CLEANUP:-}
- MAX_DATA_ITEM_QUEUE_SIZE=${MAX_DATA_ITEM_QUEUE_SIZE:-}
- TAG_SELECTIVITY=${TAG_SELECTIVITY:-}
- MAX_EXPECTED_DATA_ITEM_INDEXING_INTERVAL_SECONDS=${MAX_EXPECTED_DATA_ITEM_INDEXING_INTERVAL_SECONDS:-}
- ENABLE_BACKGROUND_DATA_VERIFICATION=${ENABLE_BACKGROUND_DATA_VERIFICATION:-}
- MIN_DATA_VERIFICATION_PRIORITY=${MIN_DATA_VERIFICATION_PRIORITY:-}
- BACKGROUND_DATA_VERIFICATION_INTERVAL_SECONDS=${BACKGROUND_DATA_VERIFICATION_INTERVAL_SECONDS:-}
- BACKGROUND_DATA_VERIFICATION_STREAM_TIMEOUT_MS=${BACKGROUND_DATA_VERIFICATION_STREAM_TIMEOUT_MS:-}
- BACKGROUND_DATA_VERIFICATION_WORKER_COUNT=${BACKGROUND_DATA_VERIFICATION_WORKER_COUNT:-}
- MAX_VERIFICATION_RETRIES=${MAX_VERIFICATION_RETRIES:-}
- VERIFICATION_DATA_IMPORTER_QUEUE_SIZE=${VERIFICATION_DATA_IMPORTER_QUEUE_SIZE:-}
- ENABLE_DATA_ITEM_ROOT_TX_SEARCH=${ENABLE_DATA_ITEM_ROOT_TX_SEARCH:-}
- ROOT_TX_LOOKUP_ORDER=${ROOT_TX_LOOKUP_ORDER:-}
- ROOT_TX_CACHE_MAX_SIZE=${ROOT_TX_CACHE_MAX_SIZE:-}
- ROOT_TX_CACHE_TTL_MS=${ROOT_TX_CACHE_TTL_MS:-}
- ROOT_TX_INDEX_CIRCUIT_BREAKER_FAILURE_THRESHOLD=${ROOT_TX_INDEX_CIRCUIT_BREAKER_FAILURE_THRESHOLD:-}
- ROOT_TX_INDEX_CIRCUIT_BREAKER_SUCCESS_THRESHOLD=${ROOT_TX_INDEX_CIRCUIT_BREAKER_SUCCESS_THRESHOLD:-}
- ROOT_TX_INDEX_CIRCUIT_BREAKER_TIMEOUT_MS=${ROOT_TX_INDEX_CIRCUIT_BREAKER_TIMEOUT_MS:-}
- CIRCUIT_BREAKER_FAILURE_THRESHOLD=${CIRCUIT_BREAKER_FAILURE_THRESHOLD:-}
- CIRCUIT_BREAKER_SUCCESS_THRESHOLD=${CIRCUIT_BREAKER_SUCCESS_THRESHOLD:-}
- CIRCUIT_BREAKER_TIMEOUT_MS=${CIRCUIT_BREAKER_TIMEOUT_MS:-}
- GET_DATA_CIRCUIT_BREAKER_TIMEOUT_MS=${GET_DATA_CIRCUIT_BREAKER_TIMEOUT_MS:-}
- TX_METADATA_RESOLVE_CONCURRENCY=${TX_METADATA_RESOLVE_CONCURRENCY:-}
- TURBO_ENDPOINT=${TURBO_ENDPOINT:-}
- TURBO_REQUEST_TIMEOUT_MS=${TURBO_REQUEST_TIMEOUT_MS:-}
- TURBO_REQUEST_RETRY_COUNT=${TURBO_REQUEST_RETRY_COUNT:-}
- TURBO_ROOT_TX_RATE_LIMIT_BURST_SIZE=${TURBO_ROOT_TX_RATE_LIMIT_BURST_SIZE:-}
- TURBO_ROOT_TX_RATE_LIMIT_TOKENS_PER_INTERVAL=${TURBO_ROOT_TX_RATE_LIMIT_TOKENS_PER_INTERVAL:-}
- TURBO_ROOT_TX_RATE_LIMIT_INTERVAL=${TURBO_ROOT_TX_RATE_LIMIT_INTERVAL:-}
- GATEWAYS_ROOT_TX_URLS=${GATEWAYS_ROOT_TX_URLS:-}
- GATEWAYS_ROOT_TX_REQUEST_TIMEOUT_MS=${GATEWAYS_ROOT_TX_REQUEST_TIMEOUT_MS:-}
- GATEWAYS_ROOT_TX_RATE_LIMIT_BURST_SIZE=${GATEWAYS_ROOT_TX_RATE_LIMIT_BURST_SIZE:-}
- GATEWAYS_ROOT_TX_RATE_LIMIT_TOKENS_PER_INTERVAL=${GATEWAYS_ROOT_TX_RATE_LIMIT_TOKENS_PER_INTERVAL:-}
- GATEWAYS_ROOT_TX_RATE_LIMIT_INTERVAL=${GATEWAYS_ROOT_TX_RATE_LIMIT_INTERVAL:-}
- GRAPHQL_ON_DEMAND_RESOLUTION_ENABLED=${GRAPHQL_ON_DEMAND_RESOLUTION_ENABLED:-}
- GRAPHQL_ON_DEMAND_RESOLUTION_MAX_CONCURRENT=${GRAPHQL_ON_DEMAND_RESOLUTION_MAX_CONCURRENT:-}
- GRAPHQL_ON_DEMAND_RESOLUTION_TIMEOUT_MS=${GRAPHQL_ON_DEMAND_RESOLUTION_TIMEOUT_MS:-}
- GRAPHQL_ROOT_TX_GATEWAYS_URLS=${GRAPHQL_ROOT_TX_GATEWAYS_URLS:-}
- GRAPHQL_ROOT_TX_RATE_LIMIT_BURST_SIZE=${GRAPHQL_ROOT_TX_RATE_LIMIT_BURST_SIZE:-}
- GRAPHQL_ROOT_TX_RATE_LIMIT_TOKENS_PER_INTERVAL=${GRAPHQL_ROOT_TX_RATE_LIMIT_TOKENS_PER_INTERVAL:-}
- GRAPHQL_ROOT_TX_RATE_LIMIT_INTERVAL=${GRAPHQL_ROOT_TX_RATE_LIMIT_INTERVAL:-}
- GATEWAYS_GQL_URLS=${GATEWAYS_GQL_URLS:-}
- GATEWAYS_GQL_INCLUDE_LOCAL=${GATEWAYS_GQL_INCLUDE_LOCAL:-}
- GATEWAYS_GQL_REQUEST_TIMEOUT_MS=${GATEWAYS_GQL_REQUEST_TIMEOUT_MS:-}
- GATEWAYS_GQL_CIRCUIT_BREAKER_TIMEOUT_MS=${GATEWAYS_GQL_CIRCUIT_BREAKER_TIMEOUT_MS:-}
- GATEWAYS_GQL_CIRCUIT_BREAKER_ERROR_THRESHOLD_PERCENTAGE=${GATEWAYS_GQL_CIRCUIT_BREAKER_ERROR_THRESHOLD_PERCENTAGE:-}
- GATEWAYS_GQL_CIRCUIT_BREAKER_ROLLING_COUNT_TIMEOUT_MS=${GATEWAYS_GQL_CIRCUIT_BREAKER_ROLLING_COUNT_TIMEOUT_MS:-}
- GATEWAYS_GQL_CIRCUIT_BREAKER_RESET_TIMEOUT_MS=${GATEWAYS_GQL_CIRCUIT_BREAKER_RESET_TIMEOUT_MS:-}
- HYPERBEAM_ENDPOINT=${HYPERBEAM_ENDPOINT:-}
- HYPERBEAM_REQUEST_TIMEOUT_MS=${HYPERBEAM_REQUEST_TIMEOUT_MS:-}
- HYPERBEAM_ROOT_TX_RATE_LIMIT_BURST_SIZE=${HYPERBEAM_ROOT_TX_RATE_LIMIT_BURST_SIZE:-}
- HYPERBEAM_ROOT_TX_RATE_LIMIT_TOKENS_PER_INTERVAL=${HYPERBEAM_ROOT_TX_RATE_LIMIT_TOKENS_PER_INTERVAL:-}
- HYPERBEAM_ROOT_TX_RATE_LIMIT_INTERVAL=${HYPERBEAM_ROOT_TX_RATE_LIMIT_INTERVAL:-}
- CDB64_ROOT_TX_INDEX_WATCH=${CDB64_ROOT_TX_INDEX_WATCH:-}
- CDB64_ROOT_TX_INDEX_SOURCES=${CDB64_ROOT_TX_INDEX_SOURCES:-}
- CDB64_REMOTE_RETRIEVAL_ORDER=${CDB64_REMOTE_RETRIEVAL_ORDER:-}
- CDB64_REMOTE_CACHE_MAX_REGIONS=${CDB64_REMOTE_CACHE_MAX_REGIONS:-}
- CDB64_REMOTE_CACHE_TTL_MS=${CDB64_REMOTE_CACHE_TTL_MS:-}
- CDB64_REMOTE_REQUEST_TIMEOUT_MS=${CDB64_REMOTE_REQUEST_TIMEOUT_MS:-}
- CDB64_REMOTE_MAX_CONCURRENT_REQUESTS=${CDB64_REMOTE_MAX_CONCURRENT_REQUESTS:-}
- CDB64_REMOTE_SEMAPHORE_TIMEOUT_MS=${CDB64_REMOTE_SEMAPHORE_TIMEOUT_MS:-}
- ENABLE_SAMPLING_DATA_SOURCE=${ENABLE_SAMPLING_DATA_SOURCE:-}
- SAMPLING_DATA_SOURCE=${SAMPLING_DATA_SOURCE:-}
- SAMPLING_RATE=${SAMPLING_RATE:-}
- SAMPLING_STRATEGY=${SAMPLING_STRATEGY:-}
- ENABLE_PASSTHROUGH_WITHOUT_OFFSETS=${ENABLE_PASSTHROUGH_WITHOUT_OFFSETS:-}
- CLICKHOUSE_URL=${CLICKHOUSE_URL:-}
- CLICKHOUSE_USER=${CLICKHOUSE_USER:-}
- CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD:-}
- CLICKHOUSE_SQLITE_MIN_HEIGHT_ENABLED=${CLICKHOUSE_SQLITE_MIN_HEIGHT_ENABLED:-}
- CLICKHOUSE_SQLITE_MIN_HEIGHT_BUFFER=${CLICKHOUSE_SQLITE_MIN_HEIGHT_BUFFER:-}
- CLICKHOUSE_MAX_HEIGHT_CACHE_TTL_SECONDS=${CLICKHOUSE_MAX_HEIGHT_CACHE_TTL_SECONDS:-}
- CLICKHOUSE_QUERY_TIMEOUT_SECONDS=${CLICKHOUSE_QUERY_TIMEOUT_SECONDS:-}
- CLICKHOUSE_GQL_MAX_ROWS_TO_READ=${CLICKHOUSE_GQL_MAX_ROWS_TO_READ:-}
- CLICKHOUSE_GQL_DEDUPE_HEADROOM=${CLICKHOUSE_GQL_DEDUPE_HEADROOM:-}
- CLICKHOUSE_SQLITE_CIRCUIT_BREAKER_TIMEOUT_MS=${CLICKHOUSE_SQLITE_CIRCUIT_BREAKER_TIMEOUT_MS:-}
- CLICKHOUSE_SQLITE_CIRCUIT_BREAKER_ERROR_THRESHOLD_PERCENTAGE=${CLICKHOUSE_SQLITE_CIRCUIT_BREAKER_ERROR_THRESHOLD_PERCENTAGE:-}
- CLICKHOUSE_SQLITE_CIRCUIT_BREAKER_ROLLING_COUNT_TIMEOUT_MS=${CLICKHOUSE_SQLITE_CIRCUIT_BREAKER_ROLLING_COUNT_TIMEOUT_MS:-}
- CLICKHOUSE_SQLITE_CIRCUIT_BREAKER_RESET_TIMEOUT_MS=${CLICKHOUSE_SQLITE_CIRCUIT_BREAKER_RESET_TIMEOUT_MS:-}
- BUNDLE_DATA_IMPORTER_QUEUE_SIZE=${BUNDLE_DATA_IMPORTER_QUEUE_SIZE:-}
- FS_CLEANUP_WORKER_BATCH_SIZE=${FS_CLEANUP_WORKER_BATCH_SIZE:-}
- FS_CLEANUP_WORKER_BATCH_PAUSE_DURATION=${FS_CLEANUP_WORKER_BATCH_PAUSE_DURATION:-}
- FS_CLEANUP_WORKER_RESTART_PAUSE_DURATION=${FS_CLEANUP_WORKER_RESTART_PAUSE_DURATION:-}
- ENABLE_CHUNK_SYMLINK_CLEANUP=${ENABLE_CHUNK_SYMLINK_CLEANUP:-}
- CHUNK_SYMLINK_CLEANUP_INTERVAL=${CHUNK_SYMLINK_CLEANUP_INTERVAL:-}
- BUNDLE_REPAIR_RETRY_INTERVAL_SECONDS=${BUNDLE_REPAIR_RETRY_INTERVAL_SECONDS:-}
- BUNDLE_REPAIR_RETRY_BATCH_SIZE=${BUNDLE_REPAIR_RETRY_BATCH_SIZE:-}
- BUNDLE_REPAIR_UPDATE_TIMESTAMPS_INTERVAL_SECONDS=${BUNDLE_REPAIR_UPDATE_TIMESTAMPS_INTERVAL_SECONDS:-}
- BUNDLE_REPAIR_BACKFILL_INTERVAL_SECONDS=${BUNDLE_REPAIR_BACKFILL_INTERVAL_SECONDS:-}
- BUNDLE_REPAIR_FILTER_REPROCESS_INTERVAL_SECONDS=${BUNDLE_REPAIR_FILTER_REPROCESS_INTERVAL_SECONDS:-}
- WEIGHTED_PEERS_TEMPERATURE_DELTA=${WEIGHTED_PEERS_TEMPERATURE_DELTA:-}
- GATEWAY_PEERS_WEIGHTS_CACHE_DURATION_MS=${GATEWAY_PEERS_WEIGHTS_CACHE_DURATION_MS:-}
- GATEWAY_PEERS_REQUEST_WINDOW_COUNT=${GATEWAY_PEERS_REQUEST_WINDOW_COUNT:-}
- PEER_MAX_CONCURRENT_OUTBOUND=${PEER_MAX_CONCURRENT_OUTBOUND:-}
- PEER_CANDIDATE_COUNT=${PEER_CANDIDATE_COUNT:-}
- PEER_HEDGE_DELAY_MS=${PEER_HEDGE_DELAY_MS:-}
- PEER_MAX_HEDGED_REQUESTS=${PEER_MAX_HEDGED_REQUESTS:-}
- PEER_HASH_RING_VIRTUAL_NODES=${PEER_HASH_RING_VIRTUAL_NODES:-}
- PEER_HASH_RING_HOME_SET_SIZE=${PEER_HASH_RING_HOME_SET_SIZE:-}
- APEX_TX_ID=${APEX_TX_ID:-}
- APEX_ARNS_NAME=${APEX_ARNS_NAME:-}
- ARNS_NOT_FOUND_TX_ID=${ARNS_NOT_FOUND_TX_ID:-}
- ARNS_NOT_FOUND_ARNS_NAME=${ARNS_NOT_FOUND_ARNS_NAME:-}
- PREFERRED_ARNS_NAMES=${PREFERRED_ARNS_NAMES:-}
- PREFERRED_ARNS_BASE_NAMES=${PREFERRED_ARNS_BASE_NAMES:-}
- PREFERRED_ARNS_CONTIGUOUS_DATA_CACHE_CLEANUP_THRESHOLD=${PREFERRED_ARNS_CONTIGUOUS_DATA_CACHE_CLEANUP_THRESHOLD:-}
- PREFERRED_CHUNK_GET_NODE_URLS=${PREFERRED_CHUNK_GET_NODE_URLS:-}
- PREFERRED_CHUNK_POST_NODE_URLS=${PREFERRED_CHUNK_POST_NODE_URLS:-}
- PREFERRED_CHUNK_NODE_DNS_RESOLUTION_INTERVAL_SECONDS=${PREFERRED_CHUNK_NODE_DNS_RESOLUTION_INTERVAL_SECONDS:-}
- CHUNK_POST_QUEUE_DEPTH_THRESHOLD=${CHUNK_POST_QUEUE_DEPTH_THRESHOLD:-}
- CHUNK_POST_PEER_CONCURRENCY=${CHUNK_POST_PEER_CONCURRENCY:-}
- CHUNK_POST_PER_NODE_CONCURRENCY=${CHUNK_POST_PER_NODE_CONCURRENCY:-}
- PEER_REFRESH_CONCURRENCY=${PEER_REFRESH_CONCURRENCY:-}
- PREFERRED_CHUNK_POST_WEIGHT=${PREFERRED_CHUNK_POST_WEIGHT:-}
- OTEL_BATCH_LOG_PROCESSOR_SCHEDULED_DELAY_MS=${OTEL_BATCH_LOG_PROCESSOR_SCHEDULED_DELAY_MS:-}
- OTEL_BATCH_LOG_PROCESSOR_MAX_EXPORT_BATCH_SIZE=${OTEL_BATCH_LOG_PROCESSOR_MAX_EXPORT_BATCH_SIZE:-}
- OTEL_SERVICE_NAME=${OTEL_SERVICE_NAME:-}
- OTEL_TRACING_SAMPLING_RATE_DENOMINATOR=${OTEL_TRACING_SAMPLING_RATE_DENOMINATOR:-}
- OTEL_EXPORTER_OTLP_HEADERS_FILE=${OTEL_EXPORTER_OTLP_HEADERS_FILE:-}
- OTEL_EXPORTER_OTLP_HEADERS=${OTEL_EXPORTER_OTLP_HEADERS:-}
- OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES:-}
# Set to http://otel-collector:4318 when using --profile otel, or to external endpoint to bypass collector
- OTEL_EXPORTER_OTLP_ENDPOINT=${OTEL_EXPORTER_OTLP_ENDPOINT:-}
# x402 USDC Egress
- ENABLE_X_402_USDC_DATA_EGRESS=${ENABLE_X_402_USDC_DATA_EGRESS:-}
- X_402_USDC_NETWORK=${X_402_USDC_NETWORK:-}
- X_402_USDC_WALLET_ADDRESS=${X_402_USDC_WALLET_ADDRESS:-}
- X_402_USDC_DATA_EGRESS_MIN_PRICE=${X_402_USDC_DATA_EGRESS_MIN_PRICE:-}
- X_402_USDC_DATA_EGRESS_MAX_PRICE=${X_402_USDC_DATA_EGRESS_MAX_PRICE:-}
- X_402_USDC_FACILITATOR_URL=${X_402_USDC_FACILITATOR_URL:-}
- X_402_USDC_PER_BYTE_PRICE=${X_402_USDC_PER_BYTE_PRICE:-}
- X_402_CDP_CLIENT_KEY=${X_402_CDP_CLIENT_KEY:-}
- X_402_SESSION_TOKEN_ENDPOINT=${X_402_SESSION_TOKEN_ENDPOINT:-}
- X_402_RATE_LIMIT_CAPACITY_MULTIPLIER=${X_402_RATE_LIMIT_CAPACITY_MULTIPLIER:-}
- X_402_USDC_SETTLE_TIMEOUT_MS=${X_402_USDC_SETTLE_TIMEOUT_MS:-}
- X_402_APP_NAME=${X_402_APP_NAME:-}
- X_402_APP_LOGO=${X_402_APP_LOGO:-}
- CDP_API_KEY_ID=${CDP_API_KEY_ID:-}
- CDP_API_KEY_SECRET=${CDP_API_KEY_SECRET:-}
- CDP_API_KEY_SECRET_FILE=${CDP_API_KEY_SECRET_FILE:-}
- ARWEAVE_POST_DRY_RUN=${ARWEAVE_POST_DRY_RUN:-false}
- ARWEAVE_POST_DRY_RUN_SKIP_VALIDATION=${ARWEAVE_POST_DRY_RUN_SKIP_VALIDATION:-false}
- ARWEAVE_PEER_DNS_RECORDS=${ARWEAVE_PEER_DNS_RECORDS:-}
- ARWEAVE_PEER_DNS_PORT=${ARWEAVE_PEER_DNS_PORT:-}
- ARWEAVE_NODE_MAX_HEIGHT_LAG=${ARWEAVE_NODE_MAX_HEIGHT_LAG:-}
- ARWEAVE_NODE_MAX_HEIGHT_LEAD=${ARWEAVE_NODE_MAX_HEIGHT_LEAD:-}
- ARWEAVE_HEIGHT_MIN_CONSENSUS_COUNT=${ARWEAVE_HEIGHT_MIN_CONSENSUS_COUNT:-}
- ARWEAVE_NODE_FULL_SYNC_THRESHOLD=${ARWEAVE_NODE_FULL_SYNC_THRESHOLD:-}
- ARWEAVE_PEER_HEALTH_CHECK_INTERVAL_MS=${ARWEAVE_PEER_HEALTH_CHECK_INTERVAL_MS:-}
- ARWEAVE_TAG_RESPONSE_HEADERS_ENABLED=${ARWEAVE_TAG_RESPONSE_HEADERS_ENABLED:-}
- ARWEAVE_TAG_RESPONSE_HEADERS_MAX=${ARWEAVE_TAG_RESPONSE_HEADERS_MAX:-}
- ARWEAVE_TAG_RESPONSE_HEADERS_MAX_BYTES=${ARWEAVE_TAG_RESPONSE_HEADERS_MAX_BYTES:-}
- HTTPSIG_ENABLED=${HTTPSIG_ENABLED:-}
- HTTPSIG_KEY_FILE=${HTTPSIG_KEY_FILE:-}
- HTTPSIG_BIND_REQUEST=${HTTPSIG_BIND_REQUEST:-}
- HTTPSIG_UPLOAD_ATTESTATION=${HTTPSIG_UPLOAD_ATTESTATION:-}
- OBSERVER_WALLET=${OBSERVER_WALLET:-}
- WALLETS_PATH=/app/wallets
ulimits:
nofile:
soft: 65536
hard: 65536
networks:
- ar-io-network
depends_on:
- redis
labels:
autoheal: ${RUN_AUTOHEAL:-false}
redis:
image: redis:${REDIS_IMAGE_TAG:-7}
command: redis-server --maxmemory ${REDIS_MAX_MEMORY:-256mb} --maxmemory-policy allkeys-lru ${EXTRA_REDIS_FLAGS:---save "" --appendonly no}
restart: unless-stopped
ports:
- '6379' # don't expose redis externally by default
volumes:
- ${REDIS_DATA_PATH:-./data/redis}:/data
networks:
- ar-io-network
otel-collector:
image: otel/opentelemetry-collector-contrib:${OTEL_COLLECTOR_IMAGE_TAG:-0.119.0}
profiles:
- otel
restart: unless-stopped
ports:
- '4317' # gRPC OTLP receiver (don't expose externally by default)
- '4318' # HTTP OTLP receiver (don't expose externally by default)
volumes:
- ./otel/collector-config.yaml:/etc/otel/config.yaml:ro
environment:
# Destination endpoint for sampled traces
- OTEL_COLLECTOR_DESTINATION_ENDPOINT=${OTEL_COLLECTOR_DESTINATION_ENDPOINT:-}
# Backend API keys (configure ONE based on your telemetry backend)
- OTEL_COLLECTOR_HONEYCOMB_API_KEY=${OTEL_COLLECTOR_HONEYCOMB_API_KEY:-}
- OTEL_COLLECTOR_GRAFANA_CLOUD_API_KEY=${OTEL_COLLECTOR_GRAFANA_CLOUD_API_KEY:-}
- OTEL_COLLECTOR_DATADOG_API_KEY=${OTEL_COLLECTOR_DATADOG_API_KEY:-}
- OTEL_COLLECTOR_NEW_RELIC_API_KEY=${OTEL_COLLECTOR_NEW_RELIC_API_KEY:-}
- OTEL_COLLECTOR_ELASTIC_API_KEY=${OTEL_COLLECTOR_ELASTIC_API_KEY:-}
# Tail sampling configuration
- OTEL_TAIL_SAMPLING_SUCCESS_RATE=${OTEL_TAIL_SAMPLING_SUCCESS_RATE:-1}
- OTEL_TAIL_SAMPLING_SLOW_THRESHOLD_MS=${OTEL_TAIL_SAMPLING_SLOW_THRESHOLD_MS:-2000}
- OTEL_TAIL_SAMPLING_ERROR_RATE=${OTEL_TAIL_SAMPLING_ERROR_RATE:-100}
- OTEL_TAIL_SAMPLING_SLOW_RATE=${OTEL_TAIL_SAMPLING_SLOW_RATE:-100}
- OTEL_TAIL_SAMPLING_PAID_TRAFFIC_RATE=${OTEL_TAIL_SAMPLING_PAID_TRAFFIC_RATE:-100}
- OTEL_TAIL_SAMPLING_PAID_TOKENS_RATE=${OTEL_TAIL_SAMPLING_PAID_TOKENS_RATE:-100}
- OTEL_TAIL_SAMPLING_NESTED_BUNDLE_RATE=${OTEL_TAIL_SAMPLING_NESTED_BUNDLE_RATE:-5}
- OTEL_TAIL_SAMPLING_OFFSET_OVERWRITE_RATE=${OTEL_TAIL_SAMPLING_OFFSET_OVERWRITE_RATE:-10}
command: ['--config=/etc/otel/config.yaml']
networks:
- ar-io-network
clickhouse:
image: clickhouse/clickhouse-server:${CLICKHOUSE_IMAGE_TAG:-26.3}
profiles:
- clickhouse
ports:
- ${CLICKHOUSE_PORT_2:-8123}:8123
- ${CLICKHOUSE_PORT_3:-8443}:8443
- ${CLICKHOUSE_PORT:-9000}:9000
ulimits:
nofile:
soft: 262144
hard: 262144
volumes:
- ${CLICKHOUSE_DATA_PATH:-./data/clickhouse}:/var/lib/clickhouse
- ${CLICKHOUSE_LOGS_PATH:-./logs/clickhouse}:/var/log/clickhouse-server
environment:
- CLICKHOUSE_USER=${CLICKHOUSE_USER:-}
- CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD:-}
networks:
- ar-io-network
clickhouse-auto-import:
image: ghcr.io/ar-io/ar-io-clickhouse-auto-import:${CLICKHOUSE_AUTO_IMPORT_IMAGE_TAG:-8a1c0c55ed712e283b55b87f2bc8c7111bbc0482}
profiles:
- clickhouse
build:
context: .
dockerfile: Dockerfile.clickhouse-auto-import
restart: unless-stopped
volumes:
- ${PARQUET_DATA_PATH:-./data/parquet}:/app/data/parquet
- ${SQLITE_DATA_PATH:-./data/sqlite}:/app/data/sqlite:ro
- ${LOCAL_DATASETS_PATH:-./data/datasets}:/app/data/datasets
- ${ETL_STAGING_PATH:-./data/etl/staging}:/app/data/etl/staging
- ${CLICKHOUSE_TTL_RULES_PATH:-./config/clickhouse-ttl-rules.yaml}:/app/config/clickhouse-ttl-rules.yaml:ro
environment:
- DEBUG=${CLICKHOUSE_DEBUG:-}
- AR_IO_HOST=core
- AR_IO_PORT=4000
- ADMIN_API_KEY=${ADMIN_API_KEY:-}
- CLICKHOUSE_HOST=${CLICKHOUSE_HOST:-clickhouse} # defaults to localhost in scripts
- CLICKHOUSE_PORT=${CLICKHOUSE_PORT:-} # defaults to 9000 in scripts
- CLICKHOUSE_USER=${CLICKHOUSE_USER:-} # defaults to 'default' in scripts
- CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD:-} # must be set, no default
- LOCAL_DATASETS_PATH=/app/data/datasets
- ETL_STAGING_PATH=/app/data/etl/staging
- ARNS_ROOT_HOST=${ARNS_ROOT_HOST:-}
- CLICKHOUSE_AUTO_IMPORT_SLEEP_INTERVAL=${CLICKHOUSE_AUTO_IMPORT_SLEEP_INTERVAL:-}
- CLICKHOUSE_AUTO_IMPORT_HEIGHT_INTERVAL=${CLICKHOUSE_AUTO_IMPORT_HEIGHT_INTERVAL:-}
- CLICKHOUSE_AUTO_IMPORT_MAX_ROWS_PER_FILE=${CLICKHOUSE_AUTO_IMPORT_MAX_ROWS_PER_FILE:-}
- CLICKHOUSE_AUTO_IMPORT_IDLE_WAIT_TIMEOUT_S=${CLICKHOUSE_AUTO_IMPORT_IDLE_WAIT_TIMEOUT_S:-}
- CLICKHOUSE_AUTO_IMPORT_EXPORT_MAX_RETRIES=${CLICKHOUSE_AUTO_IMPORT_EXPORT_MAX_RETRIES:-}
- CLICKHOUSE_AUTO_IMPORT_EXPORT_RETRY_DELAY_S=${CLICKHOUSE_AUTO_IMPORT_EXPORT_RETRY_DELAY_S:-}
- CLICKHOUSE_TTL_RULES_PATH=/app/config/clickhouse-ttl-rules.yaml
networks:
- ar-io-network
depends_on:
- core
- clickhouse
observer:
image: ghcr.io/ar-io/ar-io-observer:${OBSERVER_IMAGE_TAG:-ddd3a9c15e426c84da24c9fb7a1107620ccc27c1}
restart: unless-stopped
ports:
- ${OBSERVER_PORT:-5050}:5050
volumes:
- ${TEMP_DATA_PATH:-./data/tmp}:/app/data/tmp
- ${REPORTS_DATA_PATH:-./data/reports}:/app/data/reports
- ${WALLETS_PATH:-./wallets}:/app/wallets
- ${OBSERVER_STATE_PATH:-./data/observer}:/app/data/observer
environment:
- LOG_LEVEL=${OBSERVER_LOG_LEVEL:-}
- OBSERVER_WALLET=${OBSERVER_WALLET:-}
- IO_PROCESS_ID=${IO_PROCESS_ID:-}
- SUBMIT_CONTRACT_INTERACTIONS=${SUBMIT_CONTRACT_INTERACTIONS:-true}
- NUM_ARNS_NAMES_TO_OBSERVE_PER_GROUP=${NUM_ARNS_NAMES_TO_OBSERVE_PER_GROUP:-8}
- REPORT_GENERATION_INTERVAL_MS=${REPORT_GENERATION_INTERVAL_MS:-}
- REPORT_DATA_SINK=${REPORT_DATA_SINK:-}
- TURBO_UPLOAD_SERVICE_URL=${TURBO_UPLOAD_SERVICE_URL:-}
- RUN_OBSERVER=${RUN_OBSERVER:-true}
- MIN_RELEASE_NUMBER=${MIN_RELEASE_NUMBER:-0}
- AR_IO_NODE_RELEASE=${AR_IO_NODE_RELEASE:-77}
- AR_IO_SDK_LOG_LEVEL=${AR_IO_SDK_LOG_LEVEL:-none}
- AO_CU_URL=${AO_CU_URL:-}
- NETWORK_AO_CU_URL=${NETWORK_AO_CU_URL:-}
- AO_MU_URL=${AO_MU_URL:-}
- AO_GATEWAY_URL=${AO_GATEWAY_URL:-}
- AO_GRAPHQL_URL=${AO_GRAPHQL_URL:-}
# Reference Gateway Configuration
- REFERENCE_GATEWAY_HOSTS=${REFERENCE_GATEWAY_HOSTS:-}
- REFERENCE_GATEWAY_NETWORK_ONLY=${REFERENCE_GATEWAY_NETWORK_ONLY:-}
- REFERENCE_GATEWAY_NETWORK_FALLBACK=${REFERENCE_GATEWAY_NETWORK_FALLBACK:-}
- REFERENCE_GATEWAY_CONSENSUS_SIZE=${REFERENCE_GATEWAY_CONSENSUS_SIZE:-}
- REFERENCE_GATEWAY_CONSENSUS_THRESHOLD=${REFERENCE_GATEWAY_CONSENSUS_THRESHOLD:-}
- REFERENCE_GATEWAY_MIN_PASS_RATE=${REFERENCE_GATEWAY_MIN_PASS_RATE:-}
- REFERENCE_GATEWAY_MIN_CONSECUTIVE_PASSES=${REFERENCE_GATEWAY_MIN_CONSECUTIVE_PASSES:-}
- REFERENCE_GATEWAY_MIN_EPOCH_COUNT=${REFERENCE_GATEWAY_MIN_EPOCH_COUNT:-}
- REFERENCE_GATEWAY_MAX_NETWORK_POOL=${REFERENCE_GATEWAY_MAX_NETWORK_POOL:-}
- REFERENCE_GATEWAY_NETWORK_CACHE_TTL_SECONDS=${REFERENCE_GATEWAY_NETWORK_CACHE_TTL_SECONDS:-}
- REFERENCE_GATEWAY_CONSENSUS_MAX_ATTEMPTS=${REFERENCE_GATEWAY_CONSENSUS_MAX_ATTEMPTS:-}
# Continuous Observation Configuration
- OBSERVATIONS_PER_GATEWAY=${OBSERVATIONS_PER_GATEWAY:-}
- OBSERVATION_WINDOW_FRACTION=${OBSERVATION_WINDOW_FRACTION:-}
- OBSERVATION_CYCLE_INTERVAL_MS=${OBSERVATION_CYCLE_INTERVAL_MS:-}
- MAJORITY_VOTE_THRESHOLD=${MAJORITY_VOTE_THRESHOLD:-}
# Offset Observation Configuration
- OFFSET_OBSERVATION_SAMPLE_RATE=${OFFSET_OBSERVATION_SAMPLE_RATE:-}
- OFFSET_OBSERVATION_ENABLED=${OFFSET_OBSERVATION_ENABLED:-}
- OFFSET_OBSERVATION_ENFORCEMENT_ENABLED=${OFFSET_OBSERVATION_ENFORCEMENT_ENABLED:-}
networks:
- ar-io-network
litestream:
image: ghcr.io/ar-io/ar-io-litestream:${LITESTREAM_IMAGE_TAG:-be121fc0ae24a9eb7cdb2b92d01f047039b5f5e8}
build:
context: litestream/
dockerfile: Dockerfile
profiles:
- litestream
volumes:
- ${SQLITE_DATA_PATH:-./data/sqlite}:/app/data/sqlite
environment:
- TVAL_AR_IO_SQLITE_BACKUP_S3_BUCKET_NAME=${AR_IO_SQLITE_BACKUP_S3_BUCKET_NAME:-}
- TVAL_AR_IO_SQLITE_BACKUP_S3_BUCKET_REGION=${AR_IO_SQLITE_BACKUP_S3_BUCKET_REGION:-}
- TVAL_AR_IO_SQLITE_BACKUP_S3_BUCKET_ACCESS_KEY=${AR_IO_SQLITE_BACKUP_S3_BUCKET_ACCESS_KEY:-}
- TVAL_AR_IO_SQLITE_BACKUP_S3_BUCKET_SECRET_KEY=${AR_IO_SQLITE_BACKUP_S3_BUCKET_SECRET_KEY:-}
- TVAL_AR_IO_SQLITE_BACKUP_S3_BUCKET_PREFIX=${AR_IO_SQLITE_BACKUP_S3_BUCKET_PREFIX:-}
networks:
- ar-io-network
autoheal:
image: willfarrell/autoheal@sha256:fd2c5500ab9210be9fa0d365162301eb0d16923f1d9a36de887f5d1751c6eb8c
network_mode: none
restart: always
environment:
- AUTOHEAL_CONTAINER_LABEL=autoheal
- AUTOHEAL_ONLY_MONITOR_RUNNING=false
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
volumes:
envoy-eds-data:
networks:
ar-io-network:
name: ${DOCKER_NETWORK_NAME:-ar-io-network}