This release introduces queued transaction submission via #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 = 8TxWorkerAccounts 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.
What's Changed
- chore: fix Go init order + tidy up flags by @hexcow in #4522
- config(nodebuilder/header): bumps go-header, removes trustingPeriod by @renaynay in #4524
- fix(discovery): remove panic in switch statement by @vgonkivs in #4526
- fix(api/client-lib): fix close order for Celestia client lib by @walldiss in #4520
- fix(share/shwap): parallelise namespace data collection by @vgonkivs in #4536
- chore(deps): bump github.com/ulikunitz/xz from 0.5.12 to 0.5.14 by @dependabot[bot] in #4512
- chore(deps): bump actions/setup-go from 5 to 6 by @dependabot[bot] in #4533
- chore(deps): bump actions/setup-node from 4 to 5 by @dependabot[bot] in #4531
- chore(deps): bump codecov/codecov-action from 4.5.0 to 5.5.1 by @dependabot[bot] in #4532
- dep: bump go-square by @vgonkivs in #4540
- chore: bump go-header by @Wondertan in #4544
- fix(pruner): check nil context by @Wondertan in #4546
- deps(go.mod): Bump app by @renaynay in #4547
- chore(deps): bump celestiaorg/.github from 0.4.5 to 0.6.4 by @dependabot[bot] in #4514
- Revert "dep: bump go-square (#4540)" by @renaynay in #4560
- fix(cel-shed): start the store by @Wondertan in #4566
- deps(go.mod): Bump celestia-app to newest v5 release by @renaynay in #4584
- chore: bump go-header by @Wondertan in #4589
- chore: bump go-header for tastora by @Wondertan in #4591
- fix(share/shwap/p2p/shrex): defer stream close in doRequest by @renaynay in #4596
- shwap(shrex/server): fix log level in shrex server by @vgonkivs in #4607
- fix(core): validate TLS when XTokenPath is set; clarify XTokenPath semantics by @Forostovec in #4475
- test: e2e sanity test with blob, das, header sync and p2p by @gupadhyaya in #4508
- merge changes from release/v0.27.0 by @vgonkivs in #4616
- chore: bump tastora version by @chatton in #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 #4635
- refactor(blob): refactor blob's commitment proof verification method by @vgonkivs in #4637
- chore: bump app v6.2.0 arabica (#4652) by @renaynay in #4654
- feat(state): Introduce queued submission by @renaynay in #4655
- misc(nodebuilder/pruner): add more context to log by @renaynay in #4656
- chore: bump to mocha release by @evan-forbes in #4660
New Contributors
- @hexcow made their first contribution in #4522
- @Forostovec made their first contribution in #4475
Full Changelog: v0.27.5-mocha...v0.28.2-mocha