Page MenuHomePhabricator

[avalanche] Also finalize the ancestors of a transaction
Needs ReviewPublic

Authored by Fabien on Thu, Feb 27, 22:07.

Details

Reviewers
None
Group Reviewers
Restricted Project
Summary

When avalanche finalizes a transaction, we want to make sure all the ancestors are final as well. This is a step toward using the radix tree of finalized transactions as a source for the block template.

Note that this diff does not add the ancestors to the list of the recently finalized items, this will be done in a later diff. This implies that the node could poll for the ancestors despite the child being final already.

Test Plan
ninja check-all

Diff Detail

Repository
rABC Bitcoin ABC
Branch
avalanche_tx_finalize_parents
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 32529
Build 64546: Build Difflint-circular-dependencies · build-without-wallet · build-diff · build-debug · build-clang-tidy · build-clang
Build 64545: arc lint + arc unit

Event Timeline

Tail of the build log:

-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[396/579] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[397/579] Building CXX object src/test/CMakeFiles/testutil.dir/util/random.cpp.o
[398/579] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[399/579] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[400/579] Linking C executable src/secp256k1/internal-bench
[401/579] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[402/579] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[403/579] Linking CXX executable src/bitcoin-cli
[404/579] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[405/579] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[406/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[407/579] Building CXX object src/CMakeFiles/server.dir/wallet/init.cpp.o
[408/579] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[409/579] Linking CXX executable src/bitcoin-tx
[410/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[411/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[412/579] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[413/579] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[414/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[415/579] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[416/579] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[417/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[418/579] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[419/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[420/579] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[421/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[422/579] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[423/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[424/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[425/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[426/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[427/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[428/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[429/579] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[430/579] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[431/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[432/579] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[433/579] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
[434/579] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[435/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[436/579] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[437/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[438/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[439/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[440/579] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[441/579] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[442/579] Linking CXX executable src/iguana/iguana
[443/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[444/579] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[445/579] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[446/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[447/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[448/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[449/579] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[450/579] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1

Tail of the build log:

[392/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/coins.cpp.o
[393/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockindex.cpp.o
[394/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[395/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[396/577] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[397/577] Linking CXX executable src/bitcoin-cli
[398/577] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[399/577] Building CXX object src/CMakeFiles/server.dir/torcontrol.cpp.o
[400/577] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[401/577] Linking C executable src/secp256k1/ecmult-bench
[402/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/random.cpp.o
[403/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[404/577] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[405/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[406/577] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[407/577] Linking CXX executable src/bitcoin-tx
[408/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[409/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[410/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[411/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[412/577] Building CXX object src/CMakeFiles/server.dir/wallet/init.cpp.o
[413/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[414/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[415/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[416/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[417/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[418/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[419/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[420/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[421/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[422/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[423/577] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[424/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[425/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[426/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[427/577] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
[428/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[429/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[430/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[431/577] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[432/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[433/577] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[434/577] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[435/577] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[436/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[437/577] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[438/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[439/577] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[440/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[441/577] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[442/577] Linking CXX executable src/iguana/iguana
[443/577] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[444/577] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[445/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[446/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[447/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[448/577] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[449/577] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1
Fabien published this revision for review.Fri, Feb 28, 11:28