aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-07-28Merge bitcoin/bitcoin#22550: test: improve `test_signing_with_{csv,cltv}` ↵MarcoFalke
subtests (speed, prevent timeout) 12f094ec215aacf30e4e380c0399f80d4e45c345 test: use constants for CSV/CLTV activation heights in rpc_signrawtransaction (Sebastian Falbesoner) 746f203f1950a7df50b9a7de87a361cc7354ffb4 test: introduce `generate_to_height` helper, use in rpc_signrawtransaction (Sebastian Falbesoner) e3237b1cd07a5099fbb0108218194eb653b6a9f3 test: check that CSV/CLTV are active in rpc_signrawtransaction (Sebastian Falbesoner) Pull request description: This PR primarily aims to solve the current RPC timeout problem for test rpc_signrawtransaction.py, as described in #22542. In the course of that the test is also improved in other ways (see https://github.com/bitcoin/bitcoin/pull/22542#pullrequestreview-714297804). Reviewers guideline: * In `test_signing_with_cltv()`, a comment is fixed -- it wrongly referred to CSV, it should be CLTV. * As preparation, assertions are added that ensure that CSV and CLTV have been really activated after generating blocks by checking the 'softforks' output of the getblockchaininfo() RPC. Right now in master, one could remove (or decrease, like in #22542) the generate calls and the test would still pass, when it shouldn't. * A helper `generate_to_height()` is introduced which improves the previous way of reaching a block height in two ways: - instead of blindly generating TH blocks to reach target block height >= TH, the current block height CH is taken into account, and only (TH - CH) are generated in total - to avoid potential RPC timeouts, the block generation is split up into multiple generatetoaddress RPC calls ([as suggested by laanwj](https://github.com/bitcoin/bitcoin/pull/22542#issuecomment-886237866)); here chunks of 200 blocks have been chosen * The helper is used in the affected sub-tests, which should both speed-up the test (from ~18s to ~12s on my machine) and avoid potential timeouts * Finally, the activation constants for CSV and CLTV are used instead of using magic numbers 500 and 1500 Open questions: * Any good naming alternatives for `generate_to_height()`? Not really happy with the name, happy to hear suggestions * Where to put the CSV and CLTV activation height constants in the test_framewor folder? I guess importing constants from other tests isn't really the desired way to go ACKs for top commit: laanwj: Code review and tested ACK 12f094ec215aacf30e4e380c0399f80d4e45c345 rajarshimaitra: reACK https://github.com/bitcoin/bitcoin/pull/22550/commits/12f094ec215aacf30e4e380c0399f80d4e45c345 Tree-SHA512: 14509f6d3e5a5a05d6a30a3145bb82cd96a29d9d8a589abf1944a8bf34291cde78ce711195f52e9426588dc822b3618ec9b455e057360021ae46152bb7613516
2021-07-28Merge bitcoin/bitcoin#22557: fuzz: silence a compiler warning about unused ↵fanquake
CBanEntry comparator 787296eb6744b15ab693c053e4030ff68dfc95e0 fuzz: silence a compiler warning about unused CBanEntry comparator (Vasil Dimov) Pull request description: ``` test/fuzz/banman.cpp:35:13: warning: unused function 'operator==' [-Wunused-function] static bool operator==(const CBanEntry& lhs, const CBanEntry& rhs) ^ 1 warning generated. ``` See https://github.com/bitcoin/bitcoin/pull/22517#issuecomment-886177699 ACKs for top commit: MarcoFalke: cr ACK 787296eb6744b15ab693c053e4030ff68dfc95e0 practicalswift: cr ACK 787296eb6744b15ab693c053e4030ff68dfc95e0 hebasto: ACK 787296eb6744b15ab693c053e4030ff68dfc95e0 Tree-SHA512: 72e483cef249170160879cf4b69b787fb6c539d61dda423f618e2c5f130bee8c42897487751e5b58e7679cdb0153eb80efcb104e8a85095daa60d47e39ce78b8
2021-07-27Merge bitcoin/bitcoin#22006: tracing: first tracepoints and documentation on ↵W. J. van der Laan
User-Space, Statically Defined Tracing (USDT) 8f37f5c2a562c38c83fc40234ade9c301fc4e685 tracing: Tracepoint for connected blocks (0xb10c) 4224dec22baa66547303840707cf1d4f15a49b20 tracing: Tracepoints for in- and outbound P2P msgs (0xb10c) 469b71ae629228b2591a55831817a0e5fad89360 doc: document systemtap dependency (0xb10c) 84ace9aef116a05e034730f2bb2f109d1d77aac7 doc: Add initial USDT documentation (0xb10c) Pull request description: This PR adds documentation for User-Space, Statically Defined Tracing (USDT) as well as three tracepoints (including documentation and usage examples). ## Context The `TRACEx` macros for tracepoints and build system changes for USDT were merged in https://github.com/bitcoin/bitcoin/pull/19866 earlier this year. Issue https://github.com/bitcoin/bitcoin/issues/20981 contains discussion about potential tracepoints and guidelines for adding them (also documented with this PR). USDT was a topic in a [core-dev-meeting discussion](https://bitcoin.jonasschnelli.ch/ircmeetings/logs/bitcoin-core-dev/2021/bitcoin-core-dev.2021-01-21-19.00.moin.txt) on 21st Jan, 2021. - [collabora.com: An eBPF overview, part 1: Introduction](https://www.collabora.com/news-and-blog/blog/2019/04/05/an-ebpf-overview-part-1-introduction/) - [collabora.com: An eBPF overview, part 2: Machine & bytecode](https://www.collabora.com/news-and-blog/blog/2019/04/15/an-ebpf-overview-part-2-machine-and-bytecode/) - [Brendan D. Gregg's blog posts, and book on on eBPF](http://www.brendangregg.com/) - [Brendan D. Gregg: Linux bcc/BPF Node.js USDT Tracing](http://www.brendangregg.com/blog/2016-10-12/linux-bcc-nodejs-usdt.html) ## USDT? Stablecoin? User-space, Statically Defined Tracing (USDT) allows for more observability during development, debugging, code review, and production usage. The tracepoints make it possible to keep track of custom statistics and enable detailed monitoring of otherwise hidden internals and have little to no performance impact when unused. Linux kernels (4.x or newer) can hook into the tracepoints and execute [eBPF] programs in a kernel VM once the tracepoint is called. This PR includes, for example, tracepoints for in- and outbound P2P messages. ``` USDT and eBPF Overview ====================== ┌──────────────────┐ ┌──────────────┐ │ tracing script │ │ bitcoind │ │==================│ 2. │==============│ │ eBPF │ tracing │ hooks │ │ │ code │ logic │ into┌─┤►tracepoint 1─┼───┐ 3. └────┬───┴──▲──────┘ ├─┤►tracepoint 2 │ │ pass args 1. │ │ 4. │ │ ... │ │ to eBPF User compiles │ │ pass data to │ └──────────────┘ │ program Space & loads │ │ tracing script │ │ ─────────────────┼──────┼─────────────────┼────────────────────┼─── Kernel │ │ │ │ Space ┌──┬─▼──────┴─────────────────┴────────────┐ │ │ │ eBPF program │◄──────┘ │ └───────────────────────────────────────┤ │ eBPF kernel Virtual Machine (sandboxed) │ └──────────────────────────────────────────┘ 1. The tracing script compiles the eBPF code and loads the eBFP program into a kernel VM 2. The eBPF program hooks into one or more tracepoints 3. When the tracepoint is called, the arguments are passed to the eBPF program 4. The eBPF program processes the arguments and returns data to the tracing script ``` The two main [eBPF] front-ends with support for USDT are [bpftrace] an [BPF Compiler Collection (BCC)]. BCC is used for complex tools and daemons and `bpftrace` is preferred for one-liners and shorter scripts. Example tracing scripts for both are provided with this PR. [eBPF]: https://ebpf.io/ [bpftrace]: https://github.com/iovisor/bpftrace [BPF Compiler Collection (BCC)]: https://github.com/iovisor/bcc This PR adds three tracepoints: - `net:inbound_message` - `net:outbound_message` - `valildation:block_connected` See `doc/tracing.md` and `contrib/tracing/` for documentation and example tracing scripts. ## Open Questions (Not in scope for this PR) - How to use these tracepoints under macOS? - Release builds with USDT support? - Should and can the tracepoints be automatically tested? ## Todo (before undraft) - [x] bcc example showing how to read raw P2P messages up to 32kb - [x] document that you need `sys/sdt.h` from `systemtap` for USDT support in Bitcoin Core (`apt install systemtap-sdt-dev` on debian-like). See https://github.com/bitcoin/bitcoin/pull/19866/commits/933ab8a720cb9b3341adec4109cffb6dc5b322a5 - [ ] release notes? ACKs for top commit: laanwj: re-ACK 8f37f5c2a562c38c83fc40234ade9c301fc4e685 jb55: ACK 8f37f5c2a562c38c83fc40234ade9c301fc4e685 Tree-SHA512: a92a8a2dfcd28465f58a6e5f50d39486817ef5f51214ec40bdb02a6843b9c08ea154fadb31558825ff3a4687477b90f2a5da5d6451989eef978e128a264c289d
2021-07-27tracing: Tracepoint for connected blocks0xb10c
Can, for example, be used to benchmark block connections.
2021-07-27tracing: Tracepoints for in- and outbound P2P msgs0xb10c
Can be used to monitor in- and outbound node traffic. Based on ealier work by jb55. Co-authored-by: William Casarin <jb55@jb55.com>
2021-07-27doc: document systemtap dependency0xb10c
2021-07-27doc: Add initial USDT documentation0xb10c
Both added files are extended in the following commits. doc/usdt.md is based on earlier work by laanwj. Co-authored-by: W. J. van der Laan <laanwj@protonmail.com>
2021-07-27fuzz: silence a compiler warning about unused CBanEntry comparatorVasil Dimov
``` test/fuzz/banman.cpp:35:13: warning: unused function 'operator==' [-Wunused-function] static bool operator==(const CBanEntry& lhs, const CBanEntry& rhs) ^ 1 warning generated. ```
2021-07-27Merge bitcoin/bitcoin#22561: Fix typo in commentMarcoFalke
4148c5228fe26175141c84af3e0465088dcfd869 Fix typo in comment (Cuong V. Nguyen) Pull request description: ACKs for top commit: theStack: ACK 4148c5228fe26175141c84af3e0465088dcfd869 Tree-SHA512: 03166a3398135fc0f8e0552ff8fd85e0a0b406b847a2b4c101ccf5db13d1b948582b642d22a2160c8a5eb587ccbc281d986728026bab48527be56d5af6c1f033
2021-07-27Merge bitcoin/bitcoin#22495: p2p: refactor: tidy up ↵MarcoFalke
`PeerManagerImpl::Misbehaving(...)` 8858e88c840197cdcabea07dd1380ef2aa4ece02 p2p: refactor: tidy up `PeerManagerImpl::Misbehaving(...)` (Sebastian Falbesoner) Pull request description: This simple refactoring PR has the goal to improve the readability of the `Misbehaving` method by - introducing constant variables `score_before` and `score_now` (to avoid repeatedly calculating the former) - deduplicating calls to LogPrint(), eliminates else-branch ACKs for top commit: jnewbery: utACK 8858e88c840197cdcabea07dd1380ef2aa4ece02 rajarshimaitra: tACK https://github.com/bitcoin/bitcoin/pull/22495/commits/8858e88c840197cdcabea07dd1380ef2aa4ece02 Tree-SHA512: 1d4dd5ac1d16ee9595edf4fa46e4960915a203641d74e6c33cffaba62ea71328834309a4451256fb45daf759f0cf6f4f199c46815afff6c89c0746e2ad4d4092
2021-07-27Merge bitcoin/bitcoin#22155: wallet test: Add test for subtract fee from ↵MarcoFalke
recipient behavior fe6dc76b7c9c5405f37464a3b19fcf82aaf22861 wallet test: Add test for subtract fee from recipient behavior (Russell Yanofsky) 2565478c813fb7278153b113de4b9338fc186872 wallet test refactor: add CreateSyncedWallet function (Russell Yanofsky) Pull request description: This adds test coverage for wallet subtract from recipient behavior without changing it. Behavior seems to have changed recently in a minor way in #17331 without being noticed. ACKs for top commit: achow101: ACK fe6dc76b7c9c5405f37464a3b19fcf82aaf22861 glozow: ACK fe6dc76b7c9c5405f37464a3b19fcf82aaf22861 promag: Code review ACK fe6dc76b7c9c5405f37464a3b19fcf82aaf22861. Tree-SHA512: e00c5dfe467e4ccef5edb0dd4fff6c53f35a37828a4327bea2e166751e5ef971d519ffca7b8f735b12912bb4a547980626356bc1855981005aed1a6c2a57be0b
2021-07-27Fix typo in commentCuong V. Nguyen
2021-07-27test: use constants for CSV/CLTV activation heights in rpc_signrawtransactionSebastian Falbesoner
2021-07-27test: introduce `generate_to_height` helper, use in rpc_signrawtransactionSebastian Falbesoner
This will speed up the test a bit and avoid potential .generate() RPC timeouts (in sub-test `test_signing_with_cltv()`) on slower machines.
2021-07-26p2p: refactor: tidy up `PeerManagerImpl::Misbehaving(...)`Sebastian Falbesoner
- introduce constant variables `score_before` and `score_after` in order to improve readability - deduplicate calls to LogPrint(), eliminates else-branch
2021-07-25test: check that CSV/CLTV are active in rpc_signrawtransactionSebastian Falbesoner
Without this check, the tests would also pass if the CSV and CLTV activation heights are not reached yet (e.g. if the .generate() calls before are removed), as the operations OP_CSV and OP_CLTV simply behave as NOPs. Also fixes a comment in the sub-test `test_signing_with_cltv()`.
2021-07-25Merge bitcoin/bitcoin#22454: fuzz: Limit max ops in tx_pool fuzz targetsMarcoFalke
fa33ed4b3fe422d6a6949cec04d2e14efc9ba3ca fuzz: Limit max ops in tx_pool fuzz targets (MarcoFalke) Pull request description: Without a size limit on the input data, the runtime is unbounded. Fix this by picking an upper bound on the maximum number of fuzz operations. Reproducer from OSS-Fuzz (without bug report): [clusterfuzz-testcase-tx_pool_standard-5963992253202432.log](https://github.com/bitcoin/bitcoin/files/6822465/clusterfuzz-testcase-tx_pool_standard-5963992253202432.log) ACKs for top commit: practicalswift: cr ACK fa33ed4b3fe422d6a6949cec04d2e14efc9ba3ca Tree-SHA512: 32098d573880afba12d510ac83519dc886a6c65d5207edb810f92c7c61edf5e2fc9c57e7b7a1ae656c02ce14e3595707dd6b93caf7956beb2bc817609e14d23d
2021-07-25Merge bitcoin/bitcoin#22453: fuzz: Limit max ops in rolling_bloom_filter ↵MarcoFalke
fuzz target faa86b71acefc8f2e366746a1c251888e6e686dd fuzz: Use ConsumeUInt256 helper to simplify rolling_bloom_filter fuzz test (MarcoFalke) aaaa61fd306e25379e6222e31bf160a6eb04f74e fuzz: Speed up rolling_bloom_filter fuzz test (MarcoFalke) Pull request description: Without a size limit on the input data, the runtime is unbounded. Fix this by picking an upper bound on the maximum number of fuzz operations. Reproducer from OSS-Fuzz (without bug report): [clusterfuzz-testcase-rolling_bloom_filter-5980807721254912.log](https://github.com/bitcoin/bitcoin/files/6822159/clusterfuzz-testcase-rolling_bloom_filter-5980807721254912.log) ACKs for top commit: practicalswift: cr ACK faa86b71acefc8f2e366746a1c251888e6e686dd theStack: Concept and code review ACK faa86b71acefc8f2e366746a1c251888e6e686dd Tree-SHA512: eace588509dfddb2ba97baf86379fa713fa6eb758184abff676cb95807ff8ff36905eeaddeba05665b8464c35c57e2138f88caec71cbfb255e546bbe76558da0
2021-07-25Merge bitcoin/bitcoin#22444: fuzz: Limit max ops in prevector fuzz targetMarcoFalke
faafda232e1d4f79ee64dbfee699a8018f25b0bc fuzz: Speed up prevector fuzz target (MarcoFalke) Pull request description: Without a size limit on the input data, the runtime is unbounded. Fix this by picking an upper bound on the maximum number of fuzz operations. Should fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35981 ACKs for top commit: practicalswift: cr ACK faafda232e1d4f79ee64dbfee699a8018f25b0bc Tree-SHA512: 1bf166c4a99a8ce88bdc030cd6a32ce1da5251b73873772e0e9c001ec2bacafebb183f7c8c88806d0ab633aada2cff8b78791f5c9c0c6f2cc8ef5f0875c4b2ef
2021-07-25Merge bitcoin/bitcoin#22442: util: improves error messages on ↵MarcoFalke
get_previous_releases script 179a051704321ba40277a5855d6ac0dbb45689dd util: improves error messages on get_previous_releases script (Nelson Galdeman) Pull request description: When previous releases are fetched and the specified version wasn't added to the checksum list we used to get a "Checksum did not match" which isn't true (https://github.com/bitcoin-core/bitcoincore.org/issues/753#issuecomment-879546719). If the specified version number is not on the list, it now logs cannot do the comparison instead. ACKs for top commit: practicalswift: cr ACK 179a051704321ba40277a5855d6ac0dbb45689dd theStack: tACK 179a051704321ba40277a5855d6ac0dbb45689dd, tested on Debian bullseye/sid Tree-SHA512: 2a07ce75232f853fd311c43581f8faf12d423668946ae6ad784feece5b4d0edd57fc018ba1f0c5a73bfaccb326e0df9a643580d16bf427c1ec3ff34a9cdbc80c
2021-07-25Merge bitcoin/bitcoin#22517: fuzz: Temporarily disable failing assert in ↵MarcoFalke
banman fuzz test fa8bed6a47c88f769ae05b04b93eeaf2e1011478 fuzz: Temporarily disable failing assert in banman fuzz test (MarcoFalke) Pull request description: Otherwise the remainder of the fuzz test can't be fuzzed without running into crashes ACKs for top commit: practicalswift: cr ACK fa8bed6a47c88f769ae05b04b93eeaf2e1011478 Tree-SHA512: ec6606292e2cfd26484c7f6caf1c418c377da54111b332990fce68373f0438defda71d931a42ca34431527fbc172dd2fdf29b260afca15b34910ee137de1c365
2021-07-24Merge bitcoin/bitcoin#13533: [tests] Reduced number of validations in ↵MarcoFalke
tx_validationcache_tests c3e111a7daf5800026dda4455c737de0412528f1 Reduced number of validations in `tx_validationcache_tests` to keep the run time reasonable. (lucash-dev) Pull request description: Following a suggestion in the comments, changed `ValidateCheckInputsForAllFlags` from testing all possible flag combinations to testing a random subset. Also created a new enum constant for the highest flag, so that this test doesn’t keep testing an incomplete subset in case a new flag is added. Timing for `checkinputs_test`: ``` Before: 6.8s After: 3.7s ---------------- Saved: 3.1s (45%) ``` This PR was split from #13050. Also see #10026. ACKs for top commit: leonardojobim: tACK https://github.com/bitcoin/bitcoin/pull/13533/commits/c3e111a7daf5800026dda4455c737de0412528f1. kallewoof: ACK c3e111a7daf5800026dda4455c737de0412528f1 theStack: re-ACK c3e111a7daf5800026dda4455c737de0412528f1 Tree-SHA512: bef49645bdd4f61ec73cc77a9f028b95d9856db9446d2e7fc9a48867a6f0e94c2c9f150cb771a30fe852db0efb0a1bd15d38b00d712651793ccb59ff6157a7b4
2021-07-23Merge bitcoin/bitcoin#22533: guix/build: Remove vestigial SKIPATTEST.TAGfanquake
9f01feda0ad99d8600f9edee1f37594c5166a7b8 guix/build: Remove vestigial SKIPATTEST.TAG (Carl Dong) Pull request description: No longer needed or referenced by anything. A relic from prior to the great hierarchy overhaul of #22182 ACKs for top commit: achow101: ACK 9f01feda0ad99d8600f9edee1f37594c5166a7b8 fanquake: ACK 9f01feda0ad99d8600f9edee1f37594c5166a7b8 Tree-SHA512: a94cf63f0c5cb8dbacf1025b6c0e81b219c2a3c93b3cbcefc239ccde29e602ecd4b717b1d93dbe53cb791a5017236fb09823c034aec42b0c31894fc9e0ab8b21
2021-07-23Merge bitcoin/bitcoin#22511: guix: Silence `getent(1)` invocation, doc fixupsfanquake
a884a1edcd1b795799f1be65df17462041741dc3 guix/INSTALL: Misc fixups (Carl Dong) 3c4d2c418e62d421a8bd7640ef5384251c892406 guix: Silence getent(1) invocation (Carl Dong) Pull request description: Otherwise the `getent(1)` checks will print out the default http, https, and ftp ports, making it seem like something is being spawned that is listening on those ports, which is not the case. ACKs for top commit: fanquake: ACK a884a1edcd1b795799f1be65df17462041741dc3 Tree-SHA512: 7706a98fe5f2bcd766fd3a16bfffab899ec45e80d72c485b7bed2a83d2024eddbb44ae4a77e2352e308740ca203c163421a11a5a2327fa94d2032ecceef4d63f
2021-07-23Merge bitcoin/bitcoin#22526: build: use newer config.guess & config.sub in ↵fanquake
depends 9b9da92e2a6c67e7df2b190bfd6a3fb58d794f0c contrib: use newer config.guess & config.sub in install_db4.sh (fanquake) 5985f098eaa3f9eff0b2fd580a0ef51e8aebc4e0 depends: use latest config.guess and config.sub for sqlite (fanquake) 35d082c5002e79e5f31412d39b6b22901ddff5a4 depends: use latest config.guess and config.sub for cctools (fanquake) bda0b637b2d7ac343329c6a499b4c7b02541328d depends: use latest config.guess and config.sub for libevent (fanquake) Pull request description: Hebasto asked for these to be split out of #21851. Using the newer config.guess and config.sub is needed when wanting to cross-compile for newer targets, like `arm64-apple-darwin`. I did Guix builds for 5985f098eaa3f9eff0b2fd580a0ef51e8aebc4e0, and then added another commit for `install_db4.sh`, to use a smilar version to what we have in depends, although that isn't used in Guix. Guix builds for 5985f098eaa3f9eff0b2fd580a0ef51e8aebc4e0: ```bash 5b1d280764cacefba42e8002cb6cdcdd353b4cd6f5b84f60505eca6a3814ea29 guix-build-5985f098eaa3/output/aarch64-linux-gnu/SHA256SUMS.part a4bfcfc91cc7acaa7d1eb039c9715f930faef0def819eaf476a69976dc86f8c9 guix-build-5985f098eaa3/output/aarch64-linux-gnu/bitcoin-5985f098eaa3-aarch64-linux-gnu-debug.tar.gz e8175aa11b7f46af364e40015de497c4585eb7307375bb4c1a9d8e94cd992359 guix-build-5985f098eaa3/output/aarch64-linux-gnu/bitcoin-5985f098eaa3-aarch64-linux-gnu.tar.gz 2ec5d3d85979e7334c03761649655e1b384049d634be99d8e96e7d1e4dbca2e7 guix-build-5985f098eaa3/output/arm-linux-gnueabihf/SHA256SUMS.part ccb73b187cc91b65bd1f74a63019162ef1186a69e1f9e7415847e4a50b9df35f guix-build-5985f098eaa3/output/arm-linux-gnueabihf/bitcoin-5985f098eaa3-arm-linux-gnueabihf-debug.tar.gz 8d645022560b46f109c6de0c1a320eed2e348300274f3a5fcc78c911ec6e4338 guix-build-5985f098eaa3/output/arm-linux-gnueabihf/bitcoin-5985f098eaa3-arm-linux-gnueabihf.tar.gz e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 guix-build-5985f098eaa3/output/dist-archive/SKIPATTEST.TAG 5189568f1db5539d955f762f0c15ff2a03f9551663239f3a25e2b9832b223081 guix-build-5985f098eaa3/output/dist-archive/bitcoin-5985f098eaa3.tar.gz bd07c1ccb512501ed18498d2a7f7d3f9d370fdb624e34514a3acea7457d137e7 guix-build-5985f098eaa3/output/powerpc64-linux-gnu/SHA256SUMS.part 3f989fcb6dcccc82ebed9d316944ce2be2f75a4735a2cfb0d0298655f9491852 guix-build-5985f098eaa3/output/powerpc64-linux-gnu/bitcoin-5985f098eaa3-powerpc64-linux-gnu-debug.tar.gz 77badf255903a23cb60b8468c9c233da7253d866c47adc39e27c49a95640722f guix-build-5985f098eaa3/output/powerpc64-linux-gnu/bitcoin-5985f098eaa3-powerpc64-linux-gnu.tar.gz 75d5481a909951055af8fb3812ec315d2aeaba6cc0d2310dde08b5cacfa27d75 guix-build-5985f098eaa3/output/powerpc64le-linux-gnu/SHA256SUMS.part bfb090300af5acee297f139df4a9163fed3a5715cddb1fd3fdf99b4922790a62 guix-build-5985f098eaa3/output/powerpc64le-linux-gnu/bitcoin-5985f098eaa3-powerpc64le-linux-gnu-debug.tar.gz d6e78a56cbb967840f881e630fe42d4add000dfb442e90120ca541a16caabb57 guix-build-5985f098eaa3/output/powerpc64le-linux-gnu/bitcoin-5985f098eaa3-powerpc64le-linux-gnu.tar.gz ccfee2f4cb1134356cd607a9f7687bd4f5cf4e4e1121fd98a32c9c74aad19110 guix-build-5985f098eaa3/output/riscv64-linux-gnu/SHA256SUMS.part 3cc9eb93c1143e565a68f57633c1932c84638ff40f3286ef59c3dddde514e97b guix-build-5985f098eaa3/output/riscv64-linux-gnu/bitcoin-5985f098eaa3-riscv64-linux-gnu-debug.tar.gz 7d6d9c68afc29f39e2dce74fcb36555638c99cce5168d1daecd97e598ce5ac50 guix-build-5985f098eaa3/output/riscv64-linux-gnu/bitcoin-5985f098eaa3-riscv64-linux-gnu.tar.gz 3d3437db545b0ab0111bf0f017c589b136a68f77d7525ed17597a0482493fe5d guix-build-5985f098eaa3/output/x86_64-apple-darwin18/SHA256SUMS.part 0b51cf6a9338036a6f4505232a3b0eeb6265182261b588da8ed90ffc3bd702c7 guix-build-5985f098eaa3/output/x86_64-apple-darwin18/bitcoin-5985f098eaa3-osx-unsigned.dmg 2cb20c994777bc2e3747e8ed19209e98c614448f231c8906f4a99a93be9df5c9 guix-build-5985f098eaa3/output/x86_64-apple-darwin18/bitcoin-5985f098eaa3-osx-unsigned.tar.gz 85fa4e6de567d515b36bd81edc28743507878fefb64c3ca3bb4509f0f9ffab88 guix-build-5985f098eaa3/output/x86_64-apple-darwin18/bitcoin-5985f098eaa3-osx64.tar.gz 09ab1a4d1e8743fba66766b077ac3e0316a161e9aaf238de5d418a5d4ed0adde guix-build-5985f098eaa3/output/x86_64-linux-gnu/SHA256SUMS.part eb18a31f088188fdd54e82c9cdb96751d271f67b4beba29dfb0c1ce2964b0e5c guix-build-5985f098eaa3/output/x86_64-linux-gnu/bitcoin-5985f098eaa3-x86_64-linux-gnu-debug.tar.gz 45b91caad1e09f80d43b0a577f210596214d08bdc795c4f9e191caa7c3f494b9 guix-build-5985f098eaa3/output/x86_64-linux-gnu/bitcoin-5985f098eaa3-x86_64-linux-gnu.tar.gz 96c8a07bd58d5fe3b38a797cca254999646d6af102d3bdf2495c71f1c641f798 guix-build-5985f098eaa3/output/x86_64-w64-mingw32/SHA256SUMS.part fe79ba07cd834f842ffa4e11cbea91f026e9f2cda2d05dde565d0da6caad61dd guix-build-5985f098eaa3/output/x86_64-w64-mingw32/bitcoin-5985f098eaa3-win-unsigned.tar.gz 22d6a2c7b66b6a3d1693235c9ee3b3a3686c3417164a40bc6d83eefda533eb93 guix-build-5985f098eaa3/output/x86_64-w64-mingw32/bitcoin-5985f098eaa3-win64-debug.zip bdef5d3a7c6d9e180fbbb870ac210c26e53fcf73cced84297a0ee42339e3970f guix-build-5985f098eaa3/output/x86_64-w64-mingw32/bitcoin-5985f098eaa3-win64-setup-unsigned.exe af24796889ebd671003a1e139a07b440bc28c97ab19bdd5ae9bd3d6fbfa2095a guix-build-5985f098eaa3/output/x86_64-w64-mingw32/bitcoin-5985f098eaa3-win64.zip ``` ACKs for top commit: hebasto: ACK 9b9da92e2a6c67e7df2b190bfd6a3fb58d794f0c Tree-SHA512: 1c4aa96aeee63663d5455845364598ebd9e96e5fd95df6506461d4b1a14d0e16347ea5aeeda209997eb32a2f1a1ba82652486d70489c85cbc1837f13e18ea68a
2021-07-22guix/build: Remove vestigial SKIPATTEST.TAGCarl Dong
2021-07-22guix/INSTALL: Misc fixupsCarl Dong
2021-07-22Merge bitcoin/bitcoin#22383: rpc: Prefer to use txindex if available for ↵MarcoFalke
GetTransaction 78f4c8b98eada337346ffb206339c3ebae4ff43b prefer to use txindex if available for GetTransaction (Jameson Lopp) Pull request description: Fixes #22382 Motivation: prevent excessive disk reads if txindex is enabled. Worth noting that this could be argued to be less of a bug and more of an issue of undefined behavior. If a user calls GetTransaction with the wrong block hash, what should happen? ACKs for top commit: jonatack: ACK 78f4c8b98eada337346ffb206339c3ebae4ff43b theStack: Code review ACK 78f4c8b98eada337346ffb206339c3ebae4ff43b LarryRuane: tACK 78f4c8b98eada337346ffb206339c3ebae4ff43b luke-jr: utACK 78f4c8b98eada337346ffb206339c3ebae4ff43b jnewbery: utACK 78f4c8b98eada337346ffb206339c3ebae4ff43b rajarshimaitra: Code review ACK https://github.com/bitcoin/bitcoin/commit/78f4c8b98eada337346ffb206339c3ebae4ff43b lsilva01: Code Review ACK and Tested ACK https://github.com/bitcoin/bitcoin/pull/22383/commits/78f4c8b98eada337346ffb206339c3ebae4ff43b on Ubuntu 20.04 Tree-SHA512: af7db5b98cb2ae4897b28476b2fa243bf7e6f850750d9347062fe8013c5720986d1a3c808f80098e5289bd84b085de03c81a44e584dc28982f721c223651bfe0
2021-07-22Merge bitcoin/bitcoin#21090: Default to NODE_WITNESS in nLocalServicesW. J. van der Laan
a806647d260132a00cd633160040625c7dd17803 [validation] Always include merkle root in coinbase commitment (Dhruv Mehta) 189128c220190a588500b8e74ee7ae47671b9558 [validation] Set witness script flag with p2sh for blocks (Dhruv Mehta) ac82b99db77ec843af82dcdf040dfdbc98c8ff26 [p2p] remove redundant NODE_WITNESS checks (Dhruv Mehta) 6f8b198b8256a6703a6f5e592dfa77fa024a7035 [p2p] remove unused segwitheight=-1 option (Dhruv Mehta) eba5b1cd6460c98e75d0422bd394e12af7f11e4c [test] remove or move tests using `-segwitheight=-1` (Dhruv Mehta) Pull request description: Builds on #21009 and makes progress on remaining items in #17862 Removing `RewindBlockIndex()` in #21009 allows the following: - removal of tests using `segwitheight=-1` in `p2p_segwit.py`. - move `test_upgrade_after_activation()` out of `p2p_segwit.py` reducing runtime - in turn, that allows us to drop support for `-segwitheight=-1`, which is only supported for that test. - that allows us to always set `NODE_WITNESS` in our local services. The only reason we don't do that is to support `-segwitheight=-1`. - that in turn allows us to drop all of the `GetLocalServices() & NODE_WITNESS` checks inside `net_processing.cpp`, since our local services would always include `NODE_WITNESS` ACKs for top commit: mzumsande: Code-Review ACK a806647d260132a00cd633160040625c7dd17803 laanwj: Code review ACK a806647d260132a00cd633160040625c7dd17803, nice cleanup jnewbery: utACK a806647d260132a00cd633160040625c7dd17803 theStack: ACK a806647d260132a00cd633160040625c7dd17803 Tree-SHA512: 73e1a69d1d7eca1f5c38558ec6672decd0b60b16c2ef6134df6f6af71bb159e6eea160f9bb5ab0eb6723c6632d29509811e29469d0d87abbe9b69a2890fbc73e
2021-07-22Merge bitcoin/bitcoin#22493: fuzz: Extend addrman fuzz test with deserializeMarcoFalke
aaaa9c6019790a1a21a7b4ef01693ac9390ae6d0 fuzz: Extend addrman fuzz test with deserialize (MarcoFalke) Pull request description: Requested on IRC: ``` [18:01] <vasild> => I think there is a good chance fuzzing addrman unserialize will find more bugs [18:04] <sipa> definitely ACKs for top commit: jonatack: ACK aaaa9c6019790a1a21a7b4ef01693ac9390ae6d0 per `git diff fa74025 aaaa9c6` vasild: ACK aaaa9c6019790a1a21a7b4ef01693ac9390ae6d0 Tree-SHA512: f57d0aecf22a933e48d3181d7398218949588dd0de31218d1d28c825649e55fd60b0de6fbc92d2497cf5639a4adc2061c9bf8216546a2be916feac4f03f16e8f
2021-07-22Merge bitcoin/bitcoin#22481: mempool: apply rule of 5 to epochguard.h, fix ↵W. J. van der Laan
compiler warnings 7b3a20b2602f902c344a615f23f8f0280b6f6bcc mempool: apply rule of 5 to epochguard.h, fix compiler warnings (Jon Atack) Pull request description: Apply the rule of five to `src/util/epochguard.h::{Epoch, Marker}` for safety, which also nicely fixes the `-Wdeprecated-copy` compiler warnings with Clang 13. References: - https://en.cppreference.com/w/cpp/language/rule_of_three - https://www.stroustrup.com/C++11FAQ.html#default - https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-five <details><summary>Compiler warnings fixed</summary><p> ```bash In file included from policy/rbf.cpp:5: In file included from ./policy/rbf.h:8: In file included from ./txmempool.h:24: ./util/epochguard.h:53:17: warning: definition of implicit copy constructor for 'Marker' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy] Marker& operator=(const Marker&) = delete; ^ ./txmempool.h:81:7: note: in implicit copy constructor for 'Epoch::Marker' first required here class CTxMemPoolEntry ^ policy/rbf.cpp:29:29: note: in implicit copy constructor for 'CTxMemPoolEntry' first required here CTxMemPoolEntry entry = *pool.mapTx.find(tx.GetHash()); ``` ```bash In file included from txmempool.cpp:6: In file included from ./txmempool.h:24: ./util/epochguard.h:53:17: warning: definition of implicit copy constructor for 'Marker' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy] Marker& operator=(const Marker&) = delete; ^ ./txmempool.h:81:7: note: in implicit copy constructor for 'Epoch::Marker' first required here class CTxMemPoolEntry ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/ext/new_allocator.h:150:23: note: in implicit copy constructor for 'CTxMemPoolEntry' first required here { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/alloc_traits.h:512:8: note: in instantiation of function template specialization '__gnu_cxx::new_allocator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry>>>>>>>>::construct<CTxMemPoolEntry, const CTxMemPoolEntry &>' requested here __a.construct(__p, std::forward<_Args>(__args)...); ^ /usr/include/boost/multi_index_container.hpp:655:24: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry>>>>>>>>>::construct<CTxMemPoolEntry, const CTxMemPoolEntry &>' requested here node_alloc_traits::construct( ^ /usr/include/boost/multi_index/detail/index_base.hpp:108:15: note: in instantiation of member function 'boost::multi_index::multi_index_container<CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::hashed_unique<mempoolentry_txid, SaltedTxidHasher>, boost::multi_index::hashed_unique<boost::multi_index::tag<index_by_wtxid>, mempoolentry_wtxid, SaltedTxidHasher>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<descendant_score>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<entry_time>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<ancestor_score>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByAncestorFee>>>::construct_value' requested here final().construct_value(x,v); ^ /usr/include/boost/multi_index/detail/ord_index_impl.hpp:770:33: note: (skipping 5 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) final_node_type* res=super::insert_(v,x,variant); ^ /usr/include/boost/multi_index_container.hpp:693:33: note: in instantiation of function template specialization 'boost::multi_index::detail::hashed_index<mempoolentry_txid, SaltedTxidHasher, std::equal_to<uint256>, boost::multi_index::detail::nth_layer<1, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::hashed_unique<mempoolentry_txid, SaltedTxidHasher>, boost::multi_index::hashed_unique<boost::multi_index::tag<index_by_wtxid>, mempoolentry_wtxid, SaltedTxidHasher>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<descendant_score>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<entry_time>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<ancestor_score>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByAncestorFee>>, std::allocator<CTxMemPoolEntry>>, boost::mpl::vector0<>, boost::multi_index::detail::hashed_unique_tag>::insert_<boost::multi_index::detail::lvalue_tag>' requested here final_node_type* res=super::insert_(v,x,variant); ^ /usr/include/boost/multi_index_container.hpp:705:12: note: in instantiation of function template specialization 'boost::multi_index::multi_index_container<CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::hashed_unique<mempoolentry_txid, SaltedTxidHasher>, boost::multi_index::hashed_unique<boost::multi_index::tag<index_by_wtxid>, mempoolentry_wtxid, SaltedTxidHasher>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<descendant_score>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<entry_time>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<ancestor_score>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByAncestorFee>>>::insert_<boost::multi_index::detail::lvalue_tag>' requested here return insert_(v,detail::lvalue_tag()); ^ /usr/include/boost/multi_index/detail/index_base.hpp:213:21: note: in instantiation of member function 'boost::multi_index::multi_index_container<CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::hashed_unique<mempoolentry_txid, SaltedTxidHasher>, boost::multi_index::hashed_unique<boost::multi_index::tag<index_by_wtxid>, mempoolentry_wtxid, SaltedTxidHasher>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<descendant_score>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<entry_time>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<ancestor_score>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByAncestorFee>>>::insert_' requested here {return final().insert_(x);} ^ /usr/include/boost/multi_index/hashed_index.hpp:284:46: note: in instantiation of member function 'boost::multi_index::detail::index_base<CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::hashed_unique<mempoolentry_txid, SaltedTxidHasher>, boost::multi_index::hashed_unique<boost::multi_index::tag<index_by_wtxid>, mempoolentry_wtxid, SaltedTxidHasher>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<descendant_score>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<entry_time>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<ancestor_score>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByAncestorFee>>, std::allocator<CTxMemPoolEntry>>::final_insert_' requested here std::pair<final_node_type*,bool> p=this->final_insert_(x); ^ txmempool.cpp:363:53: note: in instantiation of member function 'boost::multi_index::detail::hashed_index<mempoolentry_txid, SaltedTxidHasher, std::equal_to<uint256>, boost::multi_index::detail::nth_layer<1, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::hashed_unique<mempoolentry_txid, SaltedTxidHasher>, boost::multi_index::hashed_unique<boost::multi_index::tag<index_by_wtxid>, mempoolentry_wtxid, SaltedTxidHasher>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<descendant_score>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<entry_time>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<ancestor_score>, boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByAncestorFee>>, std::allocator<CTxMemPoolEntry>>, boost::mpl::vector0<>, boost::multi_index::detail::hashed_unique_tag>::insert' requested here indexed_transaction_set::iterator newit = mapTx.insert(entry).first; ``` ```bash In file included from test/fuzz/policy_estimator.cpp:9: In file included from ./test/fuzz/util.h:27: In file included from ./txmempool.h:24: ./util/epochguard.h:53:17: warning: definition of implicit copy constructor for 'Marker' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy] Marker& operator=(const Marker&) = delete; ^ ./txmempool.h:81:7: note: in implicit copy constructor for 'Epoch::Marker' first required here class CTxMemPoolEntry ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/ext/new_allocator.h:150:23: note: in implicit move constructor for 'CTxMemPoolEntry' first required here { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/alloc_traits.h:512:8: note: in instantiation of function template specialization '__gnu_cxx::new_allocator<CTxMemPoolEntry>::construct<CTxMemPoolEntry, CTxMemPoolEntry>' requested here __a.construct(__p, std::forward<_Args>(__args)...); ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/vector.tcc:115:21: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<CTxMemPoolEntry>>::construct<CTxMemPoolEntry, CTxMemPoolEntry>' requested here _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/stl_vector.h:1204:9: note: in instantiation of function template specialization 'std::vector<CTxMemPoolEntry>::emplace_back<CTxMemPoolEntry>' requested here { emplace_back(std::move(__x)); } ^ test/fuzz/policy_estimator.cpp:49:37: note: in instantiation of member function 'std::vector<CTxMemPoolEntry>::push_back' requested here mempool_entries.push_back(ConsumeTxMemPoolEntry(fuzzed_data_provider, tx)); ``` </p></details> ACKs for top commit: laanwj: Code review ACK 7b3a20b2602f902c344a615f23f8f0280b6f6bcc vasild: ACK 7b3a20b2602f902c344a615f23f8f0280b6f6bcc Tree-SHA512: 0406dfcec180152d4f9ed07cbc2f406ad739b41f9c9cb38f8c75159c15d9d8a9a5c7526765966e40d695d265c178f6a80152e7edf82da344a65e55938dddb63d
2021-07-22Merge bitcoin-core/gui#381: refactor: Make BitcoinCore class reusableW. J. van der Laan
8169fc4e73a87331e02502fc24e293831765c8b1 qt, refactor: Fix code styling of moved InitExecutor class (Hennadii Stepanov) c82165a55701fe4ff604d7f30163051cd47c2363 qt, refactor: Move InitExecutor class into its own module (Hennadii Stepanov) dbcf56b6c6e939923673b3f07bed7bb3632dbeb1 scripted-diff: Rename BitcoinCore class to InitExecutor (Hennadii Stepanov) 19a1d008310f250b69b7aa764a9f26384d5a4a85 qt: Add BitcoinCore::m_thread member (Hennadii Stepanov) Pull request description: This PR makes the `BitcoinCore` class reusable, i.e., it can be used by the widget-based GUI or by the [QML-based](https://github.com/bitcoin-core/gui-qml/tree/main/src/qml) one, and it makes the divergence between these two repos minimal. The small benefit to the current branch is more structured code. Actually, this PR is ported from https://github.com/bitcoin-core/gui-qml/pull/10. The example of the re-using of the `BitcoinCore` class is https://github.com/bitcoin-core/gui-qml/pull/11. ACKs for top commit: laanwj: ACK 8169fc4e73a87331e02502fc24e293831765c8b1 ryanofsky: Code review ACK 8169fc4e73a87331e02502fc24e293831765c8b1. Only change is switching from `m_executor` from pointer to optional type (thanks for update!) Tree-SHA512: a0552c32d26d9acf42921eb12bcdf68f02d52f7183c688c43257b1a58679f64e45f193ee2d316850c7f0f516561e17abe989fe545bfa05e158ad3f4c66d19bca
2021-07-22contrib: use newer config.guess & config.sub in install_db4.shfanquake
2021-07-22Merge bitcoin/bitcoin#22218: multiprocess: Add ipc::Context and ↵MarcoFalke
ipc::capnp::Context structs 3e33d170cc0a8f386791777f3cc597e2bd0bf2ee Add ipc::Context and ipc::capnp::Context structs (Russell Yanofsky) Pull request description: These are currently empty structs but they will be used to pass some function and object pointers from bitcoin application code to IPC hooks that run, for example, when a remote object is created or destroyed, or a new process is created. --- This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10). The commit was first part of larger PR #10102. ACKs for top commit: ariard: Code Review ACK 3e33d170 Tree-SHA512: fd949fae5f1a973d39cb97f2745821ab2f62b98e166e53bc2801f97dcde988e18faaaaa0ffc2a82c170938b3a18078b6162fa35460e6e7c635e681b3c9e5b0a6
2021-07-22depends: use latest config.guess and config.sub for sqlitefanquake
2021-07-22depends: use latest config.guess and config.sub for cctoolsfanquake
2021-07-22depends: use latest config.guess and config.sub for libeventfanquake
2021-07-21fuzz: Temporarily disable failing assert in banman fuzz testMarcoFalke
2021-07-21Merge bitcoin/bitcoin#22428: [Refactor] Rename scriptPubKey -> exec_scriptMarcoFalke
007910388b54abc97057e44a7a8f7241e83c203b [Refactor] Rename scriptPubKey -> exec_script (sanket1729) Pull request description: Rename scriptPubKey to witness_script in ExecuteWitnessScript() function to correctly reflect which script is being executed. For example in segwitv0, this scriptPubKey refers to the script of the form `OP_0 <script_hash>`, but witness_script refers to the script that actually hashes to the `script_hash`. If there is a reason why it's named this way, I would love to know ACKs for top commit: MarcoFalke: review ACK 007910388b54abc97057e44a7a8f7241e83c203b 🖖 theStack: ACK 007910388b54abc97057e44a7a8f7241e83c203b lsilva01: Code Review https://github.com/bitcoin/bitcoin/pull/22428/commits/007910388b54abc97057e44a7a8f7241e83c203b ACK Tree-SHA512: 768e10e656b60b1293beb560fb7adbc2c1495e6db1f54f0c2c63109692ae0c579c856b194b33f72afd0d332159a9796c0e2bd99b79ea5c4b1803469a81301fd6
2021-07-21Merge bitcoin/bitcoin#21832: cli: Improve -getinfo return formatMarcoFalke
a37e29d32fde8c7b4143322deeef2a8a06114d43 cli: Implement human readable -getinfo. (Klement Tan) Pull request description: # Overview **Description** This PR changes the return format of `-getinfo` **Rationale** - make `-getinfo` more user-friendly - uses less vertical screen space. Fixes: Issue 17314(Not linking issue to prevent it from closing) > Alternative, more human-friendly, format besides JSON? Colors, progress bars ### Return Format ```bash // Data from getblockchaininfo Chain: [getblockchaininfo.chain] Blocks: [getblockchaininfo.blocks] Headers: [getblockchaininfo.headers] Verification progress: [getblockchaininfo.verificationprogress] Difficulty: [getblockchaininfo.difficulty] # Data from getnetworkinfo Network: in [getnetworkinfo.connections_in], out [getnetworkinfo.connections_out], total [getnetworkinfo.connections] Version: [getnetworkinfo.version] Time offset (s): [getnetworkinfo.timeoffset] Proxy: [getnetworkinfo.proxy] // "N/A" if no proxy Min tx relay fee rate (BTC/kvB): [getnetworkinfo.relayfee] # Data from getwalletinfo. Will only be present when a single wallet is loaded Wallet: [getnetworkinfo.walletname] // "" if walletname is empty(default wallet) Keypool size: [getnetworkinfo.keypoolsize] Unlocked until: [getnetworkinfo.unlocked_until] Transaction fee rate (-paytxfee) (BTC/kvB): [getnetworkinfo.paytxfee] # Data from getbalances. Will only be present when a single wallet is loaded Balance: [getbalances.mine.trusted] # Data from listwallets then getbalances for each wallet. Will only be present for multiple wallets loaded Balances [getbalances.mine.trusted] [listwallets[i]] // Right justify on balance Warnings: [getnetworkinfo.warnings] ``` #### Coloring The following lines would be colored to better show the differences between the various `-getinfo` components. However, this will not apply for `WIN32`(ANSI code not supported) and users that connect the `stdout` to a non-terminal process. - `Chain: ...`: BLUE(`\x1B[34m`) - `Network: ...`: GREEN(`\x1B[32m`) - `Wallet: ...`: MAGENTA(`\x1B[35m`) - `Balance: ...` CYAN(`\x1B[36m`) - `Balances: ...` CYAN(`\x1B[36m`) - `Warnings: ...` Yellow(`\x1B[33m`) ### Screenshots *No wallet loaded:* ![image](https://user-images.githubusercontent.com/49265907/121794631-94b62080-cc3c-11eb-8627-d0d1c25f0878.png) *Single wallet loaded* ![image](https://user-images.githubusercontent.com/49265907/121794619-6df7ea00-cc3c-11eb-8420-d0c18236b188.png) *Multi wallet loaded* ![image](https://user-images.githubusercontent.com/49265907/121794626-810aba00-cc3c-11eb-8cd7-c15ede1918ac.png) # Reviewing Notes ## Testing Scenarios **1. No wallet loaded** - When there no wallets are loaded(Unload wallet with `./src/bitcoin-cli unloadwallet "YOUR_WALLETNAME"` - Test with `./src/bitcoin-cli -getinfo`. - Should only display `chain` and `network` segment **2. Single wallet loaded** - When only a single wallet loaded or `-rpcwallet` is set(Load wallet with `./src/bitcoin-cli loadwallet "YOUR_WALLETNAME"`) - Test with `./src/bitcoin-cli -rpcwallet="YOUR_WALLETNAME" -getinfo`(Load wallet with `./src/bitcoin-cli loadwallet "YOUR_WALLETNAME"`) - Should only display `chain`, `network`, `wallet` and `balance` segment **3. Multiple wallet loaded** - When there are multiple wallets loaded(Load wallet with `./src/bitcoin-cli loadwallet "YOUR_WALLETNAME"`) - Test with `./src/bitcoin-cli -getinfo` - Should only display `chain`, `network` and `balances` segment ## Implementation **Current Flow** 1. `GetinfoRequestHandler` is instantiated 2. `ConnectAndCallRPC` is called with `GetinfoRequestHandler`. It returns `UniValue::VOBJ result` 3. If `-rpcwallet` wallet is not set, `GetWalletBalances` is called with a pointer to `result` as a parameter. It adds the balances for all the wallets to `result` **New Flow** 1. `GetinfoRequestHandler` is instantiated 2. `ConnectAndCallRPC` is called with `GetinfoRequestHandler`. It returns `UniValue::VOBJ result` 3. If `-rpcwallet` wallet is not set, `GetWalletBalances` is called with a pointer to `result` as a parameter. It adds the balances for all the wallets to `result` 4. **New** `ParseGetInfoResult` is called with `result` as parameter. It converts results type from `UniValue::VOBJ` to `UniValue::VSTR` according to the format stated above. ACKs for top commit: theStack: re-ACK a37e29d32fde8c7b4143322deeef2a8a06114d43 Tree-SHA512: 5e90606a397abfc4e5921f6db70a0a4888cbebba9da9b70cfe72d593caf669fd090de3e58eecf1cb5c20d5f448ad278999165d32d01667037d09bd352d23ac5d
2021-07-21cli: Implement human readable -getinfo.Klement Tan
2021-07-21Merge bitcoin/bitcoin#22288: Resolve Tor control plane addressW. J. van der Laan
cdd51e8ee156f3bb3135be8aa51530a53734153e torcontrol: Resolve Tor control plane address (Adrian-Stefan Mares) Pull request description: Closes https://github.com/bitcoin/bitcoin/issues/22236 This PR forces the Tor control plane address to be resolved before a connection attempt is made, similar to how the `-proxy` / `-onion` address is resolved. The use case for this change is that the control plane may not have a stable address - in a containerized environment perhaps. ACKs for top commit: jonatack: ACK cdd51e8ee156f3bb3135be8aa51530a53734153e tested various configurations on signet with this branch versus master laanwj: LGTM ACK cdd51e8ee156f3bb3135be8aa51530a53734153e theStack: ACK cdd51e8ee156f3bb3135be8aa51530a53734153e 🪐 prayank23: ACK https://github.com/bitcoin/bitcoin/pull/22288/commits/cdd51e8ee156f3bb3135be8aa51530a53734153e Tree-SHA512: 5335cfcb89089a2acd6d02b88c2022dec60bb74388a99187c901c1c35d32896814d5f81df55c053953276c51fcec263c6ddadd068316f8e428b841bd599fc21e
2021-07-21Merge bitcoin/bitcoin#22515: doc: clean out release notes post branch-offMarcoFalke
2ce7f95d4a1583bf0090a3fc1f5d1aba9c1d1b06 doc: clean out release notes post branch-off (fanquake) Pull request description: Should probably be done, given we've already had a PR add a release note for 23.0 (#22407). ACKs for top commit: MarcoFalke: ACK 2ce7f95d4a1583bf0090a3fc1f5d1aba9c1d1b06 Tree-SHA512: 1c524b55daecb8c69e110759b82a5caf31080ea7abbae39ecfefe0107786199623499c9950dedd8e72594a55b072eda93801ee787e896a3f242cde73d8a984f6
2021-07-21doc: clean out release notes post branch-offfanquake
2021-07-21Merge bitcoin/bitcoin#22510: test: add test for RPC error 'Transaction ↵MarcoFalke
already in block chain' 2ebf2fe0e4727a5a57a03f4283bdf1e263855803 test: check for RPC error 'Transaction already in block chain' (-27) (Sebastian Falbesoner) Pull request description: This PR adds missing test coverage for the RPC error "Transaction already in block chain" (error code `RPC_VERIFY_ALREADY_IN_CHAIN` = `RPC_TRANSACTION_ALREADY_IN_CHAIN` = -27), which is thrown in the function `BroadcastTransaction` (src/node/transaction.cpp). ACKs for top commit: kristapsk: ACK 2ebf2fe0e4727a5a57a03f4283bdf1e263855803 (ran linter, looked at changes and ran modified test and checked code in `src/node/transaction.cpp`) darosior: ACK 2ebf2fe0e4727a5a57a03f4283bdf1e263855803 Tree-SHA512: 8bfbd3ff3da0cb3b8745f69b8ca2377f85fa99f0270750840b60e6ae43b5645c5c59b236993e8b2ad0444ec4171484e4f1ee23fa7e81b79d4222bcb623666fa5
2021-07-21Merge bitcoin/bitcoin#21934: RPC/blockchain: getblockchaininfo: Include ↵MarcoFalke
versionbits signalling details during LOCKED_IN 2b19f3443efc9e7868746ea1c603b1027d822f32 RPC/blockchain: getblockchaininfo: Include versionbits signalling details during LOCKED_IN (Luke Dashjr) Pull request description: While the signal has no effect during `LOCKED_IN`, the bit is still defined and recommended for measuring uptake. Makes sense to expose statistics too. ACKs for top commit: prayank23: ACK https://github.com/bitcoin/bitcoin/pull/21934/commits/2b19f3443efc9e7868746ea1c603b1027d822f32 Sjors: tACK 2b19f34 theStack: Tested ACK 2b19f3443efc9e7868746ea1c603b1027d822f32 MarcoFalke: review-only ACK 2b19f3443efc9e7868746ea1c603b1027d822f32 Tree-SHA512: a9bb5adb21992586119cbb5f87e5348eabcab11d5a3bf769b00b69e466589a669846e503f8384fa8927fd77da0c2d64a54f13a7a55a62980046d70f8255ddf47
2021-07-21Merge bitcoin/bitcoin#22407: rpc: Return block time in getblockchaininfoMarcoFalke
20edf4bcf61e9fa310c3d7f3cac0c80a04df5364 rpc: Return block time in getblockchaininfo (João Barbosa) Pull request description: Return tip time in `getblockchaininfo`, for some use cases this can save a call to `getblock`. ACKs for top commit: naumenkogs: ACK 20edf4bcf61e9fa310c3d7f3cac0c80a04df5364 theStack: re-ACK 20edf4bcf61e9fa310c3d7f3cac0c80a04df5364 0xB10C: ACK 20edf4bcf61e9fa310c3d7f3cac0c80a04df5364 kristapsk: ACK 20edf4bcf61e9fa310c3d7f3cac0c80a04df5364 Zero-1729: re-ACK 20edf4bcf61e9fa310c3d7f3cac0c80a04df5364 Tree-SHA512: 29a920cfff1ef53e0af601c3f93f8f9171f3be47fc84b0fa293cb865b824976e8c1510b17b27d17daf0b8e658dd77d9dc388373395f0919fc4a23cd5019642d5
2021-07-21Merge bitcoin/bitcoin#22469: build: Add support for Android NDK r22+fanquake
acaac6e86a9e808244d9c69a59ab3c2d8e34cad6 ci: Bump Android NDK to r22 which supports std::filesystem (Hennadii Stepanov) cac7890386e773d9c268febd38b4311e6d35e03f build: Add support for Android NDK r22+ (Hennadii Stepanov) Pull request description: This is required to support [`std::filesystem`](https://github.com/android/ndk/wiki/Changelog-r22#changes) on Android (see #20744). Fixes #22074. ACKs for top commit: icota: re-tACK https://github.com/bitcoin/bitcoin/commit/acaac6e86a9e808244d9c69a59ab3c2d8e34cad6 Tree-SHA512: ecbec374ee590c4cb30012210f1422d469e7e8b68989f9eb53d36b5feee150d31e6bd10e1fc4a2056fbf4f8f8513e435b446e5feaf21a3a4d09dfc561fb22e73
2021-07-21Merge bitcoin/bitcoin#22505: addrman: Remove unused test_before_evict ↵fanquake
argument from Good() f036dfbb692c4d44d0f59194d089ed0aa1096347 [addrman] Remove unused test_before_evict argument from Good() (John Newbery) Pull request description: This has never been used in the public interface method since it was introduced in #9037. ACKs for top commit: lsilva01: Tested ACK https://github.com/bitcoin/bitcoin/pull/22505/commits/f036dfbb692c4d44d0f59194d089ed0aa1096347 on Ubuntu 20.04. theStack: Code-review ACK f036dfbb692c4d44d0f59194d089ed0aa1096347 Tree-SHA512: 98145d9596b4ae1f354cfa561be1a54c6b8057c920e0ac3d4c1d42c9326b2dad2d44320f4171bb701d97088b216760cca8017b84c8b5dcd2b1dc8f158f28066d
2021-07-20guix: Silence getent(1) invocationCarl Dong