Skip to main content

DAC configuration defaults

Default settings for a Data Availability Committee (AnyTrust) chain as defined in the Arbitrum Orbit SDK.

  • src/prepareChainConfig.ts
  • src/prepareNodeConfig.ts
  • src/types/NodeConfig.generated.ts

Chain config defaults

Set at rollup creation time.

{
"arbitrum": {
"EnableArbOS": true,
"AllowDebugPrecompiles": false,
"DataAvailabilityCommittee": false,
"InitialArbOSVersion": 51,
"GenesisBlockNum": 0,
"MaxCodeSize": 24576,
"MaxInitCodeSize": 49152
}
}

To enable DAC, override DataAvailabilityCommittee to true at deployment:

prepareChainConfig({
chainId: 12345,
arbitrum: {
InitialChainOwner: '0x...',
DataAvailabilityCommittee: true,
},
});

Node config defaults (when DAC is enabled)

Generated by prepareNodeConfig() when chainConfig.arbitrum.DataAvailabilityCommittee is true.

{
"node": {
"data-availability": {
"enable": true,
"sequencer-inbox-address": "<from coreContracts>",
"parent-chain-node-url": "<from parentChainRpcUrl>",
"rest-aggregator": {
"enable": true,
"urls": ["http://localhost:9877"]
},
"rpc-aggregator": {
"enable": true,
"assumed-honest": 1,
"backends": "[{\"url\":\"http://localhost:9876\",\"pubkey\":\"YAAA...AAA==\"}]"
}
},
"batch-poster": {
"enable": true,
"max-size": 90000,
"parent-chain-wallet": {
"private-key": "<batchPosterPrivateKey>"
}
}
}
}

Full default values reference

Every DAC-related setting with its documented default, organized by config section.

node.data-availability

KeyDefaultDescription
enablefalseEnable AnyTrust Data Availability mode
panic-on-errorfalseFail immediately on DAS errors (not recommended)
parent-chain-connection-attempts15Parent chain RPC retries (standalone daserver only; 0 = infinite)
parent-chain-node-urlParent chain RPC URL (standalone daserver only)
request-timeout5sTimeout for Store requests
sequencer-inbox-addressSequencerInbox contract address on parent chain

node.data-availability.rest-aggregator

KeyDefaultDescription
enablefalseEnable REST retrieval of batch data
max-per-endpoint-stats20Latency/success-rate stats entries per endpoint
online-url-listURL to a remote list of REST DAS endpoint URLs
online-url-list-fetch-interval1h0m0sHow often to re-fetch the online URL list
strategysimple-explore-exploitEndpoint selection strategy
strategy-update-interval10sHow often to refresh strategy with latency/error data
urls[]Static list of REST DAS endpoint URLs
wait-before-try-next2sTime before trying the next set of REST endpoints

node.data-availability.rest-aggregator.simple-explore-exploit-strategy

KeyDefaultDescription
exploit-iterations1000Consecutive GetByHash calls using best-latency endpoints before switching to explore
explore-iterations20Consecutive GetByHash calls using random endpoints before switching to exploit

node.data-availability.rest-aggregator.sync-to-storage

KeyDefaultDescription
delay-on-error1sWait time before retrying after sync error
eagerfalseEagerly sync batch data using L1 as index (vs lazy)
eager-lower-bound-blockStarting L1 block for eager sync (only if no prior state)
ignore-write-errorstrueLog-only on write failures during sync
parent-chain-blocks-per-read100Max L1 blocks to read per eager sync poll
retention-period360h0m0sHow long to retain synced data
state-dirDirectory to persist sync progress
sync-expired-datatrueSync expired data (needed for mirror configs)

node.data-availability.rpc-aggregator

KeyDefaultDescription
assumed-honestH value; required signatures K = N + 1 - H
backendsnullJSON array of {url, pubkey} objects. The aggregator assigns each backend a signersMask of 1 << i based on its index in the array, so member order must match the position of each public key in the onchain keyset.
enablefalseEnable RPC storage of batch data (batch poster only)

node.data-availability.rpc-aggregator.das-rpc-client

KeyDefaultDescription
enable-chunked-storetrueSend data to DAS in chunks instead of all at once
server-urlDAS server URL

node.data-availability.rpc-aggregator.das-rpc-client.data-stream

KeyDefaultDescription
max-store-chunk-body-size5242880 (5 MB)Maximum HTTP body size per chunk

node.data-availability.rpc-aggregator.das-rpc-client.data-stream.rpc-methods

KeyDefaultDescription
finalize-streamdas_commitChunkedStoreRPC method to finalize a chunked store session
start-streamdas_startChunkedStoreRPC method to initiate a chunked store session
stream-chunkdas_sendChunkRPC method to send a data chunk

node.batch-poster (DAC-relevant settings)

KeyDefaultDescription
das-retention-period360h0m0sPeriod DASes retain stored batches in AnyTrust mode
disable-dap-fallback-store-data-on-chainfalseIf true, disables fallback to on-chain batch posting when DA fails
enablefalseEnable batch posting
max-size100000Maximum estimated compressed batch size (bytes)
error-delay10sDelay after batch posting error before retry
extra-batch-gas50000Extra gas added to batch posting estimate
max-delay1h0m0sMaximum batch posting delay
max-empty-batch-delay72h0m0sMaximum delay before posting an empty batch
poll-interval10sInterval to check for ready batches
check-batch-correctnesstrueVerify batch against inbox multiplexer
compression-level11Batch compression level
l1-block-bound-bypass1h0m0sPost even if outside L1 bounds, within this margin
delay-buffer-always-updatabletrueAlways treat delay buffer as updatable
delay-buffer-threshold-margin25Blocks before delay buffer threshold to post batch

node.da-provider (Newer DAProvider interface)

KeyDefaultDescription
enablefalseEnable DAProvider client
store-rpc-methoddaprovider_storeSingle-shot store RPC method name
use-data-streamingfalseUse chunked streaming protocol for large payloads
with-writerfalseDAProvider server supports writer interface

node.da-provider.data-stream

KeyDefaultDescription
max-store-chunk-body-size5242880 (5 MB)Maximum HTTP body size per chunk

node.da-provider.data-stream.rpc-methods

KeyDefaultDescription
finalize-streamdaprovider_commitChunkedStoreRPC method to finalize a chunked store session
start-streamdaprovider_startChunkedStoreRPC method to initiate a chunked store session
stream-chunkdaprovider_sendChunkRPC method to send a data chunk

node.da-provider.rpc

KeyDefaultDescription
arg-log-limit2048Limit size of arguments in log entries
retries3Retries on failure (0 = one attempt)
retry-errorswebsocket: close.*|dial tcp .*|.*i/o timeout|.*connection reset by peer|.*connection refusedRegex for auto-retried errors
websocket-message-size-limit268435456 (256 MB)WebSocket message size limit

SDK-applied defaults(prepareNodeConfig)

When prepareNodeConfig() detects DataAvailabilityCommittee: true, it applies these concrete values. Source: src/prepareNodeConfig.ts:158-182

SettingValue AppliedNotes
data-availability.enabletrueOverrides the false default
data-availability.sequencer-inbox-addresscoreContracts.sequencerInboxFrom deployment output
data-availability.parent-chain-node-urlparentChainRpcUrlFrom params
rest-aggregator.enabletrueOverrides the false default
rest-aggregator.urls["<dasServerUrl>:9877"]Falls back to http://localhost:9877
rpc-aggregator.enabletrueOverrides the false default
rpc-aggregator.assumed-honest1Single honest member (dev default)
rpc-aggregator.backendsJSON with 1 backendURL at <dasServerUrl>:9876
batch-poster.enabletrue
batch-poster.max-size90000Lower than the NodeConfig default of 100000