Page MenuHomePhabricator

[avalanche] implement an avalanche handshake
AbandonedPublic

Authored by PiRK on Mar 17 2021, 08:30.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Summary

This should provide a basic peer discovery mecanism.

Depends on D9329

Test Plan

ninja all check-all

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
PiRK planned changes to this revision.Mar 17 2021, 08:33

Tail of the build log:

>>>               net_processing.cpp.o:(PeerManager::ProcessMessage(Config const&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CDataStream&, std::chrono::duration<long, std::ratio<1l, 1000000l> >, std::atomic<bool> const&)) in archive src/libserver.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[453/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/utilitydialog.cpp.o
[454/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin.cpp.o
[455/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bantablemodel.cpp.o
[456/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addressbookpage.cpp.o
[457/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/clientmodel.cpp.o
[458/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/optionsmodel.cpp.o
[459/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/optionsdialog.cpp.o
[460/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroltreewidget.cpp.o
[461/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/createwalletdialog.cpp.o
[462/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/peertablemodel.cpp.o
[463/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/intro.cpp.o
[464/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/editaddressdialog.cpp.o
[465/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin-qt-base_autogen/mocs_compilation.cpp.o
[466/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrimagewidget.cpp.o
[467/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/guiutil.cpp.o
[468/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoingui.cpp.o
[469/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin.cpp.o
[470/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/trafficgraphwidget.cpp.o
[471/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/splashscreen.cpp.o
[472/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/openuridialog.cpp.o
[473/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/askpassphrasedialog.cpp.o
[474/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondescdialog.cpp.o
[475/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionfilterproxy.cpp.o
[476/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/rpcconsole.cpp.o
[477/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/overviewpage.cpp.o
[478/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin_locale.cpp.o
[479/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addresstablemodel.cpp.o
[480/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receiverequestdialog.cpp.o
[481/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/recentrequeststablemodel.cpp.o
[482/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodeltransaction.cpp.o
[483/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsentry.cpp.o
[484/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentrequestplus.cpp.o
[485/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receivecoinsdialog.cpp.o
[486/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroldialog.cpp.o
[487/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionrecord.cpp.o
[488/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentserver.cpp.o
[489/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletframe.cpp.o
[490/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/signverifymessagedialog.cpp.o
[491/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionview.cpp.o
[492/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiontablemodel.cpp.o
[493/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondesc.cpp.o
[494/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsdialog.cpp.o
[495/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletcontroller.cpp.o
[496/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletview.cpp.o
[497/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodel.cpp.o
[498/503] Linking CXX static library src/qt/libbitcoin-qt-base.a
[499/503] Automatic MOC for target bitcoin-qt
[500/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[501/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[502/503] Linking CXX executable src/qt/bitcoin-qt
FAILED: src/qt/bitcoin-qt 
: && /usr/bin/clang++  -Werror -g -O2  -fuse-ld=lld -Wl,-z,relro -Wl,-z,now -fPIE -pie src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o  -o src/qt/bitcoin-qt  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/qt/libbitcoin-qt-base.a  src/libserver.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  /usr/lib/x86_64-linux-gnu/libzmq.so  src/librpcclient.a  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Network.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.11.3  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libprotobuf.so  src/wallet/libwallet.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libutil.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  src/secp256k1/libsecp256k1.a  src/univalue/libunivalue.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -pthread  -ldl  /usr/lib/x86_64-linux-gnu/libdb_cxx.so  /usr/lib/x86_64-linux-gnu/libqrencode.so && :
ld.lld: error: undefined symbol: NetMsgType::AVAPROOF
>>> referenced by net_processing.cpp:3975 (../../src/net_processing.cpp:3975)
>>>               net_processing.cpp.o:(PeerManager::ProcessMessage(Config const&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CDataStream&, std::chrono::duration<long, std::ratio<1l, 1000000l> >, std::atomic<bool> const&)) in archive src/libserver.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1

Tail of the build log:

[453/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/utilitydialog.cpp.o
[454/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/optionsdialog.cpp.o
[455/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/optionsmodel.cpp.o
[456/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addressbookpage.cpp.o
[457/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin.cpp.o
[458/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/peertablemodel.cpp.o
[459/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/clientmodel.cpp.o
[460/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroltreewidget.cpp.o
[461/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/createwalletdialog.cpp.o
[462/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/editaddressdialog.cpp.o
[463/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin-qt-base_autogen/mocs_compilation.cpp.o
[464/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/intro.cpp.o
[465/503] Linking CXX executable src/bench/bitcoin-bench
FAILED: src/bench/bitcoin-bench 
: && /usr/bin/c++  -Werror -O0  -fuse-ld=gold -Wl,-z,relro -Wl,-z,now -fPIE -pie src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o src/test/CMakeFiles/testutil.dir/util/logging.cpp.o src/test/CMakeFiles/testutil.dir/util/mining.cpp.o src/test/CMakeFiles/testutil.dir/util/net.cpp.o src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o src/test/CMakeFiles/testutil.dir/util/str.cpp.o src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/addrman.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/base58.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/bench.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/bench_bitcoin.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/block_assemble.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/cashaddr.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/ccoins_caching.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/chacha_poly_aead.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/chacha20.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/checkblock.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/checkqueue.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/crypto_aes.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/crypto_hash.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/data.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/duplicate_inputs.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/examples.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/gcs_filter.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/hashpadding.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/lockedpool.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/mempool_eviction.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/mempool_stress.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/merkle_root.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/nanobench.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/poly1305.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/prevector.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rollingbloom.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rpc_blockchain.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rpc_mempool.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/util_time.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/verify_script.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/coin_selection.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/wallet_balance.cpp.o  -o src/bench/bitcoin-bench  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/wallet/libwallet.a  src/libserver.a  src/wallet/libwallet.a  /usr/lib/x86_64-linux-gnu/libdb_cxx.so  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/secp256k1/libsecp256k1.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  src/libutil.a  src/univalue/libunivalue.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -ldl  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  -pthread  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  /usr/lib/x86_64-linux-gnu/libzmq.so && :
../../src/net_processing.cpp:3975: error: undefined reference to 'NetMsgType::AVAPROOF'
collect2: error: ld returned 1 exit status
[466/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoingui.cpp.o
[467/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrimagewidget.cpp.o
[468/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin.cpp.o
[469/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/guiutil.cpp.o
[470/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/trafficgraphwidget.cpp.o
[471/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/openuridialog.cpp.o
[472/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/splashscreen.cpp.o
[473/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/rpcconsole.cpp.o
[474/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondescdialog.cpp.o
[475/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/askpassphrasedialog.cpp.o
[476/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionfilterproxy.cpp.o
[477/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin_locale.cpp.o
[478/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/overviewpage.cpp.o
[479/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receiverequestdialog.cpp.o
[480/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/recentrequeststablemodel.cpp.o
[481/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addresstablemodel.cpp.o
[482/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodeltransaction.cpp.o
[483/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsentry.cpp.o
[484/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionrecord.cpp.o
[485/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentrequestplus.cpp.o
[486/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receivecoinsdialog.cpp.o
[487/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiontablemodel.cpp.o
[488/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroldialog.cpp.o
[489/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentserver.cpp.o
[490/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletframe.cpp.o
[491/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionview.cpp.o
[492/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondesc.cpp.o
[493/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/signverifymessagedialog.cpp.o
[494/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsdialog.cpp.o
[495/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletcontroller.cpp.o
[496/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodel.cpp.o
[497/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletview.cpp.o
[498/503] Linking CXX static library src/qt/libbitcoin-qt-base.a
[499/503] Automatic MOC for target bitcoin-qt
[500/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[501/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[502/503] Linking CXX executable src/qt/bitcoin-qt
FAILED: src/qt/bitcoin-qt 
: && /usr/bin/c++  -Werror -O0  -fuse-ld=gold -Wl,-z,relro -Wl,-z,now -fPIE -pie src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o  -o src/qt/bitcoin-qt  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/qt/libbitcoin-qt-base.a  src/libserver.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  /usr/lib/x86_64-linux-gnu/libzmq.so  src/librpcclient.a  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Network.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.11.3  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libprotobuf.so  src/wallet/libwallet.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libutil.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  src/secp256k1/libsecp256k1.a  src/univalue/libunivalue.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -pthread  -ldl  /usr/lib/x86_64-linux-gnu/libdb_cxx.so  /usr/lib/x86_64-linux-gnu/libqrencode.so && :
../../src/net_processing.cpp:3975: error: undefined reference to 'NetMsgType::AVAPROOF'
collect2: error: ld returned 1 exit status
ninja: build stopped: cannot make progress due to previous errors.
Build build-debug failed with exit code 1

Tail of the build log:

[400/450] Generating forms/ui_debugwindow.h
[401/450] Generating forms/ui_sendcoinsdialog.h
[402/450] Generating forms/ui_sendcoinsentry.h
[403/450] Generating forms/ui_signverifymessagedialog.h
[404/450] Generating forms/ui_transactiondescdialog.h
[405/450] Generating qrc_bitcoin.cpp
[406/450] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/crypto_aes.cpp.o
[407/450] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/util_time.cpp.o
[408/450] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/checkblock.cpp.o
[409/450] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/rpc_mempool.cpp.o
[410/450] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/verify_script.cpp.o
[411/450] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/nanobench.cpp.o
[412/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoinaddressvalidator.cpp.o
[413/450] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/block_assemble.cpp.o
[414/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoinamountfield.cpp.o
[415/450] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/rpc_blockchain.cpp.o
[416/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoinunits.cpp.o
[417/450] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/duplicate_inputs.cpp.o
[418/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/csvmodelwriter.cpp.o
[419/450] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/mempool_eviction.cpp.o
[420/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/networkstyle.cpp.o
[421/450] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/mempool_stress.cpp.o
[422/450] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/bench.cpp.o
[423/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bantablemodel.cpp.o
[424/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/modaloverlay.cpp.o
[425/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/platformstyle.cpp.o
[426/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin-qt-base_autogen/mocs_compilation.cpp.o
[427/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/notificator.cpp.o
[428/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qvalidatedlineedit.cpp.o
[429/450] Linking CXX executable src/bench/bitcoin-bench
FAILED: src/bench/bitcoin-bench 
: && /usr/bin/c++  -Werror -g -O2  -fuse-ld=gold -Wl,-z,relro -Wl,-z,now -fPIE -pie src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o src/test/CMakeFiles/testutil.dir/util/logging.cpp.o src/test/CMakeFiles/testutil.dir/util/mining.cpp.o src/test/CMakeFiles/testutil.dir/util/net.cpp.o src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o src/test/CMakeFiles/testutil.dir/util/str.cpp.o src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/addrman.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/base58.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/bench.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/bench_bitcoin.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/block_assemble.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/cashaddr.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/ccoins_caching.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/chacha_poly_aead.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/chacha20.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/checkblock.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/checkqueue.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/crypto_aes.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/crypto_hash.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/data.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/duplicate_inputs.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/examples.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/gcs_filter.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/hashpadding.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/lockedpool.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/mempool_eviction.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/mempool_stress.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/merkle_root.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/nanobench.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/poly1305.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/prevector.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rollingbloom.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rpc_blockchain.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rpc_mempool.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/util_time.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/verify_script.cpp.o  -o src/bench/bitcoin-bench  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/libserver.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/secp256k1/libsecp256k1.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  src/libutil.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/univalue/libunivalue.a  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -ldl  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  -pthread  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  /usr/lib/x86_64-linux-gnu/libzmq.so && :
../../src/net_processing.cpp:3975: error: undefined reference to 'NetMsgType::AVAPROOF'
collect2: error: ld returned 1 exit status
[430/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qvaluecombobox.cpp.o
[431/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin.cpp.o
[432/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin.cpp.o
[433/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/clientmodel.cpp.o
[434/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoingui.cpp.o
[435/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/intro.cpp.o
[436/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/optionsdialog.cpp.o
[437/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/guiutil.cpp.o
[438/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/optionsmodel.cpp.o
[439/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/utilitydialog.cpp.o
[440/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/trafficgraphwidget.cpp.o
[441/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin_locale.cpp.o
[442/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/peertablemodel.cpp.o
[443/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/splashscreen.cpp.o
[444/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/rpcconsole.cpp.o
[445/450] Linking CXX static library src/qt/libbitcoin-qt-base.a
[446/450] Automatic MOC for target bitcoin-qt
[447/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[448/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[449/450] Linking CXX executable src/qt/bitcoin-qt
FAILED: src/qt/bitcoin-qt 
: && /usr/bin/c++  -Werror -g -O2  -fuse-ld=gold -Wl,-z,relro -Wl,-z,now -fPIE -pie src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o  -o src/qt/bitcoin-qt  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/qt/libbitcoin-qt-base.a  src/libserver.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/secp256k1/libsecp256k1.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  /usr/lib/x86_64-linux-gnu/libzmq.so  src/librpcclient.a  src/libutil.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/univalue/libunivalue.a  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Network.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.11.3  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -ldl  -pthread  /usr/lib/x86_64-linux-gnu/libprotobuf.so && :
../../src/net_processing.cpp:3975: error: undefined reference to 'NetMsgType::AVAPROOF'
collect2: error: ld returned 1 exit status
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

Tail of the build log:

[453/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/networkstyle.cpp.o
[454/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin.cpp.o
[455/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/modaloverlay.cpp.o
[456/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin-qt-base_autogen/mocs_compilation.cpp.o
[457/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/notificator.cpp.o
[458/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/clientmodel.cpp.o
[459/503] Linking CXX executable src/bench/bitcoin-bench
FAILED: src/bench/bitcoin-bench 
: && /usr/bin/c++  -Werror -g -O2  -fuse-ld=gold -Wl,-z,relro -Wl,-z,now -fPIE -pie src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o src/test/CMakeFiles/testutil.dir/util/logging.cpp.o src/test/CMakeFiles/testutil.dir/util/mining.cpp.o src/test/CMakeFiles/testutil.dir/util/net.cpp.o src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o src/test/CMakeFiles/testutil.dir/util/str.cpp.o src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/addrman.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/base58.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/bench.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/bench_bitcoin.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/block_assemble.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/cashaddr.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/ccoins_caching.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/chacha_poly_aead.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/chacha20.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/checkblock.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/checkqueue.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/crypto_aes.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/crypto_hash.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/data.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/duplicate_inputs.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/examples.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/gcs_filter.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/hashpadding.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/lockedpool.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/mempool_eviction.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/mempool_stress.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/merkle_root.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/nanobench.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/poly1305.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/prevector.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rollingbloom.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rpc_blockchain.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rpc_mempool.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/util_time.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/verify_script.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/coin_selection.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/wallet_balance.cpp.o  -o src/bench/bitcoin-bench  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/wallet/libwallet.a  src/libserver.a  src/wallet/libwallet.a  /usr/lib/x86_64-linux-gnu/libdb_cxx.so  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/secp256k1/libsecp256k1.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  src/libutil.a  src/univalue/libunivalue.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -ldl  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  -pthread  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  /usr/lib/x86_64-linux-gnu/libzmq.so && :
../../src/net_processing.cpp:3975: error: undefined reference to 'NetMsgType::AVAPROOF'
collect2: error: ld returned 1 exit status
[460/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoingui.cpp.o
[461/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin.cpp.o
[462/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroltreewidget.cpp.o
[463/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addressbookpage.cpp.o
[464/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/intro.cpp.o
[465/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/utilitydialog.cpp.o
[466/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/createwalletdialog.cpp.o
[467/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/guiutil.cpp.o
[468/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/splashscreen.cpp.o
[469/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/trafficgraphwidget.cpp.o
[470/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/rpcconsole.cpp.o
[471/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/editaddressdialog.cpp.o
[472/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin_locale.cpp.o
[473/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrimagewidget.cpp.o
[474/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/askpassphrasedialog.cpp.o
[475/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/openuridialog.cpp.o
[476/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionfilterproxy.cpp.o
[477/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondescdialog.cpp.o
[478/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addresstablemodel.cpp.o
[479/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/overviewpage.cpp.o
[480/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receiverequestdialog.cpp.o
[481/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/recentrequeststablemodel.cpp.o
[482/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsentry.cpp.o
[483/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionrecord.cpp.o
[484/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroldialog.cpp.o
[485/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receivecoinsdialog.cpp.o
[486/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/signverifymessagedialog.cpp.o
[487/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletframe.cpp.o
[488/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodeltransaction.cpp.o
[489/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentserver.cpp.o
[490/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiontablemodel.cpp.o
[491/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondesc.cpp.o
[492/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionview.cpp.o
[493/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentrequestplus.cpp.o
[494/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsdialog.cpp.o
[495/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletcontroller.cpp.o
[496/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletview.cpp.o
[497/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodel.cpp.o
[498/503] Linking CXX static library src/qt/libbitcoin-qt-base.a
[499/503] Automatic MOC for target bitcoin-qt
[500/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[501/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[502/503] Linking CXX executable src/qt/bitcoin-qt
FAILED: src/qt/bitcoin-qt 
: && /usr/bin/c++  -Werror -g -O2  -fuse-ld=gold -Wl,-z,relro -Wl,-z,now -fPIE -pie src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o  -o src/qt/bitcoin-qt  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/qt/libbitcoin-qt-base.a  src/libserver.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  /usr/lib/x86_64-linux-gnu/libzmq.so  src/librpcclient.a  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Network.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.11.3  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libprotobuf.so  src/wallet/libwallet.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libutil.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  src/secp256k1/libsecp256k1.a  src/univalue/libunivalue.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -pthread  -ldl  /usr/lib/x86_64-linux-gnu/libdb_cxx.so  /usr/lib/x86_64-linux-gnu/libqrencode.so && :
../../src/net_processing.cpp:3975: error: undefined reference to 'NetMsgType::AVAPROOF'
collect2: error: ld returned 1 exit status
ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

Tail of the build log:

>>>               net_processing.cpp.o:(PeerManager::ProcessMessage(Config const&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CDataStream&, std::chrono::duration<long, std::ratio<1l, 1000000l> >, std::atomic<bool> const&)) in archive src/libserver.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[452/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/networkstyle.cpp.o
[453/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bantablemodel.cpp.o
[454/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin.cpp.o
[455/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/modaloverlay.cpp.o
[456/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/notificator.cpp.o
[457/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin-qt-base_autogen/mocs_compilation.cpp.o
[458/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/clientmodel.cpp.o
[459/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoingui.cpp.o
[460/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addressbookpage.cpp.o
[461/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin.cpp.o
[462/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/intro.cpp.o
[463/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/utilitydialog.cpp.o
[464/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/trafficgraphwidget.cpp.o
[465/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroltreewidget.cpp.o
[466/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/rpcconsole.cpp.o
[467/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/guiutil.cpp.o
[468/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/splashscreen.cpp.o
[469/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/createwalletdialog.cpp.o
[470/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/askpassphrasedialog.cpp.o
[471/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/editaddressdialog.cpp.o
[472/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrimagewidget.cpp.o
[473/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/openuridialog.cpp.o
[474/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin_locale.cpp.o
[475/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addresstablemodel.cpp.o
[476/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/overviewpage.cpp.o
[477/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionfilterproxy.cpp.o
[478/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondescdialog.cpp.o
[479/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receiverequestdialog.cpp.o
[480/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/recentrequeststablemodel.cpp.o
[481/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsentry.cpp.o
[482/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receivecoinsdialog.cpp.o
[483/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroldialog.cpp.o
[484/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentserver.cpp.o
[485/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionrecord.cpp.o
[486/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodeltransaction.cpp.o
[487/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondesc.cpp.o
[488/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletframe.cpp.o
[489/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/signverifymessagedialog.cpp.o
[490/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionview.cpp.o
[491/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiontablemodel.cpp.o
[492/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentrequestplus.cpp.o
[493/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsdialog.cpp.o
[494/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletcontroller.cpp.o
[495/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletview.cpp.o
[496/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodel.cpp.o
[497/501] Linking CXX static library src/qt/libbitcoin-qt-base.a
[498/501] Automatic MOC for target bitcoin-qt
[499/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[500/501] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[501/501] Linking CXX executable src/qt/bitcoin-qt
FAILED: src/qt/bitcoin-qt 
: && /usr/bin/clang++  -g -O2  -fuse-ld=lld -Wl,-z,relro -Wl,-z,now -fPIE -pie src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o  -o src/qt/bitcoin-qt  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/qt/libbitcoin-qt-base.a  src/libserver.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  /usr/lib/x86_64-linux-gnu/libzmq.so  src/librpcclient.a  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Network.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.11.3  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libprotobuf.so  src/wallet/libwallet.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libutil.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  src/secp256k1/libsecp256k1.a  src/univalue/libunivalue.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -pthread  -ldl  /usr/lib/x86_64-linux-gnu/libdb_cxx.so  /usr/lib/x86_64-linux-gnu/libqrencode.so && :
ld.lld: error: undefined symbol: NetMsgType::AVAPROOF
>>> referenced by net_processing.cpp:3975 (../../src/net_processing.cpp:3975)
>>>               net_processing.cpp.o:(PeerManager::ProcessMessage(Config const&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CDataStream&, std::chrono::duration<long, std::ratio<1l, 1000000l> >, std::atomic<bool> const&)) in archive src/libserver.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1

Tail of the build log:

[400/450] Generating forms/ui_askpassphrasedialog.h
[401/450] Generating forms/ui_coincontroldialog.h
[402/450] Generating forms/ui_createwalletdialog.h
[403/450] Generating forms/ui_helpmessagedialog.h
[404/450] Generating forms/ui_editaddressdialog.h
[405/450] Generating forms/ui_intro.h
[406/450] Generating forms/ui_openuridialog.h
[407/450] Generating forms/ui_modaloverlay.h
[408/450] Generating forms/ui_receiverequestdialog.h
[409/450] Generating forms/ui_receivecoinsdialog.h
[410/450] Generating forms/ui_overviewpage.h
[411/450] Generating forms/ui_optionsdialog.h
[412/450] Generating forms/ui_debugwindow.h
[413/450] Generating forms/ui_sendcoinsentry.h
[414/450] Generating forms/ui_sendcoinsdialog.h
[415/450] Generating forms/ui_transactiondescdialog.h
[416/450] Generating forms/ui_signverifymessagedialog.h
[417/450] Generating qrc_bitcoin.cpp
[418/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoinunits.cpp.o
[419/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/csvmodelwriter.cpp.o
[420/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoinaddressvalidator.cpp.o
[421/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoinamountfield.cpp.o
[422/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/modaloverlay.cpp.o
[423/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/networkstyle.cpp.o
[424/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/notificator.cpp.o
[425/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/platformstyle.cpp.o
[426/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qvalidatedlineedit.cpp.o
[427/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qvaluecombobox.cpp.o
[428/450] Linking CXX executable src/bench/bitcoin-bench
FAILED: src/bench/bitcoin-bench 
: && /usr/bin/c++  -Werror -g -O2  -fuse-ld=gold -Wl,-z,relro -Wl,-z,now -fPIE -pie src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o src/test/CMakeFiles/testutil.dir/util/logging.cpp.o src/test/CMakeFiles/testutil.dir/util/mining.cpp.o src/test/CMakeFiles/testutil.dir/util/net.cpp.o src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o src/test/CMakeFiles/testutil.dir/util/str.cpp.o src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/addrman.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/base58.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/bench.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/bench_bitcoin.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/block_assemble.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/cashaddr.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/ccoins_caching.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/chacha_poly_aead.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/chacha20.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/checkblock.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/checkqueue.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/crypto_aes.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/crypto_hash.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/data.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/duplicate_inputs.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/examples.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/gcs_filter.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/hashpadding.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/lockedpool.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/mempool_eviction.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/mempool_stress.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/merkle_root.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/nanobench.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/poly1305.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/prevector.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rollingbloom.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rpc_blockchain.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rpc_mempool.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/util_time.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/verify_script.cpp.o  -o src/bench/bitcoin-bench  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/libserver.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/secp256k1/libsecp256k1.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  src/libutil.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/univalue/libunivalue.a  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -ldl  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  -pthread  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  /usr/lib/x86_64-linux-gnu/libzmq.so && :
../../src/net_processing.cpp:3975: error: undefined reference to 'NetMsgType::AVAPROOF'
collect2: error: ld returned 1 exit status
[429/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/utilitydialog.cpp.o
[430/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin.cpp.o
[431/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/trafficgraphwidget.cpp.o
[432/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bantablemodel.cpp.o
[433/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin-qt-base_autogen/mocs_compilation.cpp.o
[434/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin_locale.cpp.o
[435/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/splashscreen.cpp.o
[436/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/intro.cpp.o
[437/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/clientmodel.cpp.o
[438/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/optionsmodel.cpp.o
[439/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoingui.cpp.o
[440/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/optionsdialog.cpp.o
[441/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/guiutil.cpp.o
[442/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin.cpp.o
[443/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/peertablemodel.cpp.o
[444/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/rpcconsole.cpp.o
[445/450] Linking CXX static library src/qt/libbitcoin-qt-base.a
[446/450] Automatic MOC for target bitcoin-qt
[447/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[448/450] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[449/450] Linking CXX executable src/qt/bitcoin-qt
FAILED: src/qt/bitcoin-qt 
: && /usr/bin/c++  -Werror -g -O2  -fuse-ld=gold -Wl,-z,relro -Wl,-z,now -fPIE -pie src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o  -o src/qt/bitcoin-qt  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/qt/libbitcoin-qt-base.a  src/libserver.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/secp256k1/libsecp256k1.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  /usr/lib/x86_64-linux-gnu/libzmq.so  src/librpcclient.a  src/libutil.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/univalue/libunivalue.a  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Network.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.11.3  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -ldl  -pthread  /usr/lib/x86_64-linux-gnu/libprotobuf.so && :
../../src/net_processing.cpp:3975: error: undefined reference to 'NetMsgType::AVAPROOF'
collect2: error: ld returned 1 exit status
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

Tail of the build log:

[453/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/utilitydialog.cpp.o
[454/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/peertablemodel.cpp.o
[455/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bantablemodel.cpp.o
[456/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addressbookpage.cpp.o
[457/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin.cpp.o
[458/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/modaloverlay.cpp.o
[459/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin-qt-base_autogen/mocs_compilation.cpp.o
[460/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroltreewidget.cpp.o
[461/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoingui.cpp.o
[462/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/editaddressdialog.cpp.o
[463/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/clientmodel.cpp.o
[464/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/intro.cpp.o
[465/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/createwalletdialog.cpp.o
[466/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrimagewidget.cpp.o
[467/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin.cpp.o
[468/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/guiutil.cpp.o
[469/503] Linking CXX executable src/bench/bitcoin-bench
FAILED: src/bench/bitcoin-bench 
: && /usr/bin/c++  -Werror -O0  -fuse-ld=gold -Wl,-z,relro -Wl,-z,now -fPIE -pie src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o src/test/CMakeFiles/testutil.dir/util/logging.cpp.o src/test/CMakeFiles/testutil.dir/util/mining.cpp.o src/test/CMakeFiles/testutil.dir/util/net.cpp.o src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o src/test/CMakeFiles/testutil.dir/util/str.cpp.o src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/addrman.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/base58.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/bench.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/bench_bitcoin.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/block_assemble.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/cashaddr.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/ccoins_caching.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/chacha_poly_aead.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/chacha20.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/checkblock.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/checkqueue.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/crypto_aes.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/crypto_hash.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/data.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/duplicate_inputs.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/examples.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/gcs_filter.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/hashpadding.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/lockedpool.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/mempool_eviction.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/mempool_stress.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/merkle_root.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/nanobench.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/poly1305.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/prevector.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rollingbloom.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rpc_blockchain.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rpc_mempool.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/util_time.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/verify_script.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/coin_selection.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/wallet_balance.cpp.o  -o src/bench/bitcoin-bench  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/wallet/libwallet.a  src/libserver.a  src/wallet/libwallet.a  /usr/lib/x86_64-linux-gnu/libdb_cxx.so  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/secp256k1/libsecp256k1.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  src/libutil.a  src/univalue/libunivalue.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -ldl  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  -pthread  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  /usr/lib/x86_64-linux-gnu/libzmq.so && :
../../src/net_processing.cpp:3975: error: undefined reference to 'NetMsgType::AVAPROOF'
collect2: error: ld returned 1 exit status
[470/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/rpcconsole.cpp.o
[471/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/askpassphrasedialog.cpp.o
[472/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/trafficgraphwidget.cpp.o
[473/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/openuridialog.cpp.o
[474/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin_locale.cpp.o
[475/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionfilterproxy.cpp.o
[476/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/splashscreen.cpp.o
[477/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/overviewpage.cpp.o
[478/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receiverequestdialog.cpp.o
[479/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addresstablemodel.cpp.o
[480/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondescdialog.cpp.o
[481/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/recentrequeststablemodel.cpp.o
[482/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodeltransaction.cpp.o
[483/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsentry.cpp.o
[484/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentrequestplus.cpp.o
[485/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroldialog.cpp.o
[486/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionrecord.cpp.o
[487/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receivecoinsdialog.cpp.o
[488/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiontablemodel.cpp.o
[489/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentserver.cpp.o
[490/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionview.cpp.o
[491/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletframe.cpp.o
[492/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondesc.cpp.o
[493/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/signverifymessagedialog.cpp.o
[494/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsdialog.cpp.o
[495/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletview.cpp.o
[496/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletcontroller.cpp.o
[497/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodel.cpp.o
[498/503] Linking CXX static library src/qt/libbitcoin-qt-base.a
[499/503] Automatic MOC for target bitcoin-qt
[500/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[501/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[502/503] Linking CXX executable src/qt/bitcoin-qt
FAILED: src/qt/bitcoin-qt 
: && /usr/bin/c++  -Werror -O0  -fuse-ld=gold -Wl,-z,relro -Wl,-z,now -fPIE -pie src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o  -o src/qt/bitcoin-qt  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/qt/libbitcoin-qt-base.a  src/libserver.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  /usr/lib/x86_64-linux-gnu/libzmq.so  src/librpcclient.a  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Network.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.11.3  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libprotobuf.so  src/wallet/libwallet.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libutil.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  src/secp256k1/libsecp256k1.a  src/univalue/libunivalue.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -pthread  -ldl  /usr/lib/x86_64-linux-gnu/libdb_cxx.so  /usr/lib/x86_64-linux-gnu/libqrencode.so && :
../../src/net_processing.cpp:3975: error: undefined reference to 'NetMsgType::AVAPROOF'
collect2: error: ld returned 1 exit status
ninja: build stopped: cannot make progress due to previous errors.
Build build-debug failed with exit code 1

Tail of the build log:

>>>               net_processing.cpp.o:(PeerManager::ProcessMessage(Config const&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CDataStream&, std::chrono::duration<long, std::ratio<1l, 1000000l> >, std::atomic<bool> const&)) in archive src/libserver.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[453/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/networkstyle.cpp.o
[454/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bantablemodel.cpp.o
[455/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin.cpp.o
[456/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/modaloverlay.cpp.o
[457/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/clientmodel.cpp.o
[458/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/notificator.cpp.o
[459/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin-qt-base_autogen/mocs_compilation.cpp.o
[460/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/intro.cpp.o
[461/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin.cpp.o
[462/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroltreewidget.cpp.o
[463/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoingui.cpp.o
[464/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/trafficgraphwidget.cpp.o
[465/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addressbookpage.cpp.o
[466/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/utilitydialog.cpp.o
[467/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/createwalletdialog.cpp.o
[468/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/guiutil.cpp.o
[469/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/splashscreen.cpp.o
[470/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/rpcconsole.cpp.o
[471/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/editaddressdialog.cpp.o
[472/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrimagewidget.cpp.o
[473/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/askpassphrasedialog.cpp.o
[474/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin_locale.cpp.o
[475/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/openuridialog.cpp.o
[476/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addresstablemodel.cpp.o
[477/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/overviewpage.cpp.o
[478/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionfilterproxy.cpp.o
[479/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receiverequestdialog.cpp.o
[480/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondescdialog.cpp.o
[481/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/recentrequeststablemodel.cpp.o
[482/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsentry.cpp.o
[483/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroldialog.cpp.o
[484/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receivecoinsdialog.cpp.o
[485/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionrecord.cpp.o
[486/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentserver.cpp.o
[487/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletframe.cpp.o
[488/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionview.cpp.o
[489/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/signverifymessagedialog.cpp.o
[490/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondesc.cpp.o
[491/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiontablemodel.cpp.o
[492/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodeltransaction.cpp.o
[493/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentrequestplus.cpp.o
[494/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsdialog.cpp.o
[495/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletcontroller.cpp.o
[496/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodel.cpp.o
[497/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletview.cpp.o
[498/503] Linking CXX static library src/qt/libbitcoin-qt-base.a
[499/503] Automatic MOC for target bitcoin-qt
[500/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[501/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[502/503] Linking CXX executable src/qt/bitcoin-qt
FAILED: src/qt/bitcoin-qt 
: && /usr/bin/clang++  -Werror -g -O2  -fuse-ld=lld -Wl,-z,relro -Wl,-z,now -fPIE -pie src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o  -o src/qt/bitcoin-qt  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/qt/libbitcoin-qt-base.a  src/libserver.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  /usr/lib/x86_64-linux-gnu/libzmq.so  src/librpcclient.a  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Network.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.11.3  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libprotobuf.so  src/wallet/libwallet.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libutil.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  src/secp256k1/libsecp256k1.a  src/univalue/libunivalue.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -pthread  -ldl  /usr/lib/x86_64-linux-gnu/libdb_cxx.so  /usr/lib/x86_64-linux-gnu/libqrencode.so && :
ld.lld: error: undefined symbol: NetMsgType::AVAPROOF
>>> referenced by net_processing.cpp:3975 (../../src/net_processing.cpp:3975)
>>>               net_processing.cpp.o:(PeerManager::ProcessMessage(Config const&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CDataStream&, std::chrono::duration<long, std::ratio<1l, 1000000l> >, std::atomic<bool> const&)) in archive src/libserver.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1

Tail of the build log:

[453/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/networkstyle.cpp.o
[454/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin.cpp.o
[455/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/modaloverlay.cpp.o
[456/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin-qt-base_autogen/mocs_compilation.cpp.o
[457/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/notificator.cpp.o
[458/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/clientmodel.cpp.o
[459/503] Linking CXX executable src/bench/bitcoin-bench
FAILED: src/bench/bitcoin-bench 
: && /usr/bin/c++  -Werror -g -O2  -fuse-ld=gold -Wl,-z,relro -Wl,-z,now -fPIE -pie src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o src/test/CMakeFiles/testutil.dir/util/logging.cpp.o src/test/CMakeFiles/testutil.dir/util/mining.cpp.o src/test/CMakeFiles/testutil.dir/util/net.cpp.o src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o src/test/CMakeFiles/testutil.dir/util/str.cpp.o src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/addrman.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/base58.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/bench.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/bench_bitcoin.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/block_assemble.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/cashaddr.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/ccoins_caching.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/chacha_poly_aead.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/chacha20.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/checkblock.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/checkqueue.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/crypto_aes.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/crypto_hash.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/data.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/duplicate_inputs.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/examples.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/gcs_filter.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/hashpadding.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/lockedpool.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/mempool_eviction.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/mempool_stress.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/merkle_root.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/nanobench.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/poly1305.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/prevector.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rollingbloom.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rpc_blockchain.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/rpc_mempool.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/util_time.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/verify_script.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/coin_selection.cpp.o src/bench/CMakeFiles/bitcoin-bench.dir/wallet_balance.cpp.o  -o src/bench/bitcoin-bench  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/wallet/libwallet.a  src/libserver.a  src/wallet/libwallet.a  /usr/lib/x86_64-linux-gnu/libdb_cxx.so  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/secp256k1/libsecp256k1.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  src/libutil.a  src/univalue/libunivalue.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -ldl  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  -pthread  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  /usr/lib/x86_64-linux-gnu/libzmq.so && :
../../src/net_processing.cpp:3975: error: undefined reference to 'NetMsgType::AVAPROOF'
collect2: error: ld returned 1 exit status
[460/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin.cpp.o
[461/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroltreewidget.cpp.o
[462/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addressbookpage.cpp.o
[463/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/intro.cpp.o
[464/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoingui.cpp.o
[465/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/utilitydialog.cpp.o
[466/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/createwalletdialog.cpp.o
[467/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/splashscreen.cpp.o
[468/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/guiutil.cpp.o
[469/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/trafficgraphwidget.cpp.o
[470/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin_locale.cpp.o
[471/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/rpcconsole.cpp.o
[472/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/editaddressdialog.cpp.o
[473/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/askpassphrasedialog.cpp.o
[474/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrimagewidget.cpp.o
[475/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/openuridialog.cpp.o
[476/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionfilterproxy.cpp.o
[477/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondescdialog.cpp.o
[478/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addresstablemodel.cpp.o
[479/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receiverequestdialog.cpp.o
[480/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/overviewpage.cpp.o
[481/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/recentrequeststablemodel.cpp.o
[482/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsentry.cpp.o
[483/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroldialog.cpp.o
[484/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionrecord.cpp.o
[485/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receivecoinsdialog.cpp.o
[486/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletframe.cpp.o
[487/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentserver.cpp.o
[488/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/signverifymessagedialog.cpp.o
[489/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionview.cpp.o
[490/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodeltransaction.cpp.o
[491/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiontablemodel.cpp.o
[492/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondesc.cpp.o
[493/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentrequestplus.cpp.o
[494/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsdialog.cpp.o
[495/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletcontroller.cpp.o
[496/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodel.cpp.o
[497/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletview.cpp.o
[498/503] Linking CXX static library src/qt/libbitcoin-qt-base.a
[499/503] Automatic MOC for target bitcoin-qt
[500/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[501/503] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[502/503] Linking CXX executable src/qt/bitcoin-qt
FAILED: src/qt/bitcoin-qt 
: && /usr/bin/c++  -Werror -g -O2  -fuse-ld=gold -Wl,-z,relro -Wl,-z,now -fPIE -pie src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o  -o src/qt/bitcoin-qt  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  src/qt/libbitcoin-qt-base.a  src/libserver.a  src/leveldb/libleveldb.a  src/leveldb/libleveldb-sse4.2.a  src/leveldb/libmemenv.a  /usr/lib/x86_64-linux-gnu/libevent_pthreads.so  /usr/lib/x86_64-linux-gnu/libminiupnpc.so  src/zmq/libzmq.a  /usr/lib/x86_64-linux-gnu/libzmq.so  src/librpcclient.a  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Network.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.11.3  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.11.3  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libprotobuf.so  src/wallet/libwallet.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libbitcoinconsensus.a  src/libscript.a  src/libcommon.a  src/libutil.a  /usr/lib/x86_64-linux-gnu/libevent.so  src/crypto/libcrypto.a  src/crypto/libcrypto_sse4.1.a  src/crypto/libcrypto_avx2.a  src/crypto/libcrypto_shani.a  /usr/lib/x86_64-linux-gnu/libboost_filesystem.so  /usr/lib/x86_64-linux-gnu/libboost_thread.so  /usr/lib/x86_64-linux-gnu/libboost_chrono.so  /usr/lib/x86_64-linux-gnu/libboost_system.so  /usr/lib/x86_64-linux-gnu/libboost_date_time.so  /usr/lib/x86_64-linux-gnu/libboost_atomic.so  src/secp256k1/libsecp256k1.a  src/univalue/libunivalue.a  /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a  -lm  -pthread  -ldl  /usr/lib/x86_64-linux-gnu/libdb_cxx.so  /usr/lib/x86_64-linux-gnu/libqrencode.so && :
../../src/net_processing.cpp:3975: error: undefined reference to 'NetMsgType::AVAPROOF'
collect2: error: ld returned 1 exit status
ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

don't forget to define the AVAPROOF net msg type

PiRK planned changes to this revision.Mar 17 2021, 14:14

implement missing step in the avalanche handshake:
after receiving a avahello message, a node requests the proof corresponding to the proofid in the delegation,
and now the other node responds to this request with its proof.

This is now missing a test, to make sure it actually works.

PiRK planned changes to this revision.Mar 17 2021, 15:16
PiRK planned changes to this revision.Mar 18 2021, 08:33

rebase on top of D9329 to factor out the remote challenge generation

PiRK planned changes to this revision.Mar 18 2021, 09:24

add a basic test

For now, I keep it minimalistic, because this diff is already large.
In a future diff, I can implement Proof serialization and deserialization in the test framework, based on work already done in Electrum ABC, to inspect more in details the handshake data.

Failed tests logs:

====== Bitcoin ABC functional tests: abc-get-invalid-block.py ======

------- Stdout: -------
2021-03-18T14:25:23.665000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_  _20210318_142414/abc-get-invalid-block_218
2021-03-18T14:25:24.173000Z TestFramework (ERROR): Unexpected exception caught during testing
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 128, in main
    self.run_test()
  File "/work/test/functional/abc-get-invalid-block.py", line 65, in run_test
    node.p2p.send_message(msg)
  File "/work/test/functional/test_framework/mininode.py", line 264, in send_message
    tmsg = self.build_message(message)
  File "/work/test/functional/test_framework/mininode.py", line 289, in build_message
    data = message.serialize()
  File "/work/test/functional/test_framework/messages.py", line 1238, in serialize
    return ser_vector(self.inv)
  File "/work/test/functional/test_framework/messages.py", line 168, in ser_vector
    r += i.serialize()
  File "/work/test/functional/test_framework/messages.py", line 320, in serialize
    r += struct.pack("<i", self.type)
struct.error: required argument is not an integer
2021-03-18T14:25:24.224000Z TestFramework (INFO): Stopping nodes
2021-03-18T14:25:24.626000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_  _20210318_142414/abc-get-invalid-block_218
2021-03-18T14:25:24.626000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_  _20210318_142414/abc-get-invalid-block_218/test_framework.log
2021-03-18T14:25:24.626000Z TestFramework (ERROR): 
2021-03-18T14:25:24.626000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_  _20210318_142414/abc-get-invalid-block_218' to consolidate all logs
2021-03-18T14:25:24.626000Z TestFramework (ERROR): 
2021-03-18T14:25:24.626000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2021-03-18T14:25:24.626000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2021-03-18T14:25:24.626000Z TestFramework (ERROR):

Each failure log is accessible here:
Bitcoin ABC functional tests: abc-get-invalid-block.py

Failed tests logs:

====== Bitcoin ABC functional tests: abc-get-invalid-block.py ======

------- Stdout: -------
2021-03-18T14:26:32.631000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210318_142303/abc-get-invalid-block_505
2021-03-18T14:26:33.163000Z TestFramework (ERROR): Unexpected exception caught during testing
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 128, in main
    self.run_test()
  File "/work/test/functional/abc-get-invalid-block.py", line 65, in run_test
    node.p2p.send_message(msg)
  File "/work/test/functional/test_framework/mininode.py", line 264, in send_message
    tmsg = self.build_message(message)
  File "/work/test/functional/test_framework/mininode.py", line 289, in build_message
    data = message.serialize()
  File "/work/test/functional/test_framework/messages.py", line 1238, in serialize
    return ser_vector(self.inv)
  File "/work/test/functional/test_framework/messages.py", line 168, in ser_vector
    r += i.serialize()
  File "/work/test/functional/test_framework/messages.py", line 320, in serialize
    r += struct.pack("<i", self.type)
struct.error: required argument is not an integer
2021-03-18T14:26:33.213000Z TestFramework (INFO): Stopping nodes
2021-03-18T14:26:33.416000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210318_142303/abc-get-invalid-block_505
2021-03-18T14:26:33.416000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210318_142303/abc-get-invalid-block_505/test_framework.log
2021-03-18T14:26:33.416000Z TestFramework (ERROR): 
2021-03-18T14:26:33.416000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210318_142303/abc-get-invalid-block_505' to consolidate all logs
2021-03-18T14:26:33.416000Z TestFramework (ERROR): 
2021-03-18T14:26:33.417000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2021-03-18T14:26:33.417000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2021-03-18T14:26:33.417000Z TestFramework (ERROR):
====== Bitcoin ABC functional tests: p2p_compactblocks.py ======

------- Stdout: -------
2021-03-18T14:24:18.904000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210318_142303/p2p_compactblocks_416
2021-03-18T14:24:19.904000Z TestFramework (INFO): Running tests:
2021-03-18T14:24:19.904000Z TestFramework (INFO): 	Testing SENDCMPCT p2p message... 
2021-03-18T14:24:22.029000Z TestFramework (INFO): 	Testing compactblock construction...
2021-03-18T14:24:25.684000Z TestFramework (ERROR): Unexpected exception caught during testing
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 128, in main
    self.run_test()
  File "/work/test/functional/p2p_compactblocks.py", line 862, in run_test
    self.test_compactblock_construction(self.nodes[0], self.test_node)
  File "/work/test/functional/p2p_compactblocks.py", line 360, in test_compactblock_construction
    test_node.send_message(msg_getdata([inv]))
  File "/work/test/functional/test_framework/mininode.py", line 264, in send_message
    tmsg = self.build_message(message)
  File "/work/test/functional/test_framework/mininode.py", line 289, in build_message
    data = message.serialize()
  File "/work/test/functional/test_framework/messages.py", line 1238, in serialize
    return ser_vector(self.inv)
  File "/work/test/functional/test_framework/messages.py", line 168, in ser_vector
    r += i.serialize()
  File "/work/test/functional/test_framework/messages.py", line 320, in serialize
    r += struct.pack("<i", self.type)
struct.error: required argument is not an integer
2021-03-18T14:24:25.736000Z TestFramework (INFO): Stopping nodes
2021-03-18T14:24:26.088000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210318_142303/p2p_compactblocks_416
2021-03-18T14:24:26.088000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210318_142303/p2p_compactblocks_416/test_framework.log
2021-03-18T14:24:26.088000Z TestFramework (ERROR): 
2021-03-18T14:24:26.088000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210318_142303/p2p_compactblocks_416' to consolidate all logs
2021-03-18T14:24:26.089000Z TestFramework (ERROR): 
2021-03-18T14:24:26.089000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2021-03-18T14:24:26.089000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2021-03-18T14:24:26.089000Z TestFramework (ERROR):

Each failure log is accessible here:
Bitcoin ABC functional tests: abc-get-invalid-block.py
Bitcoin ABC functional tests: p2p_compactblocks.py

Failed tests logs:

====== Bitcoin ABC functional tests: abc-get-invalid-block.py ======

------- Stdout: -------
2021-03-18T14:24:09.863000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142133/abc-get-invalid-block_374
2021-03-18T14:24:10.463000Z TestFramework (ERROR): Unexpected exception caught during testing
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 128, in main
    self.run_test()
  File "/work/test/functional/abc-get-invalid-block.py", line 65, in run_test
    node.p2p.send_message(msg)
  File "/work/test/functional/test_framework/mininode.py", line 264, in send_message
    tmsg = self.build_message(message)
  File "/work/test/functional/test_framework/mininode.py", line 289, in build_message
    data = message.serialize()
  File "/work/test/functional/test_framework/messages.py", line 1238, in serialize
    return ser_vector(self.inv)
  File "/work/test/functional/test_framework/messages.py", line 168, in ser_vector
    r += i.serialize()
  File "/work/test/functional/test_framework/messages.py", line 320, in serialize
    r += struct.pack("<i", self.type)
struct.error: required argument is not an integer
2021-03-18T14:24:10.517000Z TestFramework (INFO): Stopping nodes
2021-03-18T14:24:10.972000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142133/abc-get-invalid-block_374
2021-03-18T14:24:10.972000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142133/abc-get-invalid-block_374/test_framework.log
2021-03-18T14:24:10.972000Z TestFramework (ERROR): 
2021-03-18T14:24:10.972000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142133/abc-get-invalid-block_374' to consolidate all logs
2021-03-18T14:24:10.972000Z TestFramework (ERROR): 
2021-03-18T14:24:10.972000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2021-03-18T14:24:10.972000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2021-03-18T14:24:10.972000Z TestFramework (ERROR):
====== Bitcoin ABC functional tests: p2p_compactblocks.py ======

------- Stdout: -------
2021-03-18T14:22:32.328000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142133/p2p_compactblocks_285
2021-03-18T14:22:33.130000Z TestFramework (INFO): Running tests:
2021-03-18T14:22:33.130000Z TestFramework (INFO): 	Testing SENDCMPCT p2p message... 
2021-03-18T14:22:35.214000Z TestFramework (INFO): 	Testing compactblock construction...
2021-03-18T14:22:36.030000Z TestFramework (ERROR): Unexpected exception caught during testing
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 128, in main
    self.run_test()
  File "/work/test/functional/p2p_compactblocks.py", line 862, in run_test
    self.test_compactblock_construction(self.nodes[0], self.test_node)
  File "/work/test/functional/p2p_compactblocks.py", line 360, in test_compactblock_construction
    test_node.send_message(msg_getdata([inv]))
  File "/work/test/functional/test_framework/mininode.py", line 264, in send_message
    tmsg = self.build_message(message)
  File "/work/test/functional/test_framework/mininode.py", line 289, in build_message
    data = message.serialize()
  File "/work/test/functional/test_framework/messages.py", line 1238, in serialize
    return ser_vector(self.inv)
  File "/work/test/functional/test_framework/messages.py", line 168, in ser_vector
    r += i.serialize()
  File "/work/test/functional/test_framework/messages.py", line 320, in serialize
    r += struct.pack("<i", self.type)
struct.error: required argument is not an integer
2021-03-18T14:22:36.081000Z TestFramework (INFO): Stopping nodes
2021-03-18T14:22:36.233000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142133/p2p_compactblocks_285
2021-03-18T14:22:36.233000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142133/p2p_compactblocks_285/test_framework.log
2021-03-18T14:22:36.233000Z TestFramework (ERROR): 
2021-03-18T14:22:36.233000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142133/p2p_compactblocks_285' to consolidate all logs
2021-03-18T14:22:36.233000Z TestFramework (ERROR): 
2021-03-18T14:22:36.233000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2021-03-18T14:22:36.233000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2021-03-18T14:22:36.233000Z TestFramework (ERROR):
====== Bitcoin ABC functional tests with the next upgrade activated: abc-get-invalid-block.py ======

------- Stdout: -------
2021-03-18T14:27:17.962000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142427/abc-get-invalid-block_633
2021-03-18T14:27:18.488000Z TestFramework (ERROR): Unexpected exception caught during testing
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 128, in main
    self.run_test()
  File "/work/test/functional/abc-get-invalid-block.py", line 65, in run_test
    node.p2p.send_message(msg)
  File "/work/test/functional/test_framework/mininode.py", line 264, in send_message
    tmsg = self.build_message(message)
  File "/work/test/functional/test_framework/mininode.py", line 289, in build_message
    data = message.serialize()
  File "/work/test/functional/test_framework/messages.py", line 1238, in serialize
    return ser_vector(self.inv)
  File "/work/test/functional/test_framework/messages.py", line 168, in ser_vector
    r += i.serialize()
  File "/work/test/functional/test_framework/messages.py", line 320, in serialize
    r += struct.pack("<i", self.type)
struct.error: required argument is not an integer
2021-03-18T14:27:18.540000Z TestFramework (INFO): Stopping nodes
2021-03-18T14:27:18.842000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142427/abc-get-invalid-block_633
2021-03-18T14:27:18.842000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142427/abc-get-invalid-block_633/test_framework.log
2021-03-18T14:27:18.842000Z TestFramework (ERROR): 
2021-03-18T14:27:18.842000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142427/abc-get-invalid-block_633' to consolidate all logs
2021-03-18T14:27:18.842000Z TestFramework (ERROR): 
2021-03-18T14:27:18.842000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2021-03-18T14:27:18.843000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2021-03-18T14:27:18.843000Z TestFramework (ERROR):
====== Bitcoin ABC functional tests with the next upgrade activated: p2p_compactblocks.py ======

------- Stdout: -------
2021-03-18T14:25:32.141000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142427/p2p_compactblocks_544
2021-03-18T14:25:32.920000Z TestFramework (INFO): Running tests:
2021-03-18T14:25:32.920000Z TestFramework (INFO): 	Testing SENDCMPCT p2p message... 
2021-03-18T14:25:35.001000Z TestFramework (INFO): 	Testing compactblock construction...
2021-03-18T14:25:36.197000Z TestFramework (ERROR): Unexpected exception caught during testing
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 128, in main
    self.run_test()
  File "/work/test/functional/p2p_compactblocks.py", line 862, in run_test
    self.test_compactblock_construction(self.nodes[0], self.test_node)
  File "/work/test/functional/p2p_compactblocks.py", line 360, in test_compactblock_construction
    test_node.send_message(msg_getdata([inv]))
  File "/work/test/functional/test_framework/mininode.py", line 264, in send_message
    tmsg = self.build_message(message)
  File "/work/test/functional/test_framework/mininode.py", line 289, in build_message
    data = message.serialize()
  File "/work/test/functional/test_framework/messages.py", line 1238, in serialize
    return ser_vector(self.inv)
  File "/work/test/functional/test_framework/messages.py", line 168, in ser_vector
    r += i.serialize()
  File "/work/test/functional/test_framework/messages.py", line 320, in serialize
    r += struct.pack("<i", self.type)
struct.error: required argument is not an integer
2021-03-18T14:25:36.248000Z TestFramework (INFO): Stopping nodes
2021-03-18T14:25:36.500000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142427/p2p_compactblocks_544
2021-03-18T14:25:36.500000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142427/p2p_compactblocks_544/test_framework.log
2021-03-18T14:25:36.500000Z TestFramework (ERROR): 
2021-03-18T14:25:36.500000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210318_142427/p2p_compactblocks_544' to consolidate all logs
2021-03-18T14:25:36.500000Z TestFramework (ERROR): 
2021-03-18T14:25:36.500000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2021-03-18T14:25:36.500000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2021-03-18T14:25:36.501000Z TestFramework (ERROR):

Each failure log is accessible here:
Bitcoin ABC functional tests: abc-get-invalid-block.py
Bitcoin ABC functional tests: p2p_compactblocks.py
Bitcoin ABC functional tests with the next upgrade activated: abc-get-invalid-block.py
Bitcoin ABC functional tests with the next upgrade activated: p2p_compactblocks.py

PiRK planned changes to this revision.Mar 19 2021, 10:05

must fix another test broken by change to CInv

fix typo: I accidentaly turned MSG_CMPCT_BLOCK into a tuple by appending a comma to the line

Fabien requested changes to this revision.Mar 19 2021, 10:53
Fabien added a subscriber: Fabien.
Fabien added inline comments.
src/avalanche/processor.cpp
445 ↗(On Diff #27959)

Don't use an assert when there is a valid reason for this var to be null, here when -avaproof is not set.

src/net_processing.cpp
2075 ↗(On Diff #27959)

we really need a better way to do this

2078 ↗(On Diff #27959)

const

2079 ↗(On Diff #27959)

const

3983 ↗(On Diff #27959)

*from here

3992 ↗(On Diff #27959)

Can probably be done later, but it would be a good idea to store the proof to prevent asking for it several times if shared between nodes.

4008 ↗(On Diff #27959)

This is duplicated *

4032 ↗(On Diff #27959)

We should also ban the peer. There are a quite a few signature verifications happening with each proof, so we don't want a byzantine node to send us false proofs with a lot of signed stakes to verify.

src/protocol.h
499 ↗(On Diff #27959)

That's no longer true

This revision now requires changes to proceed.Mar 19 2021, 10:53

address most of the review items

src/avalanche/processor.cpp
445 ↗(On Diff #27959)

OK. I will use a throw std::runtime_error and document the behavior in processor.h.

src/net_processing.cpp
4008 ↗(On Diff #27959)

I will remove the local variable in the other block in which it is used less often (2 times), and just use pfrom.m_avalanche_state->delegation

4032 ↗(On Diff #27959)

OK.
I will need to test this banning behavior, as well as the one just above (invalid-avalanche-handshake), but in another diff. The functional test needs splitting into smaller tests.

src/protocol.h
499 ↗(On Diff #27959)

I think it is still true for now. We use GETDATA to ask for the proof, we do not advertise proofs with a NetMsgType::INV message if not asked for it first.

Fabien requested changes to this revision.Wed, Mar 24, 09:39

This needs rebase

This revision now requires changes to proceed.Wed, Mar 24, 09:39
PiRK planned changes to this revision.Wed, Mar 24, 12:33

Node registration must be postponed after end of IBD.

Fabien requested changes to this revision.Wed, Mar 24, 12:51
Fabien added inline comments.
src/net_processing.cpp
4008 ↗(On Diff #28005)

const
Also you need to check that the delegation is non null. You can receive the proof message before the hello

4020 ↗(On Diff #28005)

not needed, just:

if (!pubkey.VerifySchnorr(hash, pfrom.m_avalanche_state->sig)) {
    [....]

don't register the nodes while IBD is ongoing. Queue them for later.

PiRK planned changes to this revision.Wed, Mar 24, 17:13

address the easy items of the review*, and also remove node from queue when it sends a duplicate proof (we ban it anyway)

const, remove unecessary bool success

TODO: handle case of avaproof sent before avahello (no delegation available)

PiRK planned changes to this revision.Wed, Mar 24, 17:30

handle the case of avaproof message before avahello: discourage the peer and ignore the proof