This is a recommended release focused on on-demand data item resolution and response header enrichment. Key highlights include tag and verification response headers that expose transaction tags and cryptographic metadata directly in HTTP responses, on-demand data item metadata resolution that resolves unindexed data items by parsing ANS-104 bundle binaries on the fly, HyperBEAM as a root TX offset source for efficient bundle navigation without full downloads, and GraphQL on-demand transaction resolution for querying unindexed data items. It also adds configurable chunk GET retry behavior to reduce worst-case retrieval times and Prometheus metrics for root TX semaphore observability.
Added
-
Tag and Verification Response Headers: Data responses on
/raw/:idand/:idnow includeX-Arweave-Tag-*headers with transaction/data item tags, plus verification headers (X-Arweave-Signature,X-Arweave-Owner,X-Arweave-Owner-Address,X-Arweave-Target,X-Arweave-Anchor,X-Arweave-Signature-Type). Enabled by default (ARWEAVE_TAG_RESPONSE_HEADERS_ENABLED=true). Uses a fast local-only resolution path (LMDB txStore -> LRU cache -> GQL DB) with background indexing for uncached items. Includes a configurable byte budget (ARWEAVE_TAG_RESPONSE_HEADERS_MAX_BYTES, default 8KB) and tag count cap (ARWEAVE_TAG_RESPONSE_HEADERS_MAX, default 100). For L2 data item signatures and owner keys,WRITE_ANS104_DATA_ITEM_DB_SIGNATURES=trueis also required. -
On-Demand Data Item Metadata Resolution: Data items not yet indexed locally are resolved on-demand by discovering the root bundle, parsing the binary header, and extracting signature/owner/tags. Results are cached in an LRU cache and persisted to the database for future requests. Background resolution is capped at 1 concurrent operation (configurable via
TX_METADATA_RESOLVE_CONCURRENCY) with fail-fast semantics. -
HyperBEAM Root TX Offset Source (PE-9043): HyperBEAM can now be used as a root transaction offset source for on-demand data item resolution. Uses offset-guided recursive bundle index navigation to extract complete data item metadata without downloading full bundles. Controlled by
HYPERBEAM_ROOT_TX_ENABLEDandHYPERBEAM_ENDPOINT(default:arweave.net). -
Configurable Chunk GET Retry Behavior (PE-9042): Arweave chunk retrieval retry count and geometry timeout are now configurable, reducing worst-case chunk retrieval time from ~115s to ~15s. New env vars:
ARWEAVE_CHUNK_RETRY_COUNT(default: 5),ARWEAVE_TX_GEOMETRY_TIMEOUT_MS(default: 5000),ARWEAVE_TX_GEOMETRY_TIMEOUT_RETRIES(default: 2). -
GraphQL On-Demand Transaction Resolution: The
transaction(id)GraphQL query can now resolve unindexed data items on-demand by extracting metadata from ANS-104 bundle binaries. Enabled by default (GRAPHQL_ON_DEMAND_RESOLUTION_ENABLED=true). Includes a configurable timeout (GRAPHQL_ON_DEMAND_RESOLUTION_TIMEOUT_MS, default 5s) and concurrency limit (GRAPHQL_ON_DEMAND_RESOLUTION_MAX_CONCURRENT, default 1). Only applies to single-ID lookups; the pluraltransactions(...)query is unaffected. -
SignatureType in GraphQL: The
signatureTypefield is now surfaced in GraphQL transaction responses for data items. -
Root TX Semaphore Prometheus Metrics: New Prometheus metrics for root TX resolution semaphore observability, including acquire/release/timeout counters and queue depth gauge.
Changed
-
Root TX Lookup Order:
ROOT_TX_LOOKUP_ORDERreordered to prefer GraphQL over HyperBEAM and CDB for faster local resolution. -
HyperBEAM Request Timeout: Default HyperBEAM request timeout lowered to 500ms.
Docker Images
| Service | Image |
|---|---|
| core | ghcr.io/ar-io/ar-io-core:6e023ad1dbdfac67fdac1e62449bedfef1bb7fe4
|
| envoy | ghcr.io/ar-io/ar-io-envoy:6934e519fb98a46da4c17bdfa51d66225428b7c0
|
| clickhouse-auto-import | ghcr.io/ar-io/ar-io-clickhouse-auto-import:dec86f85bb9585658e424f393083bf6d69a7c5e1
|
| observer | ghcr.io/ar-io/ar-io-observer:9356a3d5cc2ed9ac406a62c3a01450ae80ddc6c3
|
| litestream | ghcr.io/ar-io/ar-io-litestream:be121fc0ae24a9eb7cdb2b92d01f047039b5f5e8
|
| redis | redis:7
|
| clickhouse | clickhouse/clickhouse-server:25.4
|
| otel-collector | otel/opentelemetry-collector-contrib:0.119.0
|