Repository navigation
dbft: construct block on watch-only if all transactions are present - #170
Merged
Merged
Conversation
Member
Author
|
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #170 +/- ##
==========================================
+ Coverage 62.09% 62.13% +0.03%
==========================================
Files 32 32
Lines 1562 1561 -1
==========================================
Hits 970 970
+ Misses 591 590 -1
Partials 1 1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
63e6948 removes the ability to construct block on watch-only nodes in case if all proposed transactions are present in the node's mempool. It's a bug, so get back `d.createAndCheckBlock` call for watch-only nodes. Note that in case if a proposed transaction is missing from the node's mempool, watch-only still won't be able to construct new block, as intended in 63e6948. Fixes problem described in bane-labs/go-ethereum#655 (comment). Verified on NeoX privnet. Before: ``` INFO [10-27|14:00:34.269] New block in the chain "dbft index"=5 "chain index"=5 hash=0x8ea2bc9b164d45465a820ddc15376b1a1e9e6d3d5b76b05e966579dcadd6eb19 "parent hash"=0x27cb6b1bf9a3f085ed30554f4703b74f88b111d6fe3b8017fa33ac50b023e4ec primary=1 coinbase=0x1212000000000000000000000000000000000003 "mix digest"=0x953fe70afae6653830cde4febd89dfbfc6b4965fc0e24df4ed8a588bfd11b78d INFO [10-27|14:00:34.269] Starting work on payload id=0x037dc0eae4a3443c INFO [10-27|14:00:34.270] Updated payload id=0x037dc0eae4a3443c number=6 hash=1a7e95..25271d txs=0 withdrawals=0 gas=0 fees=0 root=85740d..073516 elapsed="368.736µs" INFO [10-27|14:00:34.270] Commit new sealing work number=6 sealhash=a1625d..d38fd4 txs=0 withdrawals=0 gas=0 elapsed=1.395ms INFO [10-27|14:00:34.344] Fetching latest sealing proposal "desired number"=6 INFO [10-27|14:00:34.344] Sealing proposal updated number=6 sealhash=a1625d..d38fd4 "parent hash"=8ea2bc..d6eb19 txs=0 INFO [10-27|14:00:34.344] DKG task watcher currentHeight=5 watchListLength=0 2026-10-27T14:00:34.344+0300 INFO initializing dbft {"height": 6, "view": 0, "index": -1, "role": "WatchOnly"} INFO [10-27|14:00:34.391] New local node record seq=1,793,098,812,400 id=27b0084dd166b83c ip=127.0.0.1 udp=30305 tcp=30305 2026-10-27T14:00:39.248+0300 DEBUG received message {"type": "PrepareRequest", "from": 2, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.248+0300 INFO received PrepareRequest {"validator": 2, "tx": 0} 2026-10-27T14:00:39.249+0300 DEBUG received message {"type": "PrepareRequest", "from": 2, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.249+0300 DEBUG ignoring PrepareRequest {"sor": true, "viewChanging": false, "moreThanF": true} 2026-10-27T14:00:39.250+0300 DEBUG received message {"type": "PrepareResponse", "from": 3, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.250+0300 INFO received PrepareResponse {"validator": 3} 2026-10-27T14:00:39.250+0300 DEBUG received message {"type": "PrepareResponse", "from": 1, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.250+0300 INFO received PrepareResponse {"validator": 1} 2026-10-27T14:00:39.250+0300 DEBUG received message {"type": "PrepareResponse", "from": 0, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.250+0300 INFO received PrepareResponse {"validator": 0} 2026-10-27T14:00:39.251+0300 DEBUG received message {"type": "PrepareResponse", "from": 0, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.251+0300 DEBUG ignoring PrepareResponse {"dup": true, "sor": true, "viewChanging": false, "moreThanF": false} 2026-10-27T14:00:39.251+0300 DEBUG received message {"type": "PrepareResponse", "from": 0, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.251+0300 DEBUG ignoring PrepareResponse {"dup": true, "sor": true, "viewChanging": false, "moreThanF": false} 2026-10-27T14:00:39.251+0300 DEBUG received message {"type": "PrepareResponse", "from": 0, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.251+0300 DEBUG ignoring PrepareResponse {"dup": true, "sor": true, "viewChanging": false, "moreThanF": false} 2026-10-27T14:00:39.251+0300 DEBUG received message {"type": "PreCommit", "from": 0, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.251+0300 INFO received PreCommit {"validator": 0} 2026-10-27T14:00:39.251+0300 DEBUG not enough PreCommits to process PreBlock {"count": 1} 2026-10-27T14:00:39.251+0300 DEBUG received message {"type": "PreCommit", "from": 1, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.251+0300 INFO received PreCommit {"validator": 1} 2026-10-27T14:00:39.251+0300 DEBUG not enough PreCommits to process PreBlock {"count": 2} 2026-10-27T14:00:39.251+0300 DEBUG received message {"type": "PrepareResponse", "from": 1, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.251+0300 DEBUG ignoring PrepareResponse {"dup": true, "sor": true, "viewChanging": false, "moreThanF": true} 2026-10-27T14:00:39.251+0300 DEBUG received message {"type": "PreCommit", "from": 2, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.251+0300 INFO received PreCommit {"validator": 2} 2026-10-27T14:00:39.251+0300 INFO processing PreBlock {"height": 6, "view": 0, "tx_count": 0, "preCommit_count": 3} 2026-10-27T14:00:39.252+0300 DEBUG received message {"type": "PreCommit", "from": 1, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.253+0300 DEBUG received message {"type": "PreCommit", "from": 3, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.253+0300 INFO received PreCommit {"validator": 3} 2026-10-27T14:00:39.253+0300 DEBUG received message {"type": "PreCommit", "from": 3, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.253+0300 DEBUG received message {"type": "PreCommit", "from": 3, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.254+0300 DEBUG received message {"type": "Commit", "from": 2, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.254+0300 INFO received Commit {"validator": 2} WARN [10-27|14:00:39.254] can't construct block due to missing state: proposal verification failed 2026-10-27T14:00:39.254+0300 DEBUG received message {"type": "Commit", "from": 3, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.255+0300 INFO received Commit {"validator": 3} WARN [10-27|14:00:39.255] can't construct block due to missing state: proposal verification failed 2026-10-27T14:00:39.255+0300 DEBUG received message {"type": "Commit", "from": 2, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.255+0300 DEBUG received message {"type": "Commit", "from": 0, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.255+0300 INFO received Commit {"validator": 0} WARN [10-27|14:00:39.255] can't construct block due to missing state: proposal verification failed 2026-10-27T14:00:39.256+0300 DEBUG received message {"type": "Commit", "from": 1, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.256+0300 INFO received Commit {"validator": 1} WARN [10-27|14:00:39.256] can't construct block due to missing state: proposal verification failed 2026-10-27T14:00:39.256+0300 DEBUG received message {"type": "Commit", "from": 1, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.256+0300 DEBUG received message {"type": "Commit", "from": 1, "height": 6, "view": 0, "my_height": 6, "my_view": 0} 2026-10-27T14:00:39.256+0300 DEBUG received message {"type": "Commit", "from": 1, "height": 6, "view": 0, "my_height": 6, "my_view": 0} INFO [10-27|14:00:39.272] Imported new potential chain segment number=6 hash=553835..d8e32b blocks=1 txs=0 mgas=0.000 elapsed=4.733ms mgasps=0.000 triedirty=0.00B INFO [10-27|14:00:39.273] Chain head was updated number=6 hash=553835..d8e32b root=85740d..073516 elapsed="55.575µs" INFO [10-27|14:00:39.273] New block in the chain "dbft index"=6 "chain index"=6 hash=0x553835ea6f9e1b06686100fccfbea1639f73a9d95738626762a1a75fcbd8e32b "parent hash"=0x8ea2bc9b164d45465a820ddc15376b1a1e9e6d3d5b76b05e966579dcadd6eb19 primary=2 coinbase=0x1212000000000000000000000000000000000003 "mix digest"=0x953fe70afae6653830cde4febd89dfbfc6b4965fc0e24df4ed8a588bfd11b78d INFO [10-27|14:00:39.273] Starting work on payload id=0x0349dd3e497cb527 INFO [10-27|14:00:39.273] Updated payload id=0x0349dd3e497cb527 number=7 hash=c4f5e5..200139 txs=0 withdrawals=0 gas=0 fees=0 root=85740d..073516 elapsed="236.697µs" INFO [10-27|14:00:39.274] Commit new sealing work number=7 sealhash=3fb0a3..1a0edb txs=0 withdrawals=0 gas=0 elapsed="997.523µs" INFO [10-27|14:00:39.344] Fetching latest sealing proposal "desired number"=7 ``` After: ``` INFO [10-27|14:03:45.673] New block in the chain "dbft index"=9 "chain index"=9 hash=0xad188f40bf7fb15d6a88646fabe59ab4981d245572ad5b6067112498ea87a76e "parent hash"=0xc34fbd16ea9556f2e0fe76ebc3252976598bbbc9664403d6ad28967415003c04 primary=1 coinbase=0x1212000000000000000000000000000000000003 "mix digest"=0x953fe70afae6653830cde4febd89dfbfc6b4965fc0e24df4ed8a588bfd11b78d INFO [10-27|14:03:45.673] Fetching latest sealing proposal "desired number"=10 INFO [10-27|14:03:45.673] DKG task watcher currentHeight=9 watchListLength=0 INFO [10-27|14:03:45.673] Sealing proposal updated number=10 sealhash=aa733f..234dc6 "parent hash"=ad188f..87a76e txs=0 2026-10-27T14:03:45.673+0300 INFO initializing dbft {"height": 10, "view": 0, "index": -1, "role": "WatchOnly"} 2026-10-27T14:03:45.674+0300 DEBUG received message {"type": "Commit", "from": 1, "height": 9, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:45.674+0300 DEBUG ignoring old height {"height": 9} 2026-10-27T14:03:45.674+0300 DEBUG received message {"type": "Commit", "from": 1, "height": 9, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:45.674+0300 DEBUG ignoring old height {"height": 9} 2026-10-27T14:03:45.674+0300 DEBUG received message {"type": "Commit", "from": 1, "height": 9, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:45.674+0300 DEBUG ignoring old height {"height": 9} 2026-10-27T14:03:45.674+0300 DEBUG received message {"type": "Commit", "from": 1, "height": 9, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:45.674+0300 DEBUG ignoring old height {"height": 9} 2026-10-27T14:03:45.674+0300 DEBUG received message {"type": "Commit", "from": 3, "height": 9, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:45.674+0300 DEBUG ignoring old height {"height": 9} 2026-10-27T14:03:45.674+0300 DEBUG received message {"type": "Commit", "from": 0, "height": 9, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:45.674+0300 DEBUG ignoring old height {"height": 9} 2026-10-27T14:03:45.674+0300 DEBUG received message {"type": "Commit", "from": 0, "height": 9, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:45.674+0300 DEBUG ignoring old height {"height": 9} 2026-10-27T14:03:45.674+0300 DEBUG received message {"type": "Commit", "from": 0, "height": 9, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:45.674+0300 DEBUG ignoring old height {"height": 9} 2026-10-27T14:03:50.574+0300 DEBUG received message {"type": "PrepareRequest", "from": 2, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.574+0300 INFO received PrepareRequest {"validator": 2, "tx": 0} 2026-10-27T14:03:50.576+0300 DEBUG received message {"type": "PrepareResponse", "from": 1, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.576+0300 INFO received PrepareResponse {"validator": 1} 2026-10-27T14:03:50.576+0300 DEBUG received message {"type": "PrepareResponse", "from": 3, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.576+0300 INFO received PrepareResponse {"validator": 3} 2026-10-27T14:03:50.577+0300 DEBUG received message {"type": "PrepareResponse", "from": 0, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.577+0300 INFO received PrepareResponse {"validator": 0} 2026-10-27T14:03:50.577+0300 DEBUG received message {"type": "PrepareResponse", "from": 0, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.577+0300 DEBUG ignoring PrepareResponse {"dup": true, "sor": true, "viewChanging": false, "moreThanF": false} 2026-10-27T14:03:50.577+0300 DEBUG received message {"type": "PrepareResponse", "from": 0, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.577+0300 DEBUG ignoring PrepareResponse {"dup": true, "sor": true, "viewChanging": false, "moreThanF": false} 2026-10-27T14:03:50.577+0300 DEBUG received message {"type": "PrepareResponse", "from": 0, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.577+0300 DEBUG ignoring PrepareResponse {"dup": true, "sor": true, "viewChanging": false, "moreThanF": false} 2026-10-27T14:03:50.577+0300 DEBUG received message {"type": "PrepareResponse", "from": 0, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.577+0300 DEBUG ignoring PrepareResponse {"dup": true, "sor": true, "viewChanging": false, "moreThanF": false} 2026-10-27T14:03:50.577+0300 DEBUG received message {"type": "PreCommit", "from": 3, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.577+0300 INFO received PreCommit {"validator": 3} 2026-10-27T14:03:50.577+0300 DEBUG not enough PreCommits to process PreBlock {"count": 1} 2026-10-27T14:03:50.577+0300 DEBUG received message {"type": "PreCommit", "from": 2, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.577+0300 INFO received PreCommit {"validator": 2} 2026-10-27T14:03:50.577+0300 DEBUG not enough PreCommits to process PreBlock {"count": 2} 2026-10-27T14:03:50.578+0300 DEBUG received message {"type": "PreCommit", "from": 3, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.578+0300 DEBUG received message {"type": "PreCommit", "from": 1, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.578+0300 INFO received PreCommit {"validator": 1} 2026-10-27T14:03:50.578+0300 INFO processing PreBlock {"height": 10, "view": 0, "tx_count": 0, "preCommit_count": 3} 2026-10-27T14:03:50.578+0300 DEBUG received message {"type": "PreCommit", "from": 3, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.578+0300 DEBUG received message {"type": "PreCommit", "from": 0, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.578+0300 INFO received PreCommit {"validator": 0} 2026-10-27T14:03:50.579+0300 DEBUG received message {"type": "PreCommit", "from": 3, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.580+0300 DEBUG received message {"type": "Commit", "from": 2, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.581+0300 INFO received Commit {"validator": 2} 2026-10-27T14:03:50.581+0300 DEBUG not enough to commit {"count": 1} 2026-10-27T14:03:50.581+0300 DEBUG received message {"type": "Commit", "from": 1, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.582+0300 INFO received Commit {"validator": 1} 2026-10-27T14:03:50.582+0300 DEBUG not enough to commit {"count": 2} 2026-10-27T14:03:50.582+0300 DEBUG received message {"type": "Commit", "from": 2, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.582+0300 DEBUG received message {"type": "Commit", "from": 1, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.582+0300 DEBUG received message {"type": "Commit", "from": 2, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.582+0300 DEBUG received message {"type": "Commit", "from": 2, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.582+0300 DEBUG received message {"type": "Commit", "from": 1, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.582+0300 DEBUG received message {"type": "Commit", "from": 1, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.582+0300 DEBUG received message {"type": "Commit", "from": 2, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.582+0300 DEBUG received message {"type": "Commit", "from": 3, "height": 10, "view": 0, "my_height": 10, "my_view": 0} 2026-10-27T14:03:50.583+0300 INFO received Commit {"validator": 3} 2026-10-27T14:03:50.583+0300 INFO approving block {"height": 10, "hash": "0xaa733fe8d55384acda8fd38e875e76aa7e25b1b695321a0316fdb1d98a234dc6", "tx_count": 0, "merkle": "0x76b4d49cd0fcd09ea767ab30fdbc402dd22a53d226060056536ec70e5b1fc1fd", "prev": "0xad188f40bf7fb15d6a88646fabe59ab4981d245572ad5b6067112498ea87a76e"} INFO [10-27|14:03:50.589] Imported new potential chain segment number=10 hash=2b26c4..f07923 blocks=1 txs=0 mgas=0.000 elapsed=3.406ms mgasps=0.000 snapdiffs=347.00B triedirty=0.00B INFO [10-27|14:03:50.590] Chain head was updated number=10 hash=2b26c4..f07923 root=76b4d4..1fc1fd elapsed="122.231µs" INFO [10-27|14:03:50.592] Starting work on payload id=0x03a86c4de826fcdd INFO [10-27|14:03:50.592] Updated payload id=0x03a86c4de826fcdd number=11 hash=a977ed..b67998 txs=0 withdrawals=0 gas=0 fees=0 root=76b4d4..1fc1fd elapsed="735.438µs" INFO [10-27|14:03:50.593] Commit new sealing work number=11 sealhash=eae343..ab807b txs=0 withdrawals=0 gas=0 elapsed=3.132ms ``` Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
AnnaShaleva
force-pushed
the
fix-wo-block-creation
branch
from
October 27, 2026 11:16
d94ee28 to
7870dab
Compare
This was referenced Oct 27, 2026
roman-khimov
approved these changes
Oct 27, 2026
AnnaShaleva
added a commit
to bane-labs/go-ethereum
that referenced
this pull request
Oct 27, 2026
Fetch nspcc-dev/dbft#170 and adjust the relevant comment and error message. Fix the problem described in #655 (comment). Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
AnnaShaleva
added a commit
to bane-labs/go-ethereum
that referenced
this pull request
Oct 27, 2026
Fetch nspcc-dev/dbft#170 and adjust the relevant comment and error message. Fix the problem described in #655 (comment). Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
txhsl
pushed a commit
to bane-labs/go-ethereum
that referenced
this pull request
Oct 28, 2026
Fetch nspcc-dev/dbft#170 and adjust the relevant comment and error message. Fix the problem described in #655 (comment). Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
txhsl
added a commit
to bane-labs/go-ethereum
that referenced
this pull request
Oct 30, 2026
* consensus: migrate to extended PrepareRequest format 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> * beacon/impl: eth: remove BEACON1 and add BEACON3 protocol for new blob messages * eth: implement verification for beacon blob messages * beacon/impl: remove V0 support from worker cache * consensus/dbft: beacon/impl: integrate blob event notification * dbft: adjust missing blob hashes management 1. Convert prepareRequest.missingBlobs to a raw map of missing blob hashes. Remove binding to prepareRequest.missingTxs. 2. Process incoming missing blob hashes in a flattened way. Notify consensus about *all* missing transactions *at once* once all blobs are received. Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru> * consensus/dbft: beacon/impl: implement blob filter for dbft and beacon notification * consensus/dbft: fix serialization UTs * beacon/impl: fix worker cache index management * consensus/dbft: fix the tx list source when extension is not enabled * consensus/dbft: fix missing block index in recover message * consensus/dbft: remove unnecessary map clear * eth/protocols/dbft: enlarge the message size limit for full transaction migration * dbft: add early-stop to incoming blob processing loop There's no need to iterate through the whole set of incoming blobs if all of them were already received. Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru> * eth: core: fix and migrate to new beacon caching * consensus/dbft: migrate onto simplified library interface (#665) * dbft: migrate onto simplified library interface Fetch nspcc-dev/dbft#166. Save some allocations, use types.Transaction directly instead of dbft.Transaction wrapper. Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru> * dbft: remove unnecessary blobTx write back --------- Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru> Co-authored-by: Hu Shili <799498265@qq.com> * consensus/dbft: beacon/impl: detach consensus from EL txpool * eth: fix UTs * consensus/dbft: recover 140772d * beacon/impl: eth: limit blob response length and prevent attack * dbft: fetch watch-only block construction fix (#671) Fetch nspcc-dev/dbft#170 and adjust the relevant comment and error message. Fix the problem described in #655 (comment). Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru> --------- Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru> Co-authored-by: Hu Shili <799498265@qq.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
63e6948 removes the ability to construct block on watch-only nodes in case if all proposed transactions are present in the node's mempool. It's a bug, so get back
d.createAndCheckBlockcall for watch-only nodes.Note that in case if a proposed transaction is missing from the node's mempool, watch-only still won't be able to construct new block, as intended in 63e6948.
Fixes problem described in
bane-labs/go-ethereum#655 (comment).
Verified on NeoX privnet. Before:
After: