Page MenuHomePhabricator

[CashAddr] deprecate legacy prefixes maintaining backwards compatibility
AcceptedPublic

Authored by majcosta on Jan 21 2021, 21:52.

Details

Reviewers
PiRK
Group Reviewers
Restricted Project
Summary

As title

It has come to my attention that some mining software make validateaddress RPC calls to the node.

To prevent friction in the transition to new prefixes, we deprecate now to give everyone ample time to switch addresses.

Depends on D8692

Test Plan
ninja all check check-functional

Diff Detail

Repository
rABC Bitcoin ABC
Branch
different_prefixes_per_network
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 15134
Build 30218: Build Diffbuild-diff · lint-circular-dependencies · build-clang · build-debug · build-without-wallet · build-clang-tidy
Build 30217: arc lint + arc unit

Event Timeline

Tail of the build log:

[323/500] Linking C static library src/secp256k1/libsecp256k1.a
[324/500] Linking CXX static library src/libbitcoinconsensus.a
[325/500] Building CXX object src/CMakeFiles/common.dir/chainparams.cpp.o
[326/500] Linking C executable src/secp256k1/ecmult-bench
[327/500] Linking C executable src/secp256k1/internal-bench
[328/500] Linking C executable src/secp256k1/sign-bench
[329/500] Linking C executable src/secp256k1/verify-bench
[330/500] Linking C executable src/secp256k1/recover-bench
[331/500] Installing component secp256k1
-- Install configuration: "Debug"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[332/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[333/500] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[334/500] Building CXX object src/CMakeFiles/common.dir/key_io.cpp.o
[335/500] Building CXX object src/CMakeFiles/common.dir/protocol.cpp.o
[336/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[337/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[338/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[339/500] Building CXX object src/CMakeFiles/common.dir/networks/abc/checkpoints.cpp.o
[340/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[341/500] Building CXX object src/CMakeFiles/server.dir/txmempool.cpp.o
[342/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[343/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[344/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[345/500] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[346/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[347/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[348/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[349/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[350/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[351/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[352/500] Building CXX object src/CMakeFiles/server.dir/wallet/init.cpp.o
[353/500] Building CXX object src/CMakeFiles/server.dir/torcontrol.cpp.o
[354/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[355/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[356/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[357/500] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[358/500] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[359/500] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[360/500] Linking CXX static library src/libscript.a
[361/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[362/500] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[363/500] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
[364/500] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[365/500] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[366/500] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[367/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[368/500] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[369/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[370/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[371/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[372/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[373/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-debug failed with exit code 1

Tail of the build log:

[323/500] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[324/500] Linking C static library src/secp256k1/libsecp256k1.a
[325/500] Linking CXX static library src/libbitcoinconsensus.a
[326/500] Linking C executable src/secp256k1/ecmult-bench
[327/500] Linking C executable src/secp256k1/internal-bench
[328/500] Linking C executable src/secp256k1/sign-bench
[329/500] Building CXX object src/CMakeFiles/common.dir/chainparams.cpp.o
[330/500] Linking C executable src/secp256k1/verify-bench
[331/500] Linking C executable src/secp256k1/recover-bench
[332/500] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[333/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[334/500] Building CXX object src/CMakeFiles/common.dir/networks/abc/checkpoints.cpp.o
[335/500] Building CXX object src/CMakeFiles/common.dir/protocol.cpp.o
[336/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[337/500] Building CXX object src/CMakeFiles/server.dir/rpc/mining.cpp.o
[338/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[339/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[340/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[341/500] Building CXX object src/CMakeFiles/server.dir/net_processing.cpp.o
[342/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[343/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[344/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[345/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[346/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[347/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[348/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[349/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[350/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[351/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[352/500] Building CXX object src/CMakeFiles/server.dir/init.cpp.o
[353/500] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[354/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[355/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[356/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[357/500] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[358/500] Linking CXX static library src/libscript.a
[359/500] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[360/500] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[361/500] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[362/500] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
[363/500] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[364/500] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[365/500] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[366/500] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[367/500] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[368/500] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[369/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[370/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[371/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[372/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[373/500] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

Tail of the build log:

[295/447] Building CXX object src/CMakeFiles/server.dir/pow/daa.cpp.o
[296/447] Building CXX object src/CMakeFiles/server.dir/miner.cpp.o
[297/447] Building CXX object src/CMakeFiles/server.dir/pow/eda.cpp.o
[298/447] Building CXX object src/CMakeFiles/server.dir/noui.cpp.o
[299/447] Building CXX object src/CMakeFiles/server.dir/pow/grasberg.cpp.o
[300/447] Building CXX object src/CMakeFiles/server.dir/node/transaction.cpp.o
[301/447] Building CXX object src/CMakeFiles/server.dir/rpc/command.cpp.o
[302/447] Building CXX object src/CMakeFiles/server.dir/pow/aserti32d.cpp.o
[303/447] Building CXX object src/CMakeFiles/server.dir/pow/pow.cpp.o
[304/447] Building CXX object src/CMakeFiles/server.dir/net.cpp.o
[305/447] Building CXX object src/CMakeFiles/server.dir/script/scriptcache.cpp.o
[306/447] Building CXX object src/CMakeFiles/server.dir/shutdown.cpp.o
[307/447] Building CXX object src/CMakeFiles/server.dir/node/ui_interface.cpp.o
[308/447] Building CXX object src/CMakeFiles/server.dir/rpc/abc.cpp.o
[309/447] Building CXX object src/CMakeFiles/server.dir/rest.cpp.o
[310/447] Building CXX object src/CMakeFiles/server.dir/rpc/avalanche.cpp.o
[311/447] Building CXX object src/CMakeFiles/server.dir/rpc/misc.cpp.o
[312/447] Building CXX object src/CMakeFiles/server.dir/timedata.cpp.o
[313/447] Building CXX object src/CMakeFiles/server.dir/script/sigcache.cpp.o
[314/447] Building CXX object src/CMakeFiles/server.dir/versionbits.cpp.o
[315/447] Building CXX object src/CMakeFiles/server.dir/rpc/server.cpp.o
[316/447] Building CXX object src/CMakeFiles/server.dir/dummywallet.cpp.o
[317/447] Building CXX object src/CMakeFiles/server.dir/validationinterface.cpp.o
[318/447] Building CXX object src/CMakeFiles/server.dir/rpc/net.cpp.o
[319/447] Building CXX object src/CMakeFiles/server.dir/rpc/mining.cpp.o
[320/447] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[321/447] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[322/447] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[323/447] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[324/447] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[325/447] Building CXX object src/CMakeFiles/server.dir/net_processing.cpp.o
[326/447] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[327/447] Building CXX object src/CMakeFiles/server.dir/init.cpp.o
[328/447] Building CXX object src/CMakeFiles/server.dir/txdb.cpp.o
[329/447] Linking CXX static library src/zmq/libzmq.a
[330/447] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[331/447] Linking C static library src/secp256k1/libsecp256k1.a
[332/447] Linking C executable src/secp256k1/ecmult-bench
[333/447] Linking C executable src/secp256k1/internal-bench
[334/447] Building CXX object src/CMakeFiles/server.dir/torcontrol.cpp.o
[335/447] Linking C executable src/secp256k1/sign-bench
[336/447] Linking C executable src/secp256k1/verify-bench
[337/447] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[338/447] Linking C executable src/secp256k1/recover-bench
[339/447] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[340/447] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[341/447] Building CXX object src/CMakeFiles/server.dir/txmempool.cpp.o
[342/447] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[343/447] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[344/447] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[345/447] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[346/447] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[347/447] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[348/447] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[349/447] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[350/447] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[351/447] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[352/447] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

fix missing braces error for gcc-8

Failed tests logs:

====== Bitcoin ABC functional tests: mempool_unbroadcast.py ======

------- Stdout: -------
2021-01-22T00:39:45.774000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210122_003606/mempool_unbroadcast_652
2021-01-22T00:39:46.192000Z TestFramework (INFO): Test that mempool reattempts delivery of locally submitted transaction
2021-01-22T00:39:46.628000Z TestFramework (INFO): Generate transactions that only node 0 knows about
2021-01-22T00:39:46.781000Z TestFramework (ERROR): JSONRPC error
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 120, in main
    self.run_test()
  File "/work/test/functional/mempool_unbroadcast.py", line 28, in run_test
    self.test_broadcast()
  File "/work/test/functional/mempool_unbroadcast.py", line 55, in test_broadcast
    rpc_tx_hsh = node.sendrawtransaction(txFS["hex"])
  File "/work/test/functional/test_framework/coverage.py", line 48, in __call__
    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
  File "/work/test/functional/test_framework/authproxy.py", line 159, in __call__
    raise JSONRPCException(response['error'], status)
test_framework.authproxy.JSONRPCException: txn-mempool-conflict (-26)
2021-01-22T00:39:46.833000Z TestFramework (INFO): Stopping nodes
2021-01-22T00:39:47.293000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210122_003606/mempool_unbroadcast_652
2021-01-22T00:39:47.293000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210122_003606/mempool_unbroadcast_652/test_framework.log
2021-01-22T00:39:47.294000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210122_003606/mempool_unbroadcast_652' to consolidate all logs

Each failure log is accessible here:
Bitcoin ABC functional tests: mempool_unbroadcast.py

Unrelated test failure fixed by D9022

PiRK requested changes to this revision.Jan 22 2021, 11:28

Code looks good. But you removed the executable flag for the functional test file.

This revision now requires changes to proceed.Jan 22 2021, 11:28
This revision is now accepted and ready to land.Jan 22 2021, 12:29