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==\",\"signermask\":1}]"
}
},
"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, signermask} objects
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, signermask 1
batch-poster.enabletrue
batch-poster.max-size90000Lower than the NodeConfig default of 100000