Skip to content

dbft: refactor transactions management - #164

Merged
roman-khimov merged 2 commits into
masterfrom
blob-txs
Oct 1, 2026
Merged

roman-khimov merged 2 commits into
masterfrom
blob-txs

Conversation

@AnnaShaleva

@AnnaShaleva AnnaShaleva commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

A part of nspcc-dev/neo-go#4325. An alternative to #160 aimed to still support the "missing transactions" part required for NeoX networks (ref. bane-labs/go-ethereum#655 (comment)).

TODO:

  • Finalize NeoX upgrade and verify blob transactions can be processed with the updated API.
  • Port to NeoGo.
  • Benchmark.

@AnnaShaleva
AnnaShaleva force-pushed the blob-txs branch 2 times, most recently from bd52db3 to 3edc889 Compare September 24, 2026 14:15
@AnnaShaleva AnnaShaleva changed the title dbft: replace GetTx with GetTxes callback dbft: refactor transactions management Sep 24, 2026
@AnnaShaleva
AnnaShaleva force-pushed the blob-txs branch 3 times, most recently from dbd6fcd to 4ec9b34 Compare September 28, 2026 14:20
@codecov

codecov Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 36.84211% with 36 lines in your changes missing coverage. Please review.
✅ Project coverage is 61.75%. Comparing base (0a2c3a4) to head (789dd0a).

Files with missing lines Patch % Lines
internal/consensus/constructors.go 0.00% 12 Missing ⚠️
internal/consensus/recovery_message.go 0.00% 7 Missing ⚠️
internal/consensus/block.go 0.00% 5 Missing ⚠️
internal/consensus/amev_preBlock.go 0.00% 4 Missing ⚠️
internal/consensus/prepare_request.go 50.00% 4 Missing ⚠️
internal/consensus/consensus.go 0.00% 2 Missing ⚠️
config.go 0.00% 1 Missing ⚠️
internal/simulation/main.go 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #164      +/-   ##
==========================================
- Coverage   62.34%   61.75%   -0.59%     
==========================================
  Files          32       32              
  Lines        1572     1569       -3     
==========================================
- Hits          980      969      -11     
- Misses        591      599       +8     
  Partials        1        1              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@AnnaShaleva
AnnaShaleva force-pushed the blob-txs branch 3 times, most recently from 3f5ae09 to a94a0d3 Compare September 28, 2026 14:46
AnnaShaleva added a commit to bane-labs/go-ethereum that referenced this pull request Sep 28, 2026
Implement nspcc-dev/neo-go#4325, fetch
nspcc-dev/dbft#164.

Solves the problem described in
#576 for non-blob
transactions at the consensus level by adding the full list of
serialized transactions to the PrepareRequest. For blob transactions the
issue is still relevant. Missing blob sidecars will be requested in a
separate callback and forwarded to dBFT once collected.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
AnnaShaleva added a commit to bane-labs/go-ethereum that referenced this pull request Sep 29, 2026
Implement nspcc-dev/neo-go#4325, fetch
nspcc-dev/dbft#164.

Solves the problem described in
#576 for non-blob
transactions at the consensus level by adding the full list of
serialized transactions to the PrepareRequest. For blob transactions the
issue is still relevant. Missing blob sidecars will be requested in a
separate callback and forwarded to dBFT once collected.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
@AnnaShaleva AnnaShaleva added this to the v0.5.0 milestone Oct 1, 2026
@AnnaShaleva
AnnaShaleva marked this pull request as ready for review October 1, 2026 11:18
@AnnaShaleva
AnnaShaleva force-pushed the blob-txs branch 2 times, most recently from f58ae94 to 0a3f208 Compare October 1, 2026 11:44
Comment thread context.go Outdated
Comment thread context.go Outdated
1. Drop `GetTx` callback. PrepareRequest interface can deal with both
   present/missing transactions in its own `Transactions` callback
   withour allocating extra slice/map.
2. Drop `TransactionHashes`, convert `Transactions` to a slice. One
   data structure is enough to manage proposed transactions without
   extra allocations.
3. Convert `MissingTransactions` from slice to map to hanve an
   instant access to the missing transaction index in the proposal.

A part of nspcc-dev/neo-go#4325. An alternative to
#160.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
@roman-khimov
roman-khimov merged commit fe0ab6a into master Oct 1, 2026
10 of 12 checks passed
@roman-khimov
roman-khimov deleted the blob-txs branch October 1, 2026 15:20
AnnaShaleva added a commit to bane-labs/go-ethereum that referenced this pull request Oct 2, 2026
Implement nspcc-dev/neo-go#4325, fetch
nspcc-dev/dbft#164.

Solves the problem described in
#576 for non-blob
transactions at the consensus level by adding the full list of
serialized transactions to the PrepareRequest. For blob transactions the
issue is still relevant. Missing blob sidecars will be requested in a
separate callback and forwarded to dBFT once collected.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
AnnaShaleva added a commit to bane-labs/go-ethereum that referenced this pull request Oct 2, 2026
Implement nspcc-dev/neo-go#4325, fetch
nspcc-dev/dbft#164.

Solves the problem described in
#576 for non-blob
transactions at the consensus level by adding the full list of
serialized transactions to the PrepareRequest. For blob transactions the
issue is still relevant. Missing blob sidecars will be requested in a
separate callback and forwarded to dBFT once collected.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants