This release introduces queued transaction submission via https://github.com/celestiaorg/celestia-node/pull/4620.
Queued Transaction Submission ( Parallel Transaction Submission Lanes )
Node runners enable this feature by setting TxWorkerAccounts in the state config:
[State]
DefaultKeyName = "my_celes_key"
DefaultBackendName = "test"
EstimatorAddress = ""
EnableEstimatorTLS = false
TxWorkerAccounts = 8
TxWorkerAccounts defines how many parallel lanes the TxClient will initialize. These lanes are subaccounts funded by the default account to submit PayForBlob transactions in parallel, bypassing account sequence limits and enabling higher throughput (≥ TxWorkerAccounts PayForBlob txs per block).
Example: TxWorkerAccounts = 8 → 7 funded subaccounts + 1 default account, allowing at least 8 PayForBlob txs per block.
⚠️ Important Notes
- Not suitable for implementations requiring sequential ordering.
- Only valid for unordered transaction workflows.
- Parallel submission works only with the default account. Specifying another account in
TxConfigbypasses it.
Synchronous Submission
TxWorkerAccounts of 1 → synchronous/queued transaction submission.
- Each tx queues until the previous is confirmed.
- Preserves ordering and avoids sequence mismatches.
- Throughput: ~1 PayForBlob tx per block.
⚠️ Important Notes
- If an account other than the default account is specified in
TxConfig, the queue is bypassed and txs enter the mempool directly without waiting on confirmations.
Default Behavior (immediate transaction submission)
TxWorkerAccounts defaults to 0 → queued submission disabled. All PayForBlob txs are submitted immediately. This is exactly the same behaviour as before with txs entering the mempool directly without waiting on confirmations.
Celestia-Client
The queued submission feature is not available in this release and will be added in the subsequent one.
What's Changed
- chore: fix Go init order + tidy up flags by @hexcow in https://github.com/celestiaorg/celestia-node/pull/4522
- config(nodebuilder/header): bumps go-header, removes trustingPeriod by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4524
- fix(discovery): remove panic in switch statement by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4526
- fix(api/client-lib): fix close order for Celestia client lib by @walldiss in https://github.com/celestiaorg/celestia-node/pull/4520
- fix(share/shwap): parallelise namespace data collection by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4536
- chore(deps): bump github.com/ulikunitz/xz from 0.5.12 to 0.5.14 by @dependabot[bot] in https://github.com/celestiaorg/celestia-node/pull/4512
- chore(deps): bump actions/setup-go from 5 to 6 by @dependabot[bot] in https://github.com/celestiaorg/celestia-node/pull/4533
- chore(deps): bump actions/setup-node from 4 to 5 by @dependabot[bot] in https://github.com/celestiaorg/celestia-node/pull/4531
- chore(deps): bump codecov/codecov-action from 4.5.0 to 5.5.1 by @dependabot[bot] in https://github.com/celestiaorg/celestia-node/pull/4532
- dep: bump go-square by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4540
- chore: bump go-header by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/4544
- fix(pruner): check nil context by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/4546
- deps(go.mod): Bump app by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4547
- chore(deps): bump celestiaorg/.github from 0.4.5 to 0.6.4 by @dependabot[bot] in https://github.com/celestiaorg/celestia-node/pull/4514
- Revert "dep: bump go-square (#4540)" by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4560
- fix(cel-shed): start the store by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/4566
- deps(go.mod): Bump celestia-app to newest v5 release by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4584
- chore: bump go-header by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/4589
- chore: bump go-header for tastora by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/4591
- fix(share/shwap/p2p/shrex): defer stream close in doRequest by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4596
- shwap(shrex/server): fix log level in shrex server by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4607
- fix(core): validate TLS when XTokenPath is set; clarify XTokenPath semantics by @Forostovec in https://github.com/celestiaorg/celestia-node/pull/4475
- test: e2e sanity test with blob, das, header sync and p2p by @gupadhyaya in https://github.com/celestiaorg/celestia-node/pull/4508
- merge changes from release/v0.27.0 by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4616
- chore: bump tastora version by @chatton in https://github.com/celestiaorg/celestia-node/pull/4550
- fix(state): pass long lived core accessor ctx into txclient setup as ctx is now used to control lifecycle of tx workers by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4635
- refactor(blob): refactor blob's commitment proof verification method by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4637
- chore: bump app v6.2.0 arabica (#4652) by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4654
- feat(state): Introduce queued submission by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4655
- misc(nodebuilder/pruner): add more context to log by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4656
- chore: bump to mocha release by @evan-forbes in https://github.com/celestiaorg/celestia-node/pull/4660
New Contributors
- @hexcow made their first contribution in https://github.com/celestiaorg/celestia-node/pull/4522
- @Forostovec made their first contribution in https://github.com/celestiaorg/celestia-node/pull/4475
Full Changelog: https://github.com/celestiaorg/celestia-node/compare/v0.26.4...v0.28.2