-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
backport : Merge bitcoin# #5996
Commits on Mar 25, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 081d8db - Browse repository at this point
Copy the full SHA 081d8dbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 446076d - Browse repository at this point
Copy the full SHA 446076dView commit details -
merge bitcoin#19884: No delay in adding fixed seeds if -dnsseed=0 and…
… peers.dat is empty
Configuration menu - View commit details
-
Copy full SHA for 8f40769 - Browse repository at this point
Copy the full SHA 8f40769View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0d46acb - Browse repository at this point
Copy the full SHA 0d46acbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2f672bd - Browse repository at this point
Copy the full SHA 2f672bdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0d90465 - Browse repository at this point
Copy the full SHA 0d90465View commit details -
Merge dashpay#5955: refactor: simply RecursiveMutex -> Mutex
a09e260 refacotor: simply RecursiveMutex -> Mutex (pasta) Pull request description: ## What was done? This PR is a simpler version of dashpay#5954; it is simply a recursiveMutex -> Mutex PR; as I think some of the scope minimization in the other PR introduced test failures (appears there are undocumented mutex dependancies) ## How Has This Been Tested? CI TBD ## Breaking Changes None ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: knst: utACK a09e260 Tree-SHA512: 4ef5aa94ecb1a55f30b642d5e0328e2d2a0adcf2ccc2ab6489a576a420c915339be023828785c3243f019bb73ac2cd77be7dd4397e14ec874cba68999a9e54dc
Configuration menu - View commit details
-
Copy full SHA for 9201529 - Browse repository at this point
Copy the full SHA 9201529View commit details -
Merge bitcoin#21597: test: Document race:validation_chainstatemanager…
…_tests suppression fab1987 test: Document race:validation_chainstatemanager_tests suppression (MarcoFalke) Pull request description: ACKs for top commit: jamesob: ACK bitcoin@fab1987 practicalswift: ACK fab1987 Tree-SHA512: 3f1838b4cf11eba768ce06826cd4b57c9065669b61a5530af44216fc96535ebf37124b47a8de8f72aedf32345157a72d2208cd63214481a9cb56c063f05db5dd
Configuration menu - View commit details
-
Copy full SHA for 44f91cb - Browse repository at this point
Copy the full SHA 44f91cbView commit details -
Merge bitcoin#22149: test: Add temporary logging to debug bitcoin#20975
faa9496 test: Add temporary logging to debug bitcoin#20975 (MarcoFalke) Pull request description: to be reverted after a fix ACKs for top commit: laanwj: Code review ACK bitcoin@faa9496 Tree-SHA512: 1f3103fcf4cad0af54e26c4d257bd824b128b5f2d2b81c302e861a829fd55d6a099fa476b79b30a71fe98975ae604b9e3ff31fd48a51d442389a9bd515e60ba0
Configuration menu - View commit details
-
Copy full SHA for 1dc97c7 - Browse repository at this point
Copy the full SHA 1dc97c7View commit details -
Merge bitcoin#22327: cli: Avoid truncating -rpcwaittimeout
fa34cb8 cli: Avoid truncating -rpcwaittimeout (MarcoFalke) Pull request description: `seconds` is not enough precision to "exactly" store a timestamp n seconds into the future. Improve the precision by using `microseconds`. Fixes bitcoin#22325 Also, use chrono literals. ACKs for top commit: jonatack: ACK fa34cb8 review, debug-built, tested theStack: Tested ACK fa34cb8 Tree-SHA512: 7158da8545f9998a82bcc8636e04564efdb1e1be43b4288298c151b4df29ad47a2760259eefadd4a01db92ea18a1e017f3febc1cd8c69a4b28c86180229d8c90
Configuration menu - View commit details
-
Copy full SHA for 0505229 - Browse repository at this point
Copy the full SHA 0505229View commit details -
Merge bitcoin#22781: wallet: fix the behavior of IsHDEnabled, return …
…false in case of a blank hd wallet. 8733a8e the result of CWallet::IsHDEnabled() was initialized with true. (Saibato) Pull request description: the result of CWallet::IsHDEnabled() was initialized with true. But in case of no keys or a blank hd wallet the iterator would be skipped and not set to false but true, since the loop would be not entered. That had resulted in a wrong return and subsequent false HD and watch-only icon display in GUi when reloading a wallet after closing. ACKs for top commit: achow101: ACK 8733a8e hebasto: ACK 8733a8e theStack: utACK 8733a8e meshcollider: utACK 8733a8e Tree-SHA512: 79b976594f7174d05c29fe3819037ead59aaef27498d95415ceba74d633a8e035f6b03b521000ac3370684a8cb09319d8be1a443ce2d29b3ff4089e399f6b719
Configuration menu - View commit details
-
Copy full SHA for a9b1575 - Browse repository at this point
Copy the full SHA a9b1575View commit details -
Merge bitcoin#22824: refactor: remove RecursiveMutex cs_nBlockSequenceId
0bd882b refactor: remove RecursiveMutex cs_nBlockSequenceId (Sebastian Falbesoner) Pull request description: The RecursiveMutex `cs_nBlockSequenceId` is only used at one place in `CChainState::ReceivedBlockTransactions()` to atomically read-and-increment the nBlockSequenceId member: https://github.com/bitcoin/bitcoin/blob/83daf47898f8a79cb20d20316c64becd564cf54c/src/validation.cpp#L2973-L2976 ~~For this simple use-case, we can make the member `std::atomic` instead to achieve the same result (see https://en.cppreference.com/w/cpp/atomic/atomic/operator_arith).~~ ~~This is related to bitcoin#19303. As suggested in the issue, I first planned to change the `RecursiveMutex` to `Mutex` (still possible if the change doesn't get Concept ACKs), but using a Mutex for this simple operation seems to be overkill. Note that at the time when this mutex was introduced (PR dashpay#3370, commit 75f51f2) `std::atomic` were not used in the codebase yet -- according to `git log -S std::atomic` they have first appeared in 2016 (commit 7e908c7), probably also because the compilers didn't support them properly earlier.~~ At this point, the cs_main lock is set, hence we can use a plain int for the member and mark it as guarded by cs_main. ACKs for top commit: Zero-1729: ACK 0bd882b promag: Code review ACK 0bd882b. hebasto: ACK 0bd882b Tree-SHA512: 435271ac8f877074099ddb31436665b500e555f7cab899e5c8414af299b154d1249996be500e8fdeff64e4639bcaf7386e12510b738ec6f20e415e7e35afaea9
Configuration menu - View commit details
-
Copy full SHA for 51630d2 - Browse repository at this point
Copy the full SHA 51630d2View commit details -
Merge bitcoin#24390: test: Remove suppression no longer needed with h…
…eaders-only Boost.Test 81738d2 test: Remove suppression no longer needed with headers-only Boost.Test (Hennadii Stepanov) Pull request description: It appears, that moving to [headers-only](bitcoin#24301) Boost.Test makes the removed suppression unneeded even without [bumping](bitcoin#24383) boost version. ACKs for top commit: MarcoFalke: cr ACK 81738d2 Tree-SHA512: e60443f79a2e38cc78fceeff5c2956d622e8a10730129f9c27c14aef59bc6fa0894b8011e6191530443bf3165f78da978bc08ad04248ddb65e2da373264afa6a
Configuration menu - View commit details
-
Copy full SHA for d5d1a71 - Browse repository at this point
Copy the full SHA d5d1a71View commit details -
Merge dashpay#5952: backport: merge bitcoin#20146, bitcoin#20477, bit…
…coin#20624, bitcoin#19972, bitcoin#20724, bitcoin#19884, bitcoin#21165, bitcoin#20721, bitcoin#21254, partial bitcoin#19829 (networking backports) 0d90465 merge bitcoin#21254: Avoid connecting to real network when running tests (Kittywhiskers Van Gogh) 2f672bd merge bitcoin#20721: Move ping data to net_processing (Kittywhiskers Van Gogh) 0d46acb merge bitcoin#21165: Use mocktime in test_seed_peers (Kittywhiskers Van Gogh) 8f40769 merge bitcoin#19884: No delay in adding fixed seeds if -dnsseed=0 and peers.dat is empty (Kittywhiskers Van Gogh) 446076d test: add missing `dnsseed=0` in configuration (Kittywhiskers Van Gogh) 081d8db mempool: remove stray boost::optional usage (Kittywhiskers Van Gogh) bcd383c merge bitcoin#20724: Cleanup of -debug=net log messages (Kittywhiskers Van Gogh) 8c63868 merge bitcoin#19972: Add fuzzing harness for node eviction logic (Kittywhiskers Van Gogh) 18f2dc0 partial bitcoin#19829: Move block inventory state to net_processing (Kittywhiskers Van Gogh) ec77bd3 net: move nLast{Block,TX}Time to match upstream location (Kittywhiskers Van Gogh) f635e4a merge bitcoin#20624: Remove nStartingHeight check from block relay (Kittywhiskers Van Gogh) 9f1a3e5 merge bitcoin#20477: Add unit testing of node eviction logic (Kittywhiskers Van Gogh) 2d838a6 merge bitcoin#20146: Send post-verack handshake messages at most once (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * [bitcoin#19884](bitcoin#19884) doesn't seem to play nice on its own and necessitated two more backports (namely [bitcoin#21165](bitcoin#21165) and [bitcoin#21254](bitcoin#21254)) before it did. * Trying to find why that is has been time consuming but there doesn't seem to be a concrete answer. If running the daemon normally (`dashd --regtest --dnsseed=1`), the functionality behaves as expected but the test still fails. * The closest explanation is that our OOO backports with relation to mocking time could explain why it isn't working as expected due to debug statements I added that always shown the time delta between each "enough time has passed" check was 0 seconds even when the log was advancing forward in time. * The usage of `dnsseed=0` stems from [bitcoin#16551](bitcoin#16551) (link to diff in commit comment), a backport that was skipped due to complexity. Though, some aspects of the PR have made it with [dash#3946](dashpay#3946). * [bitcoin#19829](bitcoin#19829) does away with `CConnman::ForEachNode` usage in `PeerManagerImpl::UpdatedBlockTip` ([source](https://github.com/bitcoin/bitcoin/pull/19829/files#diff-6875de769e90cec84d2e8a9c1b962cdbcda44d870d42e4215827e599e11e90e3R1318-R1328)). Dash cannot do the same and continues to use `ForEachNode` as we use the `CNode::CanRelay` check, which is not accessible through the `Peer` struct. * It would be valuable to find values that are Dash-specific (like `m_masternode_connection`) and migrate them to `Peer` to avoid Dash-specific patches and closer alignment with upstream. ## Breaking Changes Potential change in behaviour in the GUI and RPC. In RPC, `getpeerinfo` will now display `pingwait` and `startingheight` if `fStateStats` is true (earlier behaviour was unconditional). `startingheight` has been placed below `banscore` (earlier behaviour placed it above). In the GUI (Qt), `peerHeight` and `peerPingWait` are subject to similar conditionality as mentioned earlier. No changes in protocol or consensus. Changes are primarily related to refactoring, cleaning up, improving networking code and adding a new flag (`-fixedseeds`). ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: re-utACK 0d90465 Tree-SHA512: 79eedf47387a8715fc9f20c6bc051d4eae832266454445043e1478dc36daafc1679e002623917af43cf923735217622e3985f664123a1de23fadfdfece7e9b6b
Configuration menu - View commit details
-
Copy full SHA for e9fdfa8 - Browse repository at this point
Copy the full SHA e9fdfa8View commit details
Commits on Mar 26, 2024
-
Merge dashpay#5951: backport: trivial 2024 03 22
d5d1a71 Merge bitcoin#24390: test: Remove suppression no longer needed with headers-only Boost.Test (fanquake) 51630d2 Merge bitcoin#22824: refactor: remove RecursiveMutex cs_nBlockSequenceId (MarcoFalke) a9b1575 Merge bitcoin#22781: wallet: fix the behavior of IsHDEnabled, return false in case of a blank hd wallet. (Samuel Dobson) 0505229 Merge bitcoin#22327: cli: Avoid truncating -rpcwaittimeout (MarcoFalke) 1dc97c7 Merge bitcoin#22149: test: Add temporary logging to debug bitcoin#20975 (W. J. van der Laan) 44f91cb Merge bitcoin#21597: test: Document race:validation_chainstatemanager_tests suppression (fanquake) c326830 Merge bitcoin-core/gui#243: fix issue when disabling the auto-enabled blank wallet checkbox (MarcoFalke) 267f42f Merge bitcoin#21382: build: Clean remnants of QTBUG-34748 fix (fanquake) 1fcc5f1 Merge bitcoin#20540: test: Fix wallet_multiwallet issue on windows (MarcoFalke) 4afbaf2 Merge bitcoin#20322: test: Fix intermittent issue in wallet_listsinceblock (MarcoFalke) Pull request description: ## Issue being fixed or feature implemented Batch of backports ## What was done? Trivial batch of backports ## How Has This Been Tested? CI looks good ## Breaking Changes None ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ Top commit has no ACKs. Tree-SHA512: 8eeac54f011eb1111888c745dd56184ac9601de290f2b0f7b7ad02240e8dc1cab5a47fed26bfed2bd6f1066e0710827a3e5b2426f0bf66821cf1cd09099d5160
Configuration menu - View commit details
-
Copy full SHA for f2a42a0 - Browse repository at this point
Copy the full SHA f2a42a0View commit details -
Merge dashpay#5940: refactor: consolidate activeMasternodeInfo{Cs} in…
…to CActiveMasternodeManager, create NodeContext alias, reduce globals usage 815e4f8 masternode: protect m_{error,state} with cs (pasta) 136e445 refactor: pass CActiveMasternodeManager as pointer arg to LLMQContext (Kittywhiskers Van Gogh) 5e0f777 refactor: pass CActiveMasternodeManager as pointer arg to CJContext (Kittywhiskers Van Gogh) f171c24 refactor: add CActiveMasternodeManager NodeContext alias, use in RPC (Kittywhiskers Van Gogh) 44beb94 refactor: prefix member variable names with m_ (Kittywhiskers Van Gogh) 73cef4f refactor: make bls{Pub}KeyOperator member variables instead of pointers (Kittywhiskers Van Gogh) fbc7836 refactor: make m_info private, get const refs (or copies) from Get*() functions (Kittywhiskers Van Gogh) 1b516ce refactor: use signing helper function instead of passing blsKeyOperator (Kittywhiskers Van Gogh) 33702ac refactor: add helper function to decrypt messages with blsKeyOperator (Kittywhiskers Van Gogh) 3eb931b refactor: add helper function to sign messages with blsKeyOperator (Kittywhiskers Van Gogh) 3827355 refactor: move key initialization to InitKeys, define destructor (Kittywhiskers Van Gogh) e5295de refactor: move activeMasternodeInfo{Cs} into CActiveMasternodeManager (Kittywhiskers Van Gogh) b8c1f01 refactor: avoid accessing active masternode info if not in masternode mode (Kittywhiskers Van Gogh) 9a3c5a3 trivial: access activeMasternodeInfo when lock is in scope (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * `CActiveMasternodeManager`, unlike other managers, is _conditionally_ initialized (specifically, when the node is hosting a masternode). This means that checks need to be made to ensure that the conditions needed to initialize the manager are true or that the pointer leads to a valid manager instance. As the codebase currently checks (and fast-fails) based on the node being in "masternode mode" (`fMasternodeMode`) or not, we will continue with this approach, but with additional assertions _after_ the masternode mode check if the manager exists. * Though, since `activeMasternodeInfo`(`Cs`) are global variables, they can be accessed _regardless_ of whether the corresponding manager exists. This means some parts of the codebase attempt to fetch information about the (nonexistent) active masternode _before_ determining if it should use the masternode mode path or not (looking at you, `CMNAuth::ProcessMessage`) Moving them into `CActiveMasternodeManager` meant adding checks _before_ attempting to access information about the masternode, as they would no longer be accessible with dummy values ([here](https://github.com/dashpay/dash/blob/2110c0c30983e8f3da02f11907bfe4e1b5dcd89f/src/init.cpp#L1633-L1635)) on account of being part of the conditionally initialized manager. * In an attempt to opportunistically dereference the manager, `CDKGSessionManager` (accepting a pointer) was dereferencing the manager before passing it to `CDKGSessionHandler`. This was done under the assumption that `CDKGSessionManager` would only ever be initialized in masternode mode. This is not true. I can confirm that because I spent a few days trying to debug test failures. `CDKGSessionHandler` is initialized in two scenarios: * In masternode mode * If the `-watchquorums` flag is enabled The latter scenario doesn't initialize `CActiveMasternodeManager`. Furthermore, the DKG round thread is started unconditionally ([here](https://github.com/dashpay/dash/blob/2110c0c30983e8f3da02f11907bfe4e1b5dcd89f/src/llmq/context.cpp#L79)) and the `CDKGSessionHandler::StartThreads` > `CDKGSessionHandler::StartThread` > `CDKGSessionHandler::PhaseHandlerThread` > `CDKGSessionHandler::HandleDKGRound` > `CDKGSessionHandler::InitNewQuorum` > `CActiveMasternodeManager::GetProTxHash` call chain reveals an attempt to fetch active masternode information without any masternode mode checks. This behaviour has now been changed and the thread will only be spun up if in masternode mode. * Dereferencing so far has been limited to objects that primarily hold data (like `CCoinJoinBroadcastTx` or `CGovernanceObject`) as they should not have knowledge of node's state (that responsibility lies with whatever manager manipulates those objects), perform one-off operations and static functions. * `activeMasternodeInfo` allowed its members to be read-write accessible to anybody who asked. Additionally, signing and decrypting involved borrowing the operator secret key from the active masternode state to perform those operations. This behaviour has now been changed. The internal state is now private and accessible read-only as a const ref (or copy) and `Decrypt`/`Sign` functions have been implemented to allow those operations to happen without having another manager access the operator private key in order to do so. * You cannot combine a `WITH_LOCK` and an `Assert` (in either mutex or accessed value), doing so will cause errors if `-Werror=thread-safety` is enabled. This is why `assert`s are added even when it would intuitively seem that `Assert` would've been more appropriate to use. ## Future Considerations Currently there are no unit tests that test the functionality of `CActiveMasternodeManager` as it's never initialized in test contexts, breakage had to be found using functional tests. Perhaps some (rudimentary) tests for `CActiveMasternodeManager` may prove to be valuable. ## Breaking Changes Not _really_. Some behaviour has been modified but nothing that should necessitate updates or upgrades. ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK 815e4f8 Tree-SHA512: cbe49ea9e1c35df514e1b40869ee271baef1c348c9d09e4b356e5fc8fe5449cbbe66569258f2d664029faa9a46f711df9bf9e41eb8734c3aefc6cd8e94378948
Configuration menu - View commit details
-
Copy full SHA for f217e0a - Browse repository at this point
Copy the full SHA f217e0aView commit details -
Merge bitcoin#19179: ci: Run ci configs on cirrus
fa7a438 ci: Fix doc typos in .cirrus.yml (MarcoFalke) fa73674 ci: Run i686 centos ci config on cirrus (MarcoFalke) fa1f949 ci: Run nowallet ci config on cirrus (MarcoFalke) Pull request description: Travis CI Org is shutting down, so move the configs to cirrus ci ACKs for top commit: practicalswift: ACK fa7a438: patch looks correct Tree-SHA512: 1b7125c7f0d2288931fb8c5e90345891d5f7c1f00c4af136afbeb36bd2836f72920a1877dacc7be787e2c8d84de2a733c1ca71931e5c101b222c1fea588619b3
Configuration menu - View commit details
-
Copy full SHA for fcb4c20 - Browse repository at this point
Copy the full SHA fcb4c20View commit details -
Merge bitcoin#20543: ci: no-longer exclude feature_block in TSAN job
2b35611 ci: no-longer exclude feature_block in TSAN job (fanquake) Pull request description: The TSAN job is now running on Cirrus. Increase the allocated memory to the [maximum allowed](https://cirrus-ci.org/guide/linux/#linux-containers). ACKs for top commit: jonasschnelli: utACK 2b35611 - checked the CI run and confirmed that the feature_block runs: https://cirrus-ci.com/task/6008403543719936?command=ci#L3249 MarcoFalke: review ACK 2b35611 Tree-SHA512: b774995600361c74bc3267b566e12add66a4604bdf88f6e3f69669edbb8d7aff6f20fdbf0ef98187be4730ce4e18b1939bbcecd993a5c5c1ff40b237c7921b71
Configuration menu - View commit details
-
Copy full SHA for 2fa526b - Browse repository at this point
Copy the full SHA 2fa526bView commit details -
Merge bitcoin#20545: ci: Adjust cirrus ci task names
fa5c4f1 ci: Adjust cirrus ci task names (MarcoFalke) Pull request description: The task names are too long for GitHub to display them properly without truncation in the "checks-view". Fix that by using a new naming scheme: * Native builds don't mention "x86_64 Linux", as it is redundant, they do mention the OS (bionic or focal) in the name suffix * Cross builds mention the target in the prefix and the OS (always bionic) in the suffix * the macos native build simply says "macos native" ACKs for top commit: practicalswift: ACK fa5c4f1: patch looks correct! hebasto: ACK fa5c4f1, I have reviewed the code and it looks OK, I agree it can be merged. RiccardoMasutti: ACK fa5c4f1 Tree-SHA512: 856deb0577c97c70069ef1d369991addc49522135c0ad9e382218fd79ba3d55a95d6c601288dcef0510764b92fbd30a9d7de32b08dc5be55482deab14049b892
Configuration menu - View commit details
-
Copy full SHA for d11e379 - Browse repository at this point
Copy the full SHA d11e379View commit details -
Merge bitcoin#20572: ci: Adjust Cirrus CI task names (follow up)
667b6a2 ci: Adjust Cirrus CI task names (follow up) (Hennadii Stepanov) Pull request description: "no depends" implies "only system libs". bitcoin#20545 follow up . ACKs for top commit: practicalswift: ACK 667b6a2 Tree-SHA512: b3bf5dc931b7aeed30932e8d6c5f5b0040e4be5a5676ed23b41675ebad2f8a016b1abb27584b68970ee00bc5b2af7122ca9566f373db5f3a2e38fcf7eee6522a
Configuration menu - View commit details
-
Copy full SHA for 5d66d57 - Browse repository at this point
Copy the full SHA 5d66d57View commit details -
Merge bitcoin#20615: cirrus: Schedule one task with paid credits for …
…faster CI feedback faf2c6e cirrus: Schedule one task with paid credits for faster CI feedback (MarcoFalke) Pull request description: During times of high activity in the repo, the scheduling of Cirrus CI tasks might put them a few hours in the future. This is fine when all the tasks eventually pass. Though for failing tasks, a failure should ideally be shown to the author and reviewer as soon as possible. Compute credits can be used to schedule immediately: https://cirrus-ci.org/pricing/#compute-credits. Running all tasks with compute credits will probably be more expensive than our previous CI invoice. However, they are also more flexible. As a start we could enable only a single task and revisit/re-evaluate the next steps in a month. ACKs for top commit: laanwj: Concept ACK faf2c6e fanquake: ACK faf2c6e practicalswift: cr ACK faf2c6e: patch looks correct Tree-SHA512: df599e1c4cc0394f7f03413ad29954ddc87b163b02640d8bfc0497a5dc8d237b8c963c1dd9d01ac83c4a044f575300763097dac2ea6d1a4a163a1cece342b743
Configuration menu - View commit details
-
Copy full SHA for 955fc41 - Browse repository at this point
Copy the full SHA 955fc41View commit details -
Merge bitcoin#20658: ci: Move linter task to cirrus
4045a67 ci: Use cpu=1 for linter (Dhruv Mehta) 739d390 ci: Move linter task to cirrus (Dhruv Mehta) Pull request description: Solves bitcoin#20467: Move linter to Cirrus-CI as Travis-CI.org is shutting down ACKs for top commit: MarcoFalke: ACK 4045a67 Tree-SHA512: 9aa7487ac86c91fc68bb584d29134e304dbd46702514a5d47d1ef0de6b877d96d42b7589870fc67ad9a31f5d3a789728446da4418688f336111a9ba0f8de5feb
Configuration menu - View commit details
-
Copy full SHA for 9d824de - Browse repository at this point
Copy the full SHA 9d824deView commit details -
Merge bitcoin#20680: ci: Only use credits for pull requests to the ma…
…in repo facf5e3 ci: Only use credits for pull requests to the main repo (MarcoFalke) Pull request description: No need to spend credits for the `master` branch, because the build shouldn't fail there anyway and it is not time-critical to get a fast feedback. Some other changes: * Disable `stateful` for faster scheduling * Reduce lint memory from 8G to 1G for faster scheduling ACKs for top commit: hebasto: ACK facf5e3, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: 4d052e68217086574b9ea3d603cde1b585833c289d47dfed5308ff001d02964dc75ec3b3ebf5b233ccd09c47ad4ff5ba0bef639bf6362d984e7c49fca8fec24b
Configuration menu - View commit details
-
Copy full SHA for 8694479 - Browse repository at this point
Copy the full SHA 8694479View commit details -
Merge bitcoin#20691: ci, doc: Travis CI features and mentions cleanup
95487b0 doc: Drop mentions of Travis CI as it is no longer used (Hennadii Stepanov) 09d105e ci: Drop travis_fold feature as Travis CI is no longer used (Hennadii Stepanov) Pull request description: As Travis CI is no longer used, this PR: - drops `travis_fold` feature - drops mentions of Travis CI in docs ACKs for top commit: MarcoFalke: ACK 95487b0 Tree-SHA512: 2e259bb8b1e37bcefc1251737bb2716f06ddb57c490010b373825c4e70f42ca38efae69a2f63f21f577d7cee3725b94097bdddbd313f8ebf499281cf97c53cef
Configuration menu - View commit details
-
Copy full SHA for 8daef64 - Browse repository at this point
Copy the full SHA 8daef64View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2021969 - Browse repository at this point
Copy the full SHA 2021969View commit details -
Merge bitcoin#20682: ci: Install missing lint packages
faeb40b ci: Install missing lint packages (MarcoFalke) Pull request description: The cirrus container is vanilla ubuntu, so we need to install the needed packages ACKs for top commit: hebasto: ACK faeb40b, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: e56198108e26ea0ba2a344b1b74bc294652f34e9866cca053a25fb1b83bbd87ea40254c340e5e169fdfcbd4dcb39fdc2078b5157ca729a22a9a1792ec514a33e
Configuration menu - View commit details
-
Copy full SHA for 53ca879 - Browse repository at this point
Copy the full SHA 53ca879View commit details -
Merge bitcoin#20697: ci: Fix COMMIT_RANGE variable value for PRs
3c2478c ci: Print COMMIT_RANGE to the log as it was in Travis CI (Hennadii Stepanov) c123892 ci: Drop Travis-specific workaround for shellcheck (Hennadii Stepanov) 10af252 ci: Drop Travis-specific way to set COMMIT_RANGE variable (Hennadii Stepanov) 93504da ci: Fix COMMIT_RANGE variable value for PRs (Hennadii Stepanov) Pull request description: This PR: - is a bitcoin#20658 and bitcoin#20682 followup - set the `COMMIT_RANGE` variable correctly for PRs - cleans up Travis-specific code - prints COMMIT_RANGE value to the log for convenience as it was in Travis CI ACKs for top commit: MarcoFalke: ACK 3c2478c Tree-SHA512: beb933352b10fd5eb3e66373ddb62439e4f3a03b50fb037ee89fa92c0706cec41d05f2d307f15bb18d1e634e6464f4e123b7e2f88703c8edfd145d8d6eff0b1a
Configuration menu - View commit details
-
Copy full SHA for 802cb95 - Browse repository at this point
Copy the full SHA 802cb95View commit details -
Merge bitcoin#19983: Drop some TSan suppressions
3e15712 Update TSan suppressions (Hennadii Stepanov) Pull request description: It seems possible now to drop some TSan suppressions. Top commit has no ACKs. Tree-SHA512: 94518fd2f3a7168b2989424de0696e42c8f509b833aafbc7e75f4c1180a0b8d9a47f43c50d06b03b26a924643afe86274b2062c9d456c17a68576d19566ed66f
Configuration menu - View commit details
-
Copy full SHA for 3231ad2 - Browse repository at this point
Copy the full SHA 3231ad2View commit details -
partial Merge bitcoin#20451: lint: run mypy over contrib/devtools
1ef2138 lint: run mypy over contrib/devtools (fanquake) Pull request description: wumpus mentioned on IRC that we don't currently run `mypy` over the `contrib/devtools` directory, and that it would likely be worthwhile given bitcoin#20434. This just adds that dir to the linter, as well as some missing annotations to fix existing errors. Note that now we require Python 3.6 we can make use of variable annotations. master (patched to check contrib devtools): ```bash test/lint/lint-python.sh contrib/devtools/symbol-check.py:154: error: Incompatible types in assignment (expression has type "List[str]", variable has type "str") contrib/devtools/circular-dependencies.py:35: error: Need type annotation for 'deps' (hint: "deps: Dict[<type>, <type>] = ...") contrib/devtools/circular-dependencies.py:67: error: Need type annotation for 'closure' (hint: "closure: Dict[<type>, <type>] = ...") Found 4 errors in 3 files (checked 187 source files) ``` I haven't quite gone as far as to add annotations like ```python CHECKS: Dict[str, List[Tuple[str, Callable[[Any], bool]]]] = {... ``` to `symbol-check.py`. ACKs for top commit: laanwj: ACK 1ef2138 Tree-SHA512: a58c2ece588c640289dc1d35dad5b1b8732788272daa0965d6bf44ee8a7f7c8e8585f94d233ac41c84b9ffcfc97841a00fe2c9acba41f58fd164f01de4b6512b
Configuration menu - View commit details
-
Copy full SHA for ab430bd - Browse repository at this point
Copy the full SHA ab430bdView commit details -
Merge bitcoin#20817: lint: update list of spelling linter false posit…
…ives, bump to codespell 2.0.0 f3ba916 lint: ignore gitian keys file for spelling linter (Sebastian Falbesoner) da289a6 lint: update list of spelling linter false positives (Sebastian Falbesoner) a0022f1 test: bump codespell linter version to 2.0.0 (Sebastian Falbesoner) Pull request description: This small patch updates the ignore list for the spelling linter script (which uses `codespell`), both removing false-positives that are not relevant anymore and adding new ones. As [suggested by jonatack](bitcoin#20762 (comment), whose last name is now also part of the list :)~~. Also changed the linter script to not check the gitian keys file, as [suggested by hebasto](bitcoin#20817 (comment)). The codespell version used is bumped to most recent version 2.0.0, which is more aware of some terms that were previously needed in the ignorelist for v1.17.1, see bitcoin#20817 (comment). Running spelling linter on master branch (repeated findings in the same file are removed to keep the output short): ``` $ ./test/lint/lint-spelling.sh contrib/gitian-keys/keys.txt:16: Atack ==> Attack doc/developer-notes.md:1284: inout ==> input, in out doc/psbt.md:122: Asend ==> Ascend, as end src/bench/verify_script.cpp:27: Keypair ==> Key pair src/blockencodings.h:30: Unser ==> Under, unset, unsure, user src/compressor.h:65: Unser ==> Under, unset, unsure, user src/core_read.cpp:131: presense ==> presence src/index/disktxpos.h:21: blockIn ==> blocking src/net_processing.h:67: anounce ==> announce src/netaddress.h:486: compatiblity ==> compatibility src/primitives/transaction.h:35: nIn ==> inn, min, bin, nine src/qt/bitcoinunits.cpp:101: nIn ==> inn, min, bin, nine src/rpc/blockchain.cpp:2150: nIn ==> inn, min, bin, nine src/rpc/misc.cpp:198: nIn ==> inn, min, bin, nine src/script/bitcoinconsensus.cpp:81: nIn ==> inn, min, bin, nine src/script/bitcoinconsensus.h:63: nIn ==> inn, min, bin, nine src/script/interpreter.cpp:1279: nIn ==> inn, min, bin, nine src/script/interpreter.h:222: nIn ==> inn, min, bin, nine src/script/sign.cpp:17: nIn ==> inn, min, bin, nine src/script/sign.h:39: nIn ==> inn, min, bin, nine src/serialize.h:181: Unser ==> Under, unset, unsure, user src/signet.cpp:142: nIn ==> inn, min, bin, nine src/test/base32_tests.cpp:17: fo ==> of, for src/test/base64_tests.cpp:17: fo ==> of, for src/test/script_tests.cpp:1509: nIn ==> inn, min, bin, nine src/test/sighash_tests.cpp:27: nIn ==> inn, min, bin, nine src/test/validation_tests.cpp:78: excercise ==> exercise src/undo.h:36: Unser ==> Under, unset, unsure, user src/validation.cpp:1403: nIn ==> inn, min, bin, nine src/validation.h:255: nIn ==> inn, min, bin, nine src/wallet/wallet.cpp:1532: nIn ==> inn, min, bin, nine src/wallet/walletdb.cpp:429: Crypted ==> Encrypted test/functional/feature_nulldummy.py:63: unnecssary ==> unnecessary test/functional/wallet_encryption.py:81: crypted ==> encrypted test/functional/wallet_upgradewallet.py:36: fpr ==> for, far, fps ^ Warning: codespell identified likely spelling errors. Any false positives? Add them to the list of ignored words in test/lint/lint-spelling.ignore-words.txt ``` Running spelling linter on PR branch: ``` $ ./test/lint/lint-spelling.sh src/core_read.cpp:131: presense ==> presence src/net_processing.h:67: anounce ==> announce src/netaddress.h:486: compatiblity ==> compatibility src/test/validation_tests.cpp:78: excercise ==> exercise src/wallet/walletdb.cpp:429: Crypted ==> Encrypted test/functional/feature_nulldummy.py:63: unnecssary ==> unnecessary test/functional/wallet_encryption.py:81: crypted ==> encrypted ^ Warning: codespell identified likely spelling errors. Any false positives? Add them to the list of ignored words in test/lint/lint-spelling.ignore-words.txt ``` This list of remaining findings doesn't contain false positives anymore -- the typos are fixed in PR bitcoin#20762. Happy new year! 🍾 ACKs for top commit: hebasto: re-ACK f3ba916, only suggested changes since my [previous](bitcoin#20817 (review)) review. jonatack: ACK f3ba916 I don't know if there are any particular issues with bumping codespell to v2.0.0, but locally running the spelling linter and the cirrus job at https://cirrus-ci.com/task/5004066998714368 both LGTM. Thanks for also verifying and removing the unused words from the ignore list. Tree-SHA512: e92ae6f16c01d4ff3d54f8c3a0ee95e12741f7bfe031d307a785f5cfd8a80525b16b34275f413b914c4a318f5166f9887399c21f2dad9cc7e9be41647042ef37
Configuration menu - View commit details
-
Copy full SHA for ae74ad0 - Browse repository at this point
Copy the full SHA ae74ad0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 544348f - Browse repository at this point
Copy the full SHA 544348fView commit details
Commits on Mar 27, 2024
-
Merge dashpay#5957: backport: bitcoin#19179, bitcoin#19983, bitcoin#2…
…0451, bitcoin#20543, bitcoin#20545, bitcoin#20572, bitcoin#20615, bitcoin#20658, bitcoin#20680, bitcoin#20682, bitcoin#20691, bitcoin#20697, bitcoin#20817, partial bitcoin#20451 ae74ad0 Merge bitcoin#20817: lint: update list of spelling linter false positives, bump to codespell 2.0.0 (fanquake) ab430bd partial Merge bitcoin#20451: lint: run mypy over contrib/devtools (Wladimir J. van der Laan) 3231ad2 Merge bitcoin#19983: Drop some TSan suppressions (MarcoFalke) 802cb95 Merge bitcoin#20697: ci: Fix COMMIT_RANGE variable value for PRs (MarcoFalke) 53ca879 Merge bitcoin#20682: ci: Install missing lint packages (MarcoFalke) 2021969 chore: drop travis mentioning in docs and comments (Konstantin Akimov) 8daef64 Merge bitcoin#20691: ci, doc: Travis CI features and mentions cleanup (MarcoFalke) 8694479 Merge bitcoin#20680: ci: Only use credits for pull requests to the main repo (MarcoFalke) 9d824de Merge bitcoin#20658: ci: Move linter task to cirrus (MarcoFalke) 955fc41 Merge bitcoin#20615: cirrus: Schedule one task with paid credits for faster CI feedback (Wladimir J. van der Laan) 5d66d57 Merge bitcoin#20572: ci: Adjust Cirrus CI task names (follow up) (MarcoFalke) d11e379 Merge bitcoin#20545: ci: Adjust cirrus ci task names (MarcoFalke) 2fa526b Merge bitcoin#20543: ci: no-longer exclude feature_block in TSAN job (MarcoFalke) fcb4c20 Merge bitcoin#19179: ci: Run ci configs on cirrus (MarcoFalke) Pull request description: ## Issue being fixed or feature implemented Backports from bitcoin v22, mostly CI related, other to improve lints CI related changes are not really important because we use gitlab runner instead cirrus, but keep them up to date for sake of codebase unification. ## What was done? - bitcoin#19179 - bitcoin#20543 - bitcoin#20545 - bitcoin#20572 - bitcoin#20615 - bitcoin#20658 - bitcoin#20680 - bitcoin#20691 - bitcoin#20682 - bitcoin#20697 - bitcoin#19983 - partial bitcoin#20451 - bitcoin#20817 ## How Has This Been Tested? Run unit/functional tests ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone Top commit has no ACKs. Tree-SHA512: 5faffe15a75b78a9ea32b49f2371d6ff70c319a983c7a2b4ca6792ba3ea03f2170bacf5c255151da650948ad279c456475151d0db7dcd708eae540b30d88a05e
Configuration menu - View commit details
-
Copy full SHA for 2a44f2e - Browse repository at this point
Copy the full SHA 2a44f2eView commit details
Commits on Mar 28, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 663774c - Browse repository at this point
Copy the full SHA 663774cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0692826 - Browse repository at this point
Copy the full SHA 0692826View commit details -
fix: deadlock over cs_main and contributionsCacheCs in dkssessionmgr
It fixes rpc failure: "Work queue depth exceeded"
Configuration menu - View commit details
-
Copy full SHA for ded1b5a - Browse repository at this point
Copy the full SHA ded1b5aView commit details
Commits on Apr 2, 2024
-
Merge dashpay#5864: refactor: don't hardcode the transaction version
8b6c96d refactor: a new constant with Tx Version (Alessandro Rezzi) 9d429f4 refactor: drop functions from struct which supposed to be simple as possible (Alessandro Rezzi) b2bb097 refactor: simplify vExtra using in wallet and add const (Alessandro Rezzi) d9f0e93 refactor: use CTransaction for immutable tx in evo_assetlocks_tests (Alessandro Rezzi) ca0fe8c refactor: introduce HasExtraPayloadField() (Alessandro Rezzi) 72d2008 refactor: introduce IsSpecialTxVersion() (Alessandro Rezzi) Pull request description: ## Issue being fixed or feature implemented Refactor extracted from dashpay#5860. Even if that PR should not need anymore this commit (since it has been found a better way to activate dip143), I think It's still a worthy refactor ## What was done? Introduce `tx.IsSpecialTxVersion()` in place of `tx.nVersion == 3`, `tx.nVersion >= 3` and `tx.HasExtraPayloadField()` in place of `tx.nVersion == 3 && tx.nType != TRANSACTION_NORMAL` ## How Has This Been Tested? ## Breaking Changes ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [X] I have performed a self-review of my own code - [X] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: knst: utACK 8b6c96d Tree-SHA512: aa16f9ee570e0fa86561cc440ffba40f6d554caa3e08b630b481732b899cc613eef596c672b5a20dbf3582ad109ffb687f4ad815f712dc16f636f8857d98480a
Configuration menu - View commit details
-
Copy full SHA for 938cc70 - Browse repository at this point
Copy the full SHA 938cc70View commit details -
Configuration menu - View commit details
-
Copy full SHA for acbbe8c - Browse repository at this point
Copy the full SHA acbbe8cView commit details -
Merge dashpay#5962: fix: deadlock over cs_main and contributionsCache…
…Cs in dkssessionmgr ded1b5a fix: deadlock over cs_main and contributionsCacheCs in dkssessionmgr (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented **It fixes rpc failure: "Work queue depth exceeded"** As I checked on running `dashd` in deadlock condition: Thread 78 is a thread that keep `cs_main`: ``` dashpay#14 0x0000aaaad1f8d604 in BuildSimplifiedMNListDiff () at evo/simplifiedmns.cpp:364 ``` but it is locked by `contributionsCacheCs` ``` dashpay#8 llmq::CDKGSessionManager::GetVerifiedContributions () at llmq/dkgsessionmgr.cpp:392 ``` On other hand, `contributionsCacheCs` is blocked by Thread 59 ``` dashpay#17 0x0000aaaad1ba1940 in llmq::CDKGSessionManager::GetVerifiedContributions () at llmq/dkgsessionmgr.cpp:393 ``` and it makes circuit lock by waiting `cs_main` in ``` dashpay#9 ReadBlockFromDisk () at node/blockstorage.cpp:75 ``` See dashpay/dash-issues#69 for more details Seems introduced there: dashpay#3911 ## What was done? Deadlock is removed by reducing scope of mutex ## How Has This Been Tested? I reviewed 2 different servers which have status `work queue exceeded`, both have same deadlock, so, this patch should fix this issue. Once this fix is merged, we can test it on testnet. ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone Top commit has no ACKs. Tree-SHA512: 4fe5c03c464ee6934fb927b897f007b65a8995723196edaffdae067edee7067da151130d4c4bac47d3418fdad5c8e130682f42d7ef9c044380a8c8fff78ee008
Configuration menu - View commit details
-
Copy full SHA for fcee7a5 - Browse repository at this point
Copy the full SHA fcee7a5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3cd6937 - Browse repository at this point
Copy the full SHA 3cd6937View commit details -
Merge dashpay#5959: refactor: add a default for CopyNodeVector(cond)
544348f refactor: add a default for CopyNodeVector(cond) (pasta) Pull request description: ## Issue being fixed or feature implemented This is a custom function in the dash codebase; remove it and use default arg instead ## What was done? ## How Has This Been Tested? Building ## Breaking Changes None ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ Top commit has no ACKs. Tree-SHA512: 9a7854436ed8c068c602ad4c87dc7b792fdbc3d37dad4749758bf3b052814b6d2e0051dab7f2bd13df860ee9ac9678738c5d2c3b2058829fde84c2b2e219da76
Configuration menu - View commit details
-
Copy full SHA for cede44d - Browse repository at this point
Copy the full SHA cede44dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0e78555 - Browse repository at this point
Copy the full SHA 0e78555View commit details -
test: fix incorrect nServices assertion, use NODE_NETWORK value
The value of nServices for `NODE_NETWORK | NODE_WITNESS`, the default for p2p_addr{v2}_relay.py in Bitcoin Core, is 9. Dash doesn't implement SegWit and so the corresponding nServices value is `NODE_NETWORK`, which is 1.
Configuration menu - View commit details
-
Copy full SHA for a39065b - Browse repository at this point
Copy the full SHA a39065bView commit details -
Merge dashpay#5949: chore: apply CI for clang-format only for dash files
adc0e4b fix: apply changes for .clang-format to make it matched with our code style (Konstantin Akimov) 0c884f9 chore: narrow score of clang-diff-format for dash specific files only (Konstantin Akimov) 4bc0e1f chore: intentionally introducing wrong formatting to bip39.cpp to trigger CI (Konstantin Akimov) 2c74ad4 fix: adjust wallet/bip39 accordingly linter comments (Konstantin Akimov) d3faa85 refactor: use better masks for list of files; add missing bip39.{h,cpp} (Konstantin Akimov) 7788f1d refactor: move list of non backported files o test/util/data/non-backported.txt (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented **Note**: should be this PR either dashpay#5942 be merged, not both CI clang-format triggers to non-dash files + clang format is differ from out current formatting. ## What was done? See each commits ## How Has This Been Tested? See CI result To test locally how new style will look, just run this command: ``` diff -u <(cat {coinjoin,governance,llmq,evo,masternode}/*.{h,cpp}) <(clang-format-16 {coinjoin,governance,llmq,evo,masternode}/*.{h,cpp} ) ``` ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone Top commit has no ACKs. Tree-SHA512: d87f30ba78e04f886d7eb2b6b235c20a966bc4438e6428a83ecff5c795d72777516d4270eb9769ffebef9f06e9509acf3c535b4c87b1be6c8a5aef7e2b7efecb
Configuration menu - View commit details
-
Copy full SHA for 85caf8a - Browse repository at this point
Copy the full SHA 85caf8aView commit details -
Configuration menu - View commit details
-
Copy full SHA for c79f8b5 - Browse repository at this point
Copy the full SHA c79f8b5View commit details -
Merge dashpay#5967: test: Fix
p2p_addr_relay.py
c79f8b5 fix: keep ADDRS outside (UdjinM6) a39065b test: fix incorrect nServices assertion, use NODE_NETWORK value (Kittywhiskers Van Gogh) 0e78555 fix: add missing check for sending addrs (UdjinM6) 3cd6937 fix: test nodes should use mocktime (UdjinM6) acbbe8c fix: relayed addresses should use mocktime (UdjinM6) Pull request description: ## Issue being fixed or feature implemented `p2p_addr_relay.py` is broken but we don't see it in CI because it doesn't test everything it should atm. This weird behaviour was discovered by @kwvg while preparing dashpay#5964. ## What was done? Bring back the missing check and fix the test. Borrowed one fix from dashpay#5964 to make this PR complete. ## How Has This Been Tested? Run `p2p_addr_relay.py` ## Breaking Changes n/a ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: kwvg: ACK c79f8b5 Tree-SHA512: a88f9c3563205b092ebd9ab7e8f0c034b6ef5bef2adbf57c269c444ef334e519e30d028325e73e99de025654a0dbd94baad033fb1538896e85572d4db2a00b23
Configuration menu - View commit details
-
Copy full SHA for 14a923a - Browse repository at this point
Copy the full SHA 14a923aView commit details -
fix: fix potential mutex lifetime issue were we are returning a refer…
…ence, and then releasing the mutex
Configuration menu - View commit details
-
Copy full SHA for 7f36f12 - Browse repository at this point
Copy the full SHA 7f36f12View commit details -
fix: don't move out of pendingContributionVerifications; use a ref an…
…d then clear Moving out of a variable technically leaves it in an unspecified and potentially invalid state; yet I don't see anywhere we are reseting or otherwise clearing pendingContributionVerifications to ensure it is valid. Instead simply take a ref to it; and then clear it at the end.
Configuration menu - View commit details
-
Copy full SHA for 6f2b350 - Browse repository at this point
Copy the full SHA 6f2b350View commit details -
Merge bitcoin#22736: log, sync: change lock contention from preproces…
…sor directive to log category 7e69873 sync: remove DEBUG_LOCKCONTENTION preprocessor directives (Jon Atack) 9b08006 log, sync: improve lock contention logging and add time duration (Jon Atack) 3f4c6b8 log, timer: add timing macro in usec LOG_TIME_MICROS_WITH_CATEGORY (Jon Atack) b7a1744 log, sync: add LOCK logging category, apply it to lock contention (Jon Atack) Pull request description: To enable lock contention logging, `DEBUG_LOCKCONTENTION` has to be defined at compilation. Once built, the logging is not limited to a category and is high frequency, verbose and in all-caps. With these factors combined, it seems likely to be rarely used. This patch: - adds a `lock` logging category - adds a timing macro in microseconds, `LOG_TIME_MICROS_WITH_CATEGORY` - updates `BCLog::LogMsg()` to omit irrelevant decimals for microseconds and skip unneeded code and math - improves the lock contention logging, drops the all-caps, and displays the duration in microseconds - removes the conditional compilation directives - allows lock contentions to be logged on startup with `-debug=lock` or at run time with `bitcoin-cli logging '["lock"]'` ``` $ bitcoind -signet -debug=lock 2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1920 started 2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1920 completed (4μs) 2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1302 started 2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1302 completed (4μs) 2021-09-01T12:40:02Z LockContention: cs_vNodes, net.cpp:2242 started 2021-09-01T12:40:02Z LockContention: cs_vNodes, net.cpp:2242 completed (20μs) 2021-09-01T12:43:04Z LockContention: ::cs_main, validation.cpp:4980 started 2021-09-01T12:43:04Z LockContention: ::cs_main, validation.cpp:4980 completed (3μs) $ bitcoin-cli -signet logging "lock": true, $ bitcoin-cli -signet logging [] '["lock"]' "lock": false, $ bitcoin-cli -signet logging '["lock"]' "lock": true, ``` I've tested this with Clang 13 and GCC 10.2.1, on Debian, with and without `--enable-debug`. ACKs for top commit: hebasto: re-ACK 7e69873, added a contention duration to the log message since my [previous](bitcoin#22736 (review)) review. theStack: re-ACK 7e69873 🔏 ⏲️ Tree-SHA512: c4b5eb88d3a2c051acaa842b3055ce30efde1f114f61da6e55fcaa27476c1c33a60bc419f7f5ccda532e1bdbe70815222ec2b2b6d9226f29c8e94e598aacfee7
Configuration menu - View commit details
-
Copy full SHA for 436a578 - Browse repository at this point
Copy the full SHA 436a578View commit details -
Merge dashpay#5649: Merge bitcoin#22736: log, sync: change lock conte…
…ntion from preprocessor directive to log category 436a578 Merge bitcoin#22736: log, sync: change lock contention from preprocessor directive to log category (MarcoFalke) Pull request description: 7e69873 sync: remove DEBUG_LOCKCONTENTION preprocessor directives (Jon Atack) 9b08006 log, sync: improve lock contention logging and add time duration (Jon Atack) 3f4c6b8 log, timer: add timing macro in usec LOG_TIME_MICROS_WITH_CATEGORY (Jon Atack) b7a1744 log, sync: add LOCK logging category, apply it to lock contention (Jon Atack) Pull request description: To enable lock contention logging, `DEBUG_LOCKCONTENTION` has to be defined at compilation. Once built, the logging is not limited to a category and is high frequency, verbose and in all-caps. With these factors combined, it seems likely to be rarely used. This patch: - adds a `lock` logging category - adds a timing macro in microseconds, `LOG_TIME_MICROS_WITH_CATEGORY` - updates `BCLog::LogMsg()` to omit irrelevant decimals for microseconds and skip unneeded code and math - improves the lock contention logging, drops the all-caps, and displays the duration in microseconds - removes the conditional compilation directives - allows lock contentions to be logged on startup with `-debug=lock` or at run time with `bitcoin-cli logging '["lock"]'` ``` $ bitcoind -signet -debug=lock 2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1920 started 2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1920 completed (4μs) 2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1302 started 2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1302 completed (4μs) 2021-09-01T12:40:02Z LockContention: cs_vNodes, net.cpp:2242 started 2021-09-01T12:40:02Z LockContention: cs_vNodes, net.cpp:2242 completed (20μs) 2021-09-01T12:43:04Z LockContention: ::cs_main, validation.cpp:4980 started 2021-09-01T12:43:04Z LockContention: ::cs_main, validation.cpp:4980 completed (3μs) $ bitcoin-cli -signet logging "lock": true, $ bitcoin-cli -signet logging [] '["lock"]' "lock": false, $ bitcoin-cli -signet logging '["lock"]' "lock": true, ``` I've tested this with Clang 13 and GCC 10.2.1, on Debian, with and without `--enable-debug`. ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ Top commit has no ACKs. Tree-SHA512: ecd15833b9e5752067c92a074f61d88fb8528157b1c0446f9f74d4898acb9c09ebb5f652c75152785a41126fdf777032a6f85d472cd1d9a0b6013519329dc2e7
Configuration menu - View commit details
-
Copy full SHA for 4da2067 - Browse repository at this point
Copy the full SHA 4da2067View commit details
Commits on Apr 3, 2024
-
Merge bitcoin#20288: script, doc: contrib/seeds updates
961f148 doc: update contrib/seeds/README dnspython installation info (Jon Atack) dd7b5f4 script: fix deprecation warning in makeseeds.py (Jon Atack) Pull request description: Seen while reviewing bitcoin#20237. 1. Fix a deprecation warning in `contrib/seeds/makeseeds.py` ``` makeseeds.py:139: DeprecationWarning: please use dns.resolver.resolve() instead asn = int([x.to_text() for x in dns.resolver.query('.'.join( ``` - Per https://dnspython.readthedocs.io/en/latest/whatsnew.html, `dns.resolver.query()` was deprecated in `dnspython` version 2.0.0. - See https://dnspython.readthedocs.io/en/latest/resolver-class.html for more info on the resolver class. 2. Update the `dnspython` dependency installation instructions in `contrib/seeds/README` - The markdown rendering can be seen here: https://github.com/jonatack/bitcoin/tree/contrib-seeds-fixups/contrib/seeds ACKs for top commit: laanwj: code review ACK 961f148 Tree-SHA512: f9c4f318a1a0d35b8de147d24b72c534a1f58eece31e7cfa00b4149a63b6a618d8ca0312f52fd8056f3c645cf2ee68574ca02319fddffdad919a70cd33395d33
Configuration menu - View commit details
-
Copy full SHA for 9eec4cc - Browse repository at this point
Copy the full SHA 9eec4ccView commit details -
Merge bitcoin#20329: docs/descriptors.md: Remove hardened marker in t…
…he path after xpub dc80a7d docs/descriptors.md: Remove hardened marker in the path after xpub (Dmitry Petukhov) Pull request description: As described in "Key origin identification" section, a descriptor that has hardened derivation after xpub does not let you compute scripts without access to the corresponding private keys. Such a descriptor is practically useless. The text after the descriptor said "with child key *1'/2* of the specified xpub", and clearly an xpub cannot have "child key" with hardened derivation. Therefore it makes sense to fix this inconsistency to not confuse the reader of the doc Top commit has no ACKs. Tree-SHA512: 9f35951d90868585303681c27ea2ef9d36d4036181e337cfbd48730de0c346320b08dd089350b116d4c8542f3b506868cf318796bb713e5f80600ccbd96f9970
Configuration menu - View commit details
-
Copy full SHA for 455bb2e - Browse repository at this point
Copy the full SHA 455bb2eView commit details -
Merge bitcoin#20491: refactor: Drop noop gcc version checks
830ddf4 Drop noop gcc version checks (Hennadii Stepanov) Pull request description: Since bitcoin#20413 the minimum required GCC version is 7. ACKs for top commit: fanquake: ACK 830ddf4 Tree-SHA512: 36264661d6ced1683a0c907efba7c700502acaf8e9fd50d9066bc9c7b877b25165b0684c2d7fe74bd58e500a77d7702bdbdd53691c274f29e4abccd241c10964
Configuration menu - View commit details
-
Copy full SHA for d01973c - Browse repository at this point
Copy the full SHA d01973cView commit details -
Merge bitcoin#20512: doc: Add bash as an OpenBSD dependency
1d578c0 doc: Add bash as an OpenBSD dependency (Emil Engler) Pull request description: If we require Python for the test framework, we should also require bash. It is required for the linters and other scripts and does not comes in a default OpenBSD installation. ACKs for top commit: practicalswift: ACK 1d578c0 RiccardoMasutti: ACK 1d578c0 theStack: ACK 1d578c0 Tree-SHA512: ef14e801983093a99d4c28d134adbc589ca06e5437bf1ff34f8e593968c59793e9d99e8a48f577f847acdfc5185e193276526894b4c632c59d66d87939977910
Configuration menu - View commit details
-
Copy full SHA for def356e - Browse repository at this point
Copy the full SHA def356eView commit details -
Merge bitcoin#20587: [doc] Tidy up Tor doc (more stringent)
32045bb [doc] Tidy up Tor doc (more stringent) (wodry) Pull request description: This is a follow up to bitcoin#19638 that left two deprecated "hidden service/server" naming occurences. It also shall make the chapter titles regarding creation of onion services stringent and easy to read and distinguish. It removes the one and only reference to the testnet (here the testnet onion service port), as it is not explained that it references to the testnet and I do not know why it is mentioned there. It is only confusing. Also, as said, the testnet is not referenced at any other place in this document. ACKs for top commit: practicalswift: ACK 32045bb laanwj: Review ACK 32045bb RiccardoMasutti: ACK 32045bb Tree-SHA512: c623387b76d68845c0fa47f67a6f8ef70c9c560e3f8f8754e45a4f51e43198c2092be789588acd4ada607f42fbe62d51a4b1888d81b225df19b6557a081835c0
Configuration menu - View commit details
-
Copy full SHA for d186b37 - Browse repository at this point
Copy the full SHA d186b37View commit details -
Merge bitcoin#20588: Remove unused and confusing CTransaction constru…
…ctor fac39c1 wallet: document that tx in CreateTransaction is purely an out-param (MarcoFalke) faac315 Remove unused and confusing CTransaction constructor (MarcoFalke) Pull request description: The constructor is confusing and dangerous (as explained in the TODO), fix that by removing it. ACKs for top commit: laanwj: Code review ACK fac39c1 promag: Code review ACK fac39c1. theStack: Code review ACK fac39c1 Tree-SHA512: e0c8cffce8d8ee0166b8e1cbfe85ed0657611e26e2af0d69fde70eceaa5d75cbde3eb489af0428fe4fc431360b4c791fb1cc21b8dee7d4c7a4f17df00836229d
Configuration menu - View commit details
-
Copy full SHA for 41505e6 - Browse repository at this point
Copy the full SHA 41505e6View commit details -
Merge bitcoin#20611: Move TX_MAX_STANDARD_VERSION to policy
fade619 Move TX_MAX_STANDARD_VERSION to policy (MarcoFalke) Pull request description: `primitives` should only be used for the raw datastructures (parsing and format). It is not the right place to document relay policy. ACKs for top commit: laanwj: Code review ACK fade619 lontivero: Concept ACK bitcoin@fade619 Tree-SHA512: f809c4aecd14d7e9feaa7b50b9c0697232991eef36190cd960bcfb0ad6e20c71a4f6aab48c7747cf8a681eb14feda60c55b09a37f128673d519567224f29cd97
Configuration menu - View commit details
-
Copy full SHA for b193c63 - Browse repository at this point
Copy the full SHA b193c63View commit details -
Merge bitcoin#16551: test: Test that low difficulty chain fork is rej…
…ected Backport notice: - data have real blocks from testnet - due to big gap in blocks before checkpoints (half-year) for sack of this test is added one more checkpoint, otherwise blocks are not accepted due to non-mockable time for other chains except regtest - data for 2 blocks in split chain are generated locally for testnet -------------- 333317c test: Test that low difficulty chain fork is rejected (MarcoFalke) fa31dc1 test: Pass down correct chain name in tests (MarcoFalke) Pull request description: To prevent OOM, Bitcoin Core will reject chain forks at low difficulty by default. This is the only use-case of checkpoints, so add a test for it to make sure the feature works as expected. If it didn't work, checkpoints would have no use-case and we might as well remove them ACKs for top commit: Sjors: Thanks for adding the node 1 example. Code review ACK 333317c Tree-SHA512: 90dffa540d0904f3cffb61d2382b1a26f84fe9560b7013e4461546383add31a8757b350616a6d43217c59ef7b8b2a1b62bb3bab582c679cbb2c660a782ce7be1
Configuration menu - View commit details
-
Copy full SHA for eba325d - Browse repository at this point
Copy the full SHA eba325dView commit details -
Merge bitcoin#20451: lint: run mypy over contrib/devtools
1ef2138 lint: run mypy over contrib/devtools (fanquake) Pull request description: wumpus mentioned on IRC that we don't currently run `mypy` over the `contrib/devtools` directory, and that it would likely be worthwhile given bitcoin#20434. This just adds that dir to the linter, as well as some missing annotations to fix existing errors. Note that now we require Python 3.6 we can make use of variable annotations. master (patched to check contrib devtools): ```bash test/lint/lint-python.sh contrib/devtools/symbol-check.py:154: error: Incompatible types in assignment (expression has type "List[str]", variable has type "str") contrib/devtools/circular-dependencies.py:35: error: Need type annotation for 'deps' (hint: "deps: Dict[<type>, <type>] = ...") contrib/devtools/circular-dependencies.py:67: error: Need type annotation for 'closure' (hint: "closure: Dict[<type>, <type>] = ...") Found 4 errors in 3 files (checked 187 source files) ``` I haven't quite gone as far as to add annotations like ```python CHECKS: Dict[str, List[Tuple[str, Callable[[Any], bool]]]] = {... ``` to `symbol-check.py`. ACKs for top commit: laanwj: ACK 1ef2138 Tree-SHA512: a58c2ece588c640289dc1d35dad5b1b8732788272daa0965d6bf44ee8a7f7c8e8585f94d233ac41c84b9ffcfc97841a00fe2c9acba41f58fd164f01de4b6512b
Configuration menu - View commit details
-
Copy full SHA for 1995d2e - Browse repository at this point
Copy the full SHA 1995d2eView commit details -
Merge bitcoin#21112: ci: use Focal for macOS cross builds
ac24af4 ci: use Ubuntu Focal for macOS cross build (fanquake) Pull request description: I had assumed Cirrus was spinning up Docker containers to run the CI, however we are actaully running on the Cirrus machines themselves. See `DANGER_RUN_CI_ON_HOST` and in the logs: ```bash Running on host system without docker wrapper ``` So with this change we will actually be using Focal for the macOS cross build. Follow up to bitcoin#21036. This originally contained Windows changes, and an attempt to get Cirrus running without `DANGER_RUN_CI_ON_HOST`, however that seems non-trival, so Windows changes have been dropped from here for now. ACKs for top commit: MarcoFalke: cr ACK ac24af4 Tree-SHA512: 587ba5acf741bcefecf1bc262fa1177f565ebfa9de56125eca19ed3c7db7b9aabfb96866e9c140681b88cb7015a3ded2bc6b4b1b235543d6f6e9dfc6984d569f
Configuration menu - View commit details
-
Copy full SHA for c865338 - Browse repository at this point
Copy the full SHA c865338View commit details -
Merge bitcoin#20182: ci: Build with --enable-werror by default, and d…
…ocument exceptions 2f6fe4e ci: Build with --enable-werror by default, and document exceptions (Hennadii Stepanov) Pull request description: This PR prevents introducing of new compiler warnings in the master branch, e.g., bitcoin#19986, bitcoin#20162. ACKs for top commit: practicalswift: cr ACK 2f6fe4e: patch looks correct MarcoFalke: re-ACK 2f6fe4e 🏏 vasild: ACK 2f6fe4e Tree-SHA512: 23b5feb5bc472658c992d882ef61af23496f25adaa19f9c79bfaef5d2db273d44981aa93b1631a7d37cb58755283c1dacf3f2d68e501522d3fa8c965ab646d19
Configuration menu - View commit details
-
Copy full SHA for 14a67ee - Browse repository at this point
Copy the full SHA 14a67eeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0c38cc3 - Browse repository at this point
Copy the full SHA 0c38cc3View commit details -
Configuration menu - View commit details
-
Copy full SHA for a47635b - Browse repository at this point
Copy the full SHA a47635bView commit details -
Merge dashpay#5963: backport: bitcoin#16551, bitcoin#20288, bitcoin#2…
…0329, bitcoin#20451, bitcoin#20491, bitcoin#20512, bitcoin#20587, bitcoin#20588, bitcoin#20611, bitcoin#21112 c865338 Merge bitcoin#21112: ci: use Focal for macOS cross builds (MarcoFalke) 1995d2e Merge bitcoin#20451: lint: run mypy over contrib/devtools (Wladimir J. van der Laan) eba325d Merge bitcoin#16551: test: Test that low difficulty chain fork is rejected (MarcoFalke) b193c63 Merge bitcoin#20611: Move TX_MAX_STANDARD_VERSION to policy (Wladimir J. van der Laan) 41505e6 Merge bitcoin#20588: Remove unused and confusing CTransaction constructor (fanquake) d186b37 Merge bitcoin#20587: [doc] Tidy up Tor doc (more stringent) (Wladimir J. van der Laan) def356e Merge bitcoin#20512: doc: Add bash as an OpenBSD dependency (Jonas Schnelli) d01973c Merge bitcoin#20491: refactor: Drop noop gcc version checks (fanquake) 455bb2e Merge bitcoin#20329: docs/descriptors.md: Remove hardened marker in the path after xpub (MarcoFalke) 9eec4cc Merge bitcoin#20288: script, doc: contrib/seeds updates (Wladimir J. van der Laan) Pull request description: ## Issue being fixed or feature implemented Just regular backports from v19 and v22 ## What was done? - bitcoin#20288 - bitcoin#20329 - bitcoin#20491 - bitcoin#20512 - bitcoin#20587 - bitcoin#20588 - bitcoin#20611 - bitcoin#16551 - bitcoin#20451 - bitcoin#21112 ## How Has This Been Tested? Run unit/functional tests ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: PastaPastaPasta: utACK c865338 Tree-SHA512: 38e747a82091874f8cb87f35dc99aa8498e798f3818525c3fe99b2ed454fd8490d710c6eb7c3a0840105bb126503d301262d2f473a2502c66de8c32c8de94922
Configuration menu - View commit details
-
Copy full SHA for 49e480f - Browse repository at this point
Copy the full SHA 49e480fView commit details -
Merge dashpay#5958: backport: bitcoin#20182 ci: Build with --enable-w…
…error by default, and document exceptions a47635b feat: drop symbol check from CI to unify with bitcoin, keep it for qt5 only (Konstantin Akimov) 0c38cc3 fix: drop -static-libstc++ from depends/hosts/{linux,mingw32}.mk which is clang-only (Konstantin Akimov) 14a67ee Merge bitcoin#20182: ci: Build with --enable-werror by default, and document exceptions (MarcoFalke) Pull request description: ## Issue being fixed or feature implemented As discovered in dashpay#5957: Jobs tsan/ubsan fails with backport bitcoin#20182 it fails, because both tsan and ubsan jobs use clang but all other jobs use gcc. Somehow, after configure there are set incorrect options: ``` clang++-16 -std=c++17 -c -pipe -static-libstdc++ -O1 -Werror -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_LIBCPP_DEBUG=1 -I/builds/dashpay/dash/depends/x86_64-pc-linux-gnu/include/ conftest.cpp ``` `clang` doesn't support `-static-llibstdc++` which is supposed to be gcc-only, it cause this failure: ``` clang: error: argument unused during compilation: '-static-libstdc++' [-Werror,-Wunused-command-line-argument] ``` This failure make `autoconf` to think that clang doesn't support `-Werror` and fails with this error. So, you can't activate this flag. ## What was done? Backport bitcoin#20182 and related fixes to make it works ## How Has This Been Tested? CI now succeed with bitcoin#20182. It means, that -Werror activated for clang; also there are not warnings such as: ``` clang: error: argument unused during compilation: '-static-libstdc++' [-Werror,-Wunused-command-line-argument] ``` https://gitlab.com/dashpay/dash/-/jobs/6494328698 ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone Top commit has no ACKs. Tree-SHA512: f912824eaa1ec7513cda7278a3df9e067b0ab48a2d174b18654c8070aa6544bac33a52f494c1e35b4eab10392c1f26df4663e21d12a4dfff7c0a4a6a01ff9551
Configuration menu - View commit details
-
Copy full SHA for 0a22b3e - Browse repository at this point
Copy the full SHA 0a22b3eView commit details -
refactor: add cs_mapSocketToNode and cs_sendable_receivable_nodes to …
…minimize cs_vNode contention (and document an undocumented lock requirement)
Configuration menu - View commit details
-
Copy full SHA for 0b8fe48 - Browse repository at this point
Copy the full SHA 0b8fe48View commit details -
Merge dashpay#5961: feat: implement read write locks in threading and…
… use them for CActiveMasternodeManager::cs 0692826 refactor: make CActiveMasternodeManager::cs SharedMutex and private (pasta) 663774c feat: implement Read Write Locks in threading (pasta) Pull request description: ## Issue being fixed or feature implemented We have some caches or other information in codebase which are read from a lot; but rarely written to. We can use a RW lock here instead of a normal Mutex ## What was done? Implement a RW lock and use them ## How Has This Been Tested? Hasn't been much; looking for review atm. Maybe should deploy this on testnet for a bit and make sure it doesn't break. ## Breaking Changes ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: knst: utACK 0692826 Tree-SHA512: a9759d4904580eebb5ddf9e05d3d54cf4b0b0db971f09d2f4cb093fddc0a13094998ef2af301de581fd64dc1235df80bace7f701ab437c2ecfa663b4fc6e25ed
Configuration menu - View commit details
-
Copy full SHA for dc6f52a - Browse repository at this point
Copy the full SHA dc6f52aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 017d1b4 - Browse repository at this point
Copy the full SHA 017d1b4View commit details -
merge bitcoin#20653: Move addr relay comment in net to correct place
comment was moved to net.h in 678df63 (dashpay#4888) and removed entirely in 796353a (dashpay#5771). the comment is being restored back to where it is upstream, in CNode::RelayAddrsWithConn.
Configuration menu - View commit details
-
Copy full SHA for d0c596e - Browse repository at this point
Copy the full SHA d0c596eView commit details -
Configuration menu - View commit details
-
Copy full SHA for b76e029 - Browse repository at this point
Copy the full SHA b76e029View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7f57516 - Browse repository at this point
Copy the full SHA 7f57516View commit details -
merge bitcoin#19315: Allow outbound & block-relay-only connections in…
… functional tests
Configuration menu - View commit details
-
Copy full SHA for 1d4f10a - Browse repository at this point
Copy the full SHA 1d4f10aView commit details -
Configuration menu - View commit details
-
Copy full SHA for e109c00 - Browse repository at this point
Copy the full SHA e109c00View commit details -
partial bitcoin-core/gui#206: Display fRelayTxes and bip152_highbandw…
…idth_{to, from} in peer details excludes: - 142807a
Configuration menu - View commit details
-
Copy full SHA for 3e8ba24 - Browse repository at this point
Copy the full SHA 3e8ba24View commit details -
merge bitcoin-core/gui#226: Add "Last Block" and "Last Tx" rows to pe…
…er details area
Configuration menu - View commit details
-
Copy full SHA for 8b204c4 - Browse repository at this point
Copy the full SHA 8b204c4View commit details -
merge bitcoin#21015: Make all of net_processing (and some of net) use…
… std::chrono types
Configuration menu - View commit details
-
Copy full SHA for 62a7311 - Browse repository at this point
Copy the full SHA 62a7311View commit details -
merge bitcoin#19771: Replace enum CConnMan::NumConnections with enum …
…class ConnectionDirection
Configuration menu - View commit details
-
Copy full SHA for 5c4c7c5 - Browse repository at this point
Copy the full SHA 5c4c7c5View commit details -
Configuration menu - View commit details
-
Copy full SHA for ba1df91 - Browse repository at this point
Copy the full SHA ba1df91View commit details -
Configuration menu - View commit details
-
Copy full SHA for d34d2c4 - Browse repository at this point
Copy the full SHA d34d2c4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 39384ba - Browse repository at this point
Copy the full SHA 39384baView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6d27db5 - Browse repository at this point
Copy the full SHA 6d27db5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 03ab144 - Browse repository at this point
Copy the full SHA 03ab144View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4844e72 - Browse repository at this point
Copy the full SHA 4844e72View commit details -
net: replace RelayAddrsWithConn check with !IsBlockOnlyConn
Dash uses a lot more CNode::RelayAddrsWithConn checks than Bitcoin (esp. since a483122 (dashpay#4888)), so bitcoin#21186 will not adequately cover the removal of RelayAddrsWithConn usages. When possible to query with RelayAddrsWithPeer, that should be used, as that value is the most reliable, else we rely on the former mutual exclusivity of IsBlockOnlyConn and RelayAddrsWithConn to fill in the blanks where a more reliable query isn't available. Note: To prevent builds from breaking, a change has been made in InstantSend code despite it breaking functionality. A commit later will repair it by creating a way to access RelayAddrsWithPeer.
Configuration menu - View commit details
-
Copy full SHA for 26c39f5 - Browse repository at this point
Copy the full SHA 26c39f5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5478001 - Browse repository at this point
Copy the full SHA 5478001View commit details -
net: introduce CanRelayAddrs as RelayAddrsWithConn substitute
Since bitcoin#21186, mutual exclusivity is not a given (i.e. RelayAddrsWithConn != !IsBlockOnlyConn), we should use RelayPeersWithConn for a definitive answer and since relying on a no-longer-true property breaks InstantSend, let's fetch the right answer instead.
Configuration menu - View commit details
-
Copy full SHA for 2e55327 - Browse repository at this point
Copy the full SHA 2e55327View commit details -
Configuration menu - View commit details
-
Copy full SHA for e89c555 - Browse repository at this point
Copy the full SHA e89c555View commit details -
Merge dashpay#5968: docs: add v20.0.4 release notes
7f57516 docs: add v20.0.4 release notes (pasta) Pull request description: ## Issue being fixed or feature implemented We didn't archive v20.0.4 release notes somehow in dashpay#5910 ## What was done? Archive 20.0.4 release notes ## How Has This Been Tested? ## Breaking Changes None ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ Top commit has no ACKs. Tree-SHA512: d703dedf1aad2afb5eb8af291f89e38fa2dfb4185ef9e25194c273bb9f04ae8075ea87318552b468b1a487b39b95cf1dee794d3d3c5b8a863dbfd6d458ee8e72
Configuration menu - View commit details
-
Copy full SHA for e1532db - Browse repository at this point
Copy the full SHA e1532dbView commit details -
guix: exclude debug symbols for apple from list of hash sums due to i…
…ts undeterminism
Configuration menu - View commit details
-
Copy full SHA for a29f826 - Browse repository at this point
Copy the full SHA a29f826View commit details -
Merge dashpay#5964: backport: merge bitcoin#19763, bitcoin#20653, bit…
…coin#20756, bitcoin#19315, bitcoin#20646, bitcoin#21015, bitcoin#19771, bitcoin#21425, bitcoin#21236, bitcoin#21198, bitcoin#21707, bitcoin#21785, bitcoin#21506, bitcoin#22107, partial bitcoin#21186, merge gui#226, partial gui#206 (networking backports: part 2) e89c555 merge bitcoin#22107: rename GetSystemTimeInSeconds to GetTimeSeconds (Kittywhiskers Van Gogh) 2e55327 net: introduce CanRelayAddrs as RelayAddrsWithConn substitute (Kittywhiskers Van Gogh) 5478001 partial bitcoin#21186: Move addr data into net_processing (Kittywhiskers Van Gogh) 26c39f5 net: replace RelayAddrsWithConn check with !IsBlockOnlyConn (Kittywhiskers Van Gogh) 4844e72 merge bitcoin#21506: make NetPermissionFlags an enum class (Kittywhiskers Van Gogh) 03ab144 merge bitcoin#21785: Fix intermittent issue in p2p_addr_relay.py (Kittywhiskers Van Gogh) 6d27db5 merge bitcoin#21707: Extend functional tests for addr relay (Kittywhiskers Van Gogh) 39384ba merge bitcoin#21198: Address outstanding review comments from PR20721 (Kittywhiskers Van Gogh) d34d2c4 merge bitcoin#21236: Extract addr send functionality into MaybeSendAddr() (Kittywhiskers Van Gogh) ba1df91 merge bitcoin#21425: Pass PeerManagerImpl members only once (Kittywhiskers Van Gogh) 5c4c7c5 merge bitcoin#19771: Replace enum CConnMan::NumConnections with enum class ConnectionDirection (Kittywhiskers Van Gogh) 62a7311 merge bitcoin#21015: Make all of net_processing (and some of net) use std::chrono types (Kittywhiskers Van Gogh) 8b204c4 merge bitcoin-core/gui#226: Add "Last Block" and "Last Tx" rows to peer details area (Kittywhiskers Van Gogh) 3e8ba24 partial bitcoin-core/gui#206: Display fRelayTxes and bip152_highbandwidth_{to, from} in peer details (Kittywhiskers Van Gogh) e109c00 merge bitcoin#20646: refer to BIPs 339/155 in feature negotiation (Kittywhiskers Van Gogh) 1d4f10a merge bitcoin#19315: Allow outbound & block-relay-only connections in functional tests (Kittywhiskers Van Gogh) b76e029 merge bitcoin#20756: Add missing field (permissions) to the getpeerinfo help (Kittywhiskers Van Gogh) d0c596e merge bitcoin#20653: Move addr relay comment in net to correct place (Kittywhiskers Van Gogh) 017d1b4 merge bitcoin#19763: don't relay to the address' originator (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * [bitcoin#19763](bitcoin#19763) doesn't play nice on its own, `p2p_addr_relay.py` fails because of `assert_equal(total_ipv4_received, num_ipv4_addrs * ipv4_branching_factor)` where `not(0 == 20)`. It only works with [bitcoin#21707](bitcoin#21707). * In the GUI/Qt wallet, the peer information tab in the debug window has three fields added to them, "Wants Tx Relay", "Last Block" and "Last Tx". * The RPC help text for `getpeerinfo` now includes help text for the `permissions` return value and a debug RPC called `addconnection` has been introduced. ## Breaking Changes None observed. ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK e89c555 Tree-SHA512: 2be14351c22852b1318ded496fea60536db40659ab14e71bde02082935120bfb9df275790a4cb3170f54bcb4b2fb4f44096dd0e7cc703a705127ee294be39894
Configuration menu - View commit details
-
Copy full SHA for c0c6a90 - Browse repository at this point
Copy the full SHA c0c6a90View commit details -
Merge dashpay#5956: refactor: add cs_mapSocketToNode and cs_sendable_…
…receivable_nodes to minimize cs_vNode contention (and document an undocumented lock requirement) 0b8fe48 refactor: add cs_mapSocketToNode and cs_sendable_receivable_nodes to minimize cs_vNode contention (and document an undocumented lock requirement) (pasta) Pull request description: ## Issue being fixed or feature implemented Reduce locking contention on cs_vNode ## What was done? added new mutex ## How Has This Been Tested? Building running locally on testnet ## Breaking Changes None ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone Top commit has no ACKs. Tree-SHA512: b7a3aa8078cf7f2b5f9a833a345e405351a927fa517993d77cefa77c9d109c5d92e06b6d3f91093b0fa4d91c4a464f19ce4eb457e486f9532ce890f02b9b99e1
Configuration menu - View commit details
-
Copy full SHA for fbcef10 - Browse repository at this point
Copy the full SHA fbcef10View commit details -
Merge dashpay#5970: guix: exclude debug symbols for apple from list o…
…f hashes due to its non-determinism a29f826 guix: exclude debug symbols for apple from list of hash sums due to its undeterminism (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented Debug symbols for apples are non-deterministic. Due to that all list of hash sums differ between build. It causes to impossible to merge all GPG signatures to one file *.asc, because different files are signed. For example these hash lists: https://github.com/dashpay/guix.sigs/blob/master/20.1.0/knst/all.SHA256SUMS#L6 and https://github.com/dashpay/guix.sigs/blob/master/20.1.0/thephez/all.SHA256SUMS#L6 are different: ``` ac87fd17eb19edcaa83b2cbf02e6d74ec12b1eaab50fc73789413bb04f1e04b5 dashcore-20.1.0-arm64-apple-darwin-debug.tar.gz e16eaa02e24cdf643b58831c96bf1494c02602651e977994c8317f752b4c3ae3 dashcore-20.1.0-arm64-apple-darwin-debug.tar.gz ``` ## What was done? It excludes the line with hash of apples's debug artefact from the final list. ## How Has This Been Tested? Run guix build and guix attest locally for 2 targets. There's output: ``` $ cat ~/projects/guix.sigs/20.1.0-317-ga29f82670b96/knst/noncodesigned.SHA256SUMS f20cee2e348a850d39f79a6f06ce8019aca577bf5da0e81a3eb1d06013c0d3d9 dashcore-20.1.0-317-ga29f82670b96.tar.gz e01c18b817793a7d71173c9b2d84b32d7bdc27e67fbd2ac35ad85457bed5b5c3 dashcore-20.1.0-317-ga29f82670b96-x86_64-apple-darwin-unsigned.dmg 0987f99859a4a7c5c1676a754f022f97dfe1dd8fdd8a35170e3144f43d317270 dashcore-20.1.0-317-ga29f82670b96-x86_64-apple-darwin-unsigned.tar.gz 2afdffd9e5b959dd1f54baadf2e8c7159147050ea032074b6d606945621e9a28 dashcore-20.1.0-317-ga29f82670b96-x86_64-apple-darwin.tar.gz 2f3af85fddb12cb6ff6f9c370b9bbb7b4893ed90748cefbb55fc4ce4d22cb3e9 dashcore-20.1.0-317-ga29f82670b96-x86_64-linux-gnu-debug.tar.gz 19daa1c8310d3097bf25713a551f2bcd59eccfa882b3b413db36591d6ec7c204 dashcore-20.1.0-317-ga29f82670b96-x86_64-linux-gnu.tar.gz ``` linux's debug is still here, apple's debug is not here as expected ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: PastaPastaPasta: utACK a29f826 Tree-SHA512: d3b85ffea440b1b1d13b19373a9928e2881120747363844d4a9293d19afd986b98f096f3cdeee46acc93ca213200be44cadd867c3c77b9be55b7b81ecfcc156d
Configuration menu - View commit details
-
Copy full SHA for 43d0b3c - Browse repository at this point
Copy the full SHA 43d0b3cView commit details -
Merge dashpay#5953: fix: resolve a few very unlikely lifetime / undef…
…ined behavior issues 6f2b350 fix: don't move out of pendingContributionVerifications; use a ref and then clear (pasta) 7f36f12 fix: fix potential mutex lifetime issue were we are returning a reference, and then releasing the mutex (pasta) Pull request description: ## Issue being fixed or feature implemented See individual commits ## What was done? Fix potential lifetime issue and potential undefined behavior ## How Has This Been Tested? Compiling ## Breaking Changes None ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ Top commit has no ACKs. Tree-SHA512: f76d88c1fe3c19a92bdf451f147520e29f5edf84342dfb0b6ea9bde901a3f826c09b5aa2334d8f6fa687aaae7d0c109f36779883c670915d55b69af3ea8affd4
Configuration menu - View commit details
-
Copy full SHA for 27c0813 - Browse repository at this point
Copy the full SHA 27c0813View commit details
Commits on Apr 5, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 250856d - Browse repository at this point
Copy the full SHA 250856dView commit details
Commits on Apr 9, 2024
-
Merge dashpay#5972: chore: merge master 20.1.1 back into develop
b96b202 chore: bump version to 20.1.1 (pasta) 83cac77 docs: add v20.1.1 release notes (pasta) e58c7c4 Merge dashpay#5970: guix: exclude debug symbols for apple from list of hashes due to its non-determinism (pasta) 2bde1dd Merge dashpay#5927: fix: check if message can be handled before attempting to deserialize (pasta) 1637fa5 Merge dashpay#5968: docs: add v20.0.4 release notes (pasta) fd46c4c Merge dashpay#5962: fix: deadlock over cs_main and contributionsCacheCs in dkssessionmgr (pasta) Pull request description: Merge master into develop Top commit has no ACKs. Tree-SHA512: e65ffefcb7d0e92367ff322cab533f8505f0e9d00ab136bccb1dbf86ad64d6b710b5c9f9943594c544827d2eb69f5d0ba185962a2ac0b16c6b776a94f44cfb42
Configuration menu - View commit details
-
Copy full SHA for ce992f7 - Browse repository at this point
Copy the full SHA ce992f7View commit details -
Merge bitcoin-core/gui#13: Hide peer detail view if multiple are sele…
…cted 76277cc qt: Hide peer detail view if multiple are selected (João Barbosa) Pull request description: Currently if multiple peers are selected the peer detail view shows the first new selected peer. With this PR the peer detail view is hidden when multiple peers are selected. It is also a slight refactor to simplify and remove duplicate code. ACKs for top commit: jonasschnelli: Tested ACK 76277cc. hebasto: ACK 76277cc, tested on Linux Mint 20 (Qt 5.12.8). Tree-SHA512: 16c9cfd6ccb7077a9f31917a6cb3532e32d17d21f735e43bf4720fb0c8bb1bd539d42569c105df4b551f5dccb4acaeedb6bb2362620a9cb9267a602d9d065b9f
Configuration menu - View commit details
-
Copy full SHA for 648d6f0 - Browse repository at this point
Copy the full SHA 648d6f0View commit details -
Merge bitcoin#20690: Clean up logging of outbound connection type
6d1e85f Clean up logging of outbound connection type (Suhas Daftuar) Pull request description: We have a function that converts `ConnectionType` enums to strings, so use it. Suggested by ajtowns in bitcoin#19858 (comment) ACKs for top commit: amitiuttarwar: ACK 6d1e85f naumenkogs: ACK 6d1e85f Tree-SHA512: f5084d8b5257380696d9fde86a8873e190cd4553feb07fa49df39bbd9510bf5832d190a3bca1571c48370d16a17c7a34900857b21b27bec0777bfa710211d7bb
Configuration menu - View commit details
-
Copy full SHA for 41a1e10 - Browse repository at this point
Copy the full SHA 41a1e10View commit details -
Merge bitcoin#18772: rpc: calculate fees in getblock using BlockUndo …
…data 66d012a test: RPC: getblock fee calculations (Elliott Jin) bf7d6e3 RPC: getblock: tx fee calculation for verbosity 2 via Undo data (Elliott Jin) Pull request description: This change is progress towards bitcoin#18771 . It adapts the fee calculation part of bitcoin#16083 and addresses some feedback. The additional "verbosity level 3" features are planned for a future PR. **Original PR description:** > Using block undo data (like in bitcoin#14802) we can now show fee information for each transaction in a block without the need for additional -txindex and/or a ton of costly lookups. For a start we'll add transaction fee information to getblock verbosity level 2. This comes at a negligible speed penalty (<1%). ACKs for top commit: luke-jr: tACK 66d012a fjahr: tACK 66d012a MarcoFalke: review ACK 66d012a 🗜 Tree-SHA512: be1fe4b866946a8dc36427f7dc72a20e10860e320a28fa49bc85bd2a93a0d699768179be29fa52e18b2ed8505d3ec272e586753ef2239b4230e0aefd233acaa2
Configuration menu - View commit details
-
Copy full SHA for e36eacd - Browse repository at this point
Copy the full SHA e36eacdView commit details -
Configuration menu - View commit details
-
Copy full SHA for fae5696 - Browse repository at this point
Copy the full SHA fae5696View commit details -
Configuration menu - View commit details
-
Copy full SHA for 31040ab - Browse repository at this point
Copy the full SHA 31040abView commit details -
Configuration menu - View commit details
-
Copy full SHA for 00d4ad5 - Browse repository at this point
Copy the full SHA 00d4ad5View commit details -
fix: follow-up changes for bitcoin#17261 of usages ScriptPubKeyMan in…
…side WalletTool It should be get-or-create instead just-get
Configuration menu - View commit details
-
Copy full SHA for 7eb9b59 - Browse repository at this point
Copy the full SHA 7eb9b59View commit details -
Merge bitcoin#20365: wallettool: add parameter to create descriptors …
…wallet 173cc9b test: walettool create descriptors (Ivan Metlushko) 345e88e wallettool: add param to create descriptors wallet (Ivan Metlushko) 6d3af3a wallettool: pass in DatabaseOptions into MakeWallet (Ivan Metlushko) Pull request description: Rationale: expose and promote descriptor wallets in more places; make cli tool more consistent with `createwallet` rpc. Add `-descriptors` parameter which is off by default. When specified it will create a new descriptors wallet with sqlite backend, which is consistent with `createwallet` rpc. This PR is based on a suggestion from **ryanofsky** bitcoin#19137 (comment) Example: ``` $ ./src/bitcoin-wallet -wallet=fewty -descriptors create Topping up keypool... Wallet info =========== Name: fewty Format: sqlite Descriptors: yes Encrypted: no HD (hd seed available): yes Keypool Size: 6000 Transactions: 0 Address Book: 0 ``` ``` $ ./src/bitcoin-wallet -wallet=fewty create Topping up keypool... Wallet info =========== Name: fewty Format: bdb Descriptors: no Encrypted: no HD (hd seed available): yes Keypool Size: 2000 Transactions: 0 Address Book: 0 ``` ACKs for top commit: achow101: ACK 173cc9b ryanofsky: Code review ACK 173cc9b. This seems pretty nicely implemented now, with opportunities to clean up more and dedup later MarcoFalke: Concept ACK 173cc9b 🌠 Tree-SHA512: cc32ba336ff709de2707ee15f495b4617908e8700ede8401a58e894f44cda485c544d644023c9a6604d88a62db9d92152383ee2e8abf691688c25cf6e222c622
Configuration menu - View commit details
-
Copy full SHA for 25248f9 - Browse repository at this point
Copy the full SHA 25248f9View commit details -
Merge bitcoin#23349: util: Use FEATURE_LATEST for wallets created wit…
…h bitcoin-wallet 5b6b5ef util: Use FEATURE_LATEST for wallets created with bitcoin-wallet (Hennadii Stepanov) Pull request description: Since the 49d2374 commit was athored by **jonasschnelli** in 2016, the wallet version was bumped twice: in 2017 (bitcoin#11250) and in 2018 (bitcoin#12560). This PR bumps the version of wallets created with `bitcoin-wallet` offline tool. On master (04437ee) -- `"walletversion": 139900`: ``` $ src/bitcoin-wallet -signet -wallet=211025-test-master create Topping up keypool... Wallet info =========== Name: 211025-test-master Format: sqlite Descriptors: yes Encrypted: no HD (hd seed available): yes Keypool Size: 6000 Transactions: 0 Address Book: 0 $ src/bitcoin-cli -signet -rpcwallet=211025-test-master getwalletinfo { "walletname": "211025-test-master", "walletversion": 139900, "format": "sqlite", "balance": 0.00000000, "unconfirmed_balance": 0.00000000, "immature_balance": 0.00000000, "txcount": 0, "keypoolsize": 3000, "keypoolsize_hd_internal": 3000, "paytxfee": 0.00000000, "private_keys_enabled": true, "avoid_reuse": false, "scanning": false, "descriptors": true } ``` With this PR -- `"walletversion": 169900`: ``` $ src/bitcoin-wallet -signet -wallet=211025-test-pr create Topping up keypool... Wallet info =========== Name: 211025-test-pr Format: sqlite Descriptors: yes Encrypted: no HD (hd seed available): yes Keypool Size: 6000 Transactions: 0 Address Book: 0 $ src/bitcoin-cli -signet -rpcwallet=211025-test-pr getwalletinfo { "walletname": "211025-test-pr", "walletversion": 169900, "format": "sqlite", "balance": 0.00000000, "unconfirmed_balance": 0.00000000, "immature_balance": 0.00000000, "txcount": 0, "keypoolsize": 3000, "keypoolsize_hd_internal": 3000, "paytxfee": 0.00000000, "private_keys_enabled": true, "avoid_reuse": false, "scanning": false, "descriptors": true } ``` ACKs for top commit: lsilva01: Code Review ACK 5b6b5ef stratospher: ACK 5b6b5ef. rajarshimaitra: ACK bitcoin@5b6b5ef meshcollider: Code review ACK 5b6b5ef Tree-SHA512: 0221e76fa8f29037920d0a483c742bf270ecaead45f30230943b78775aaea63ac052e43fe712d15c2326e515dea2d2ac82de0924882598421c1874f2e6f442a6
Configuration menu - View commit details
-
Copy full SHA for 5758c48 - Browse repository at this point
Copy the full SHA 5758c48View commit details -
Merge bitcoin#19253: Tests: tidy up address.py and segwit_addr.py
825fcae [tests] Replace bytes literals with hex literals (John Newbery) 64eca45 [tests] Fix pep8 style violations in address.py (John Newbery) b230f8b [tests] Correct docstring for address.py (John Newbery) ea70e6a [tests] Tidy up imports in address.py (John Newbery) 7f639df [tests] Remove unused optional verify_checksum parameter (John Newbery) 011e784 [tests] Rename segwit encode and decode functions (John Newbery) e455713 [tests] Move bech32 unit tests to test framework (John Newbery) Pull request description: Lots of small fixes: - moving unit tests to test_framework implementation files - renaming functions to be clearer - removing multiple imports - removing unreadable byte literals from the code - fixing pep8 violations - correcting out-of-date docstring ACKs for top commit: jonatack: re-ACK 825fcae per `git range-diff a0a422c 7edcdcd 825fcae` and verified `wallet_address_types.py` and `wallet_basic.py --descriptors` (the failure on one travis job) are green locally. MarcoFalke: ACK 825fcae fanquake: ACK 825fcae - looks ok to me. Tree-SHA512: aea509c27c1bcb94bef11205b6a79836c39c62249672815efc9822f411bc2e2336ceb3d72b3b861c3f4054a08e16edb28c6edd3aa5eff72eec1d60ea6ca82dc4
Configuration menu - View commit details
-
Copy full SHA for 99dec80 - Browse repository at this point
Copy the full SHA 99dec80View commit details -
Merge bitcoin#19137: wallettool: Add dump and createfromdump commands
23cac24 tests: Test bitcoin-wallet dump and createfromdump (Andrew Chow) a88c320 wallettool: Add createfromdump command (Andrew Chow) e1e7a90 wallettool: Add dump command (Andrew Chow) Pull request description: Adds two commands to the `bitcoin-wallet` tool: `dump` and `createfromdump`. These commands will be useful for a wallet storage migration in the future. It is also generally useful to have a storage agnostic dump like this. These commands are similar to BDB's `db_dump` and `db_load` tools. This can also be useful for manual construction of a wallet file for tests. `dump` outputs every key-value pair from the wallet as comma separated hex. Each key-value pair is on its own line with the key and value in hex separated by a comma. This is output to the file specified by the new `-dumpfile` option. `createfromdump` takes a file produced by `dump` and creates a new wallet file with exactly the records specified in that file. A new option `-dumpfile` is added to the wallet tool. When used with `dump`, the records will be written to the specified file. When used with `createfromdump`, the file is read and the key-value pairs constructed from it. `createfromdump` requires `-dumpfile`. A simple round-trip test is added to the `tool_wallet.py`. This PR is based on bitcoin#19334, ACKs for top commit: Sjors: re-utACK 23cac24 MarcoFalke: re review ACK 23cac24 only change is rebase and removing useless shared_ptr wrapper 🎼 ryanofsky: Code review ACK 23cac24. Only changes since last review rebase and changing a pointer to a reference Tree-SHA512: 2d63cf62baca3d16495aa698dc02f7d889c81b41015e9c92c23c275bb4a690fc176d351c3fd7f310bd6b17f5a936cc9be694cbecd702af741b96c0f530e72fa2
Configuration menu - View commit details
-
Copy full SHA for 2978c45 - Browse repository at this point
Copy the full SHA 2978c45View commit details -
Merge bitcoin#20687: wallet: Add missing check for -descriptors walle…
…t tool option fae32f2 wallet: Add missing check for -descriptors wallet tool option (MarcoFalke) faf8f61 test: Add missing check for is_sqlite_compiled (MarcoFalke) fa7dde1 wallet: Pass ArgsManager into ExecuteWalletToolFunc instead of using global (MarcoFalke) Pull request description: Also, fix a test failure when compiled without sqlite ACKs for top commit: ryanofsky: Code review ACK fae32f2. Thanks for implementing the -descriptors check and dealing with the test failure! jonatack: Code review utACK fae32f2 Tree-SHA512: 3d7710694085822739a8316e4abc6db270799ca6ff6b0f9e5563ae240da65ae6a9cab7ba2647feae6ba540dac40b55b38ed41c8f6ed0bf02a3d1536284448927
Configuration menu - View commit details
-
Copy full SHA for 3f4b42c - Browse repository at this point
Copy the full SHA 3f4b42cView commit details -
chore: drop debug printing of private keys to console stdout
Debug logs should not be printed to stdout, stderr exists for it. Private keys should not be printed to console by activation very general macros name "ENABLE_DASH_DEBUG". This macros is used only for hdchain private keys, the location util/system.h is too general for it. Functional test "tool_wallet.py" is failed due to unexpected output for tsan. It seems as easier to remove this logs due to too many issues with it rather than address all of them.
Configuration menu - View commit details
-
Copy full SHA for 456e34c - Browse repository at this point
Copy the full SHA 456e34cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 31ffb78 - Browse repository at this point
Copy the full SHA 31ffb78View commit details -
Merge bitcoin#20813: scripted-diff: Bump copyright headers
fa0074e scripted-diff: Bump copyright headers (MarcoFalke) Pull request description: Needs to be done because no one has removed the years yet ACKs for top commit: practicalswift: ACK fa0074e Tree-SHA512: 210e92acd7d400b556cf8259c3ec9967797420cfd19f0c2a4fa54cb2b3d32ad9ae27e771269201e7d554c0f4cd73a8b1c1a42c9f65d8685ca4d52e5134b071a3
Configuration menu - View commit details
-
Copy full SHA for 4a3e3af - Browse repository at this point
Copy the full SHA 4a3e3afView commit details -
Configuration menu - View commit details
-
Copy full SHA for 83313a5 - Browse repository at this point
Copy the full SHA 83313a5View commit details -
Merge bitcoin-core/gui#171: Use layout manager for Create Wallet dialog
d4feb68 qt: Use layout manager for Create Wallet dialog (Hennadii Stepanov) Pull request description: On master (e75f91e) not using layout manager causes problems with resizing: ![Screenshot from 2021-01-01 13-03-13](https://user-images.githubusercontent.com/32963518/103437728-ce1d4580-4c33-11eb-8915-1e9482775653.png) ![Screenshot from 2021-01-01 13-03-26](https://user-images.githubusercontent.com/32963518/103437730-d6758080-4c33-11eb-9e0f-87d0dd487fcb.png) Also text labels are not resized properly on some window managers (bitcoin#20777), or if their lengths are changed (after translation). This PR introduces a standard layout manager for the "Create Wallet" dialog that fixes all layout issues (actually, the `createwalletdialog.ui` has been re-written from scratch): ![Screenshot from 2021-01-01 13-10-03](https://user-images.githubusercontent.com/32963518/103437822-d0cc6a80-4c34-11eb-84fd-fcb10a16d9ef.png) ![Screenshot from 2021-01-06 23-50-36](https://user-images.githubusercontent.com/32963518/103823090-0b416780-507a-11eb-89dd-3f48a358e168.png) Additional visual changes: - advanced options are grouped in `QGroupBox` (bitcoin-core/gui#96 (comment)) - enabled the [size grip](https://doc.qt.io/qt-5/qsizegrip.html#details) Fix bitcoin#20777 ACKs for top commit: jarolrod: ACK d4feb68 Sjors: re-tACK d4feb68 promag: Tested ACK d4feb68 on macos. Tree-SHA512: 4c055962e49f88624900b880b33a866976d224628784593428b712d2e94563d77ddefddea3397134d20e72f738a8cf9aa885c1272fd9ffc90213c104435fb9f4
Configuration menu - View commit details
-
Copy full SHA for 317777e - Browse repository at this point
Copy the full SHA 317777eView commit details -
Merge bitcoin-core/gui#72: util: Log static plugins meta data and use…
…d style 957895c util: Log static plugins meta data and style (Hennadii Stepanov) Pull request description: This PR is a follow-up of bitcoin#17826, and adds additional info about the imported static plugins and the used style to the `debug.log` I found useful for testing (e.g., with `QT_QPA_PLATFORM`, `QT_QPA_PLATFORMTHEME`, `QT_STYLE_OVERRIDE` variables) and debugging issues (e.g., bitcoin#19716 (comment)). The excerpt from the log: ``` 2020-11-15T18:41:45Z [main] Bitcoin Core version v0.20.99.0-f0b933f78 (release build) 2020-11-15T18:41:45Z [main] Qt 5.9.8 (static), plugin=xcb (static) 2020-11-15T18:41:45Z [main] Static plugins: 2020-11-15T18:41:45Z [main] QXcbIntegrationPlugin, version 329992 2020-11-15T18:41:45Z [main] Style: fusion / QFusionStyle ... ``` ACKs for top commit: jarolrod: ACK 957895c, Tested on macOS 11.1 jonasschnelli: utACK 957895c Tree-SHA512: 0e46db7560f380fbda8ce5e53faa5d419a456e90ca595ce46be8e3030c99d3a113586edad1988a97e9bf0279e944f975968ed1156817bc16723ed31c64850239
Configuration menu - View commit details
-
Copy full SHA for 368c65d - Browse repository at this point
Copy the full SHA 368c65dView commit details -
Merge bitcoin-core/gui#139: doc: Improve gui/src/qt README.md
5d1f260 Improve gui/src/qt README.md (Jarol Rodriguez) Pull request description: **Master/Before:** [Render of Master](https://github.com/bitcoin-core/gui/blob/master/src/qt/README.md) **PR/After:** [Render of PR](https://github.com/bitcoin-core/gui/blob/5d1f260713f9f1d29c0db68f2917dfe7368d4ba0/src/qt/README.md) **Changes:** The README.md found in `gui/src/qt` seems to not have gotten any love in a while. This PR fixes some grammatical errors, makes it easier to follow, and modernizes the logic of using Qt Creator. 1. Makes several sections more informative 2. Directories under `Files and Directories` now end with a forward slash denoting that they are a directory 3. Modernize the Qt Creator Logic for the current setup flow 4. Add UNIX Qt Creator Setup Instructions (Ubuntu & Debian) ACKs for top commit: RandyMcMillan: ACK 5d1f260 👍🏼 jonatack: ACK 5d1f260 Tree-SHA512: bd5cc24b95460f34a1efa489a6acc10d7632c84eabdcdc5729ef077d8303cf037ed664aae033af8883252433ea0999d8ec7d92e8b03d03a873d32b041a94f813
Configuration menu - View commit details
-
Copy full SHA for ba883c5 - Browse repository at this point
Copy the full SHA ba883c5View commit details -
Merge bitcoin#21531: test: remove qt byteswap compattests
9ac86bc test: remove qt byteswap compattests (fanquake) Pull request description: These were added as part of bitcoin#9366 when with fixing issues with Protobuf. Now that we no-longer use Protobuf, there's no reason to maintain a duplicate set of byteswap tests in the qt tests. Our other set of byteswap tests are here: https://github.com/bitcoin/bitcoin/blob/master/src/test/bswap_tests.cpp. ACKs for top commit: laanwj: Code review ACK 9ac86bc Tree-SHA512: 72ba131a5f8fbd9fdbbc4e1f95baa794496c960b12e0271700c632c6511b7e1b331e8db07a201838b4d56b2aeeb43d4de4e10265ea07ab14241307fa14d3342e
Configuration menu - View commit details
-
Copy full SHA for 65b80e7 - Browse repository at this point
Copy the full SHA 65b80e7View commit details -
Merge bitcoin-core/gui#115: Replace "Hide tray icon" option with posi…
…tive "Show tray icon" one 03edb52 qt: Remove redundant BitcoinGUI::setTrayIconVisible (Hennadii Stepanov) 17174f8 gui: Replace "Hide tray icon" option with positive "Show tray icon" one (Hennadii Stepanov) Pull request description: This change makes easier both (1) using this option, and (2) reasoning about the code. ACKs for top commit: jonasschnelli: utACK 03edb52 Tree-SHA512: 38e317492210d4fb13302dea383bd1f4f0ae1219d7ff2fdcb78607f15ac61a51969acaadb59b72c3f075b6356ef54368eb46fb49e6e1bd42db6d5804b97e232b
Configuration menu - View commit details
-
Copy full SHA for a2f190d - Browse repository at this point
Copy the full SHA a2f190dView commit details -
Configuration menu - View commit details
-
Copy full SHA for cf940e8 - Browse repository at this point
Copy the full SHA cf940e8View commit details -
init: load databases of governance dependencies before loading its own
The order in which they're loaded is dictated by the order in which they are initialized. This also lets us get rid of that fast-fail because governance db was always going to load before mncache db and replace it with an assert. Also, rename UpdateCachesAndClean to CheckAndRemove in CGovernanceManager as CheckAndRemove is already an existing alias to UpdateCachesAndClean and CheckAndRemove is associated with similar functionality in C{NetFulfilledRequest, Spork}Manager
Configuration menu - View commit details
-
Copy full SHA for ff825ac - Browse repository at this point
Copy the full SHA ff825acView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2a4fdbf - Browse repository at this point
Copy the full SHA 2a4fdbfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1d9b7fa - Browse repository at this point
Copy the full SHA 1d9b7faView commit details -
Configuration menu - View commit details
-
Copy full SHA for 91f4588 - Browse repository at this point
Copy the full SHA 91f4588View commit details -
Configuration menu - View commit details
-
Copy full SHA for 191b3de - Browse repository at this point
Copy the full SHA 191b3deView commit details
Commits on Apr 10, 2024
-
Merge dashpay#5965: backport: bitcoin#19137, bitcoin#19253, bitcoin#2…
…0365, bitcoin#20687, bitcoin#23349 - descriptor wallets part III 31ffb78 feat: add option -usehd to wallettool to let create non-hd wallets (Konstantin Akimov) 456e34c chore: drop debug printing of private keys to console stdout (Konstantin Akimov) 3f4b42c Merge bitcoin#20687: wallet: Add missing check for -descriptors wallet tool option (MarcoFalke) 2978c45 Merge bitcoin#19137: wallettool: Add dump and createfromdump commands (MarcoFalke) 99dec80 Merge bitcoin#19253: Tests: tidy up address.py and segwit_addr.py (MarcoFalke) 5758c48 Merge bitcoin#23349: util: Use FEATURE_LATEST for wallets created with bitcoin-wallet (Samuel Dobson) 25248f9 Merge bitcoin#20365: wallettool: add parameter to create descriptors wallet (MarcoFalke) 7eb9b59 fix: follow-up changes for bitcoin#17261 of usages ScriptPubKeyMan inside WalletTool (Konstantin Akimov) 00d4ad5 fix: assert if coinjoin-loader is nullptr during wallet initialization (Konstantin Akimov) 31040ab fix: isHDenabled is true only when chain is generated; before that's always false (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented Related issue: dashpay/dash-issues#59 ## What was done? - ToolWallet can correctly create descriptor wallet - Default version of wallet created by ToolWallet bumped to the latest version. - HD Chain is correctly initialized now (non-empty) if created with Tool Wallet - dropped debug output of private keys from HD Chain to stdout of console Backports: - bitcoin#20365 - bitcoin#23349 - bitcoin#19253 - bitcoin#19137 - bitcoin#20687 Beside new backports there are fixes for old backports bitcoin#17261. ## How Has This Been Tested? Run unit and functional tests ## Breaking Changes Behavior of WalletTool is changed: wallets have a newer version, they have HD chain inside. ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: PastaPastaPasta: utACK [31ffb78](dashpay@31ffb78) Tree-SHA512: 496cebdf965350caabe1a5f63e501c102b95db66937999ed902b407d5cca5e7c3e6cc4357b9a35c43707d7fc69572e0f978b889d5f150fc1158bba3f1d90b0cd
Configuration menu - View commit details
-
Copy full SHA for 0a62b9f - Browse repository at this point
Copy the full SHA 0a62b9fView commit details -
Merge bitcoin#21075: doc: Fix markdown formatting
e1604b3 doc: Replace tabs for spaces (Gunar C. Gessner) 98db48d doc: Fix markdown formatting (Gunar Gessner) Pull request description: Lines were being joined making it hard to read. ACKs for top commit: RandyMcMillan: ACK e1604b3 Tree-SHA512: fd5a7c5e9a1cbbf0fbb13b5c30b87853c84751da7f0fad08151bda07f1933872ab51cad29a0c0a70ced48e60df6d83bff3f84c2f77d00d22723fae9a8c3534fc
Configuration menu - View commit details
-
Copy full SHA for f254f77 - Browse repository at this point
Copy the full SHA f254f77View commit details -
Merge bitcoin#21126: ci: Properly bump to focal for win cross build
fa272df ci: Properly bump to focal for win cross build (MarcoFalke) Pull request description: Fixes bitcoin#21122 ACKs for top commit: fanquake: ACK fa272df - Looks good to me. I can see the wine version output, `wine-5.0 (Ubuntu 5.0-3ubuntu1)`, in the [log](https://cirrus-ci.com/task/5743559502462976), and `make check` is running. Tree-SHA512: cd37462afc5512e00cef5e9e7fd1bb5c43c600e833b30cdea2c1c443dc7b0e68f5f2cbaf9d7b655892059af0a226478211db1dc97c10fe4dcdfe666a784f3afc
Configuration menu - View commit details
-
Copy full SHA for 4abb768 - Browse repository at this point
Copy the full SHA 4abb768View commit details -
Merge bitcoin#21138: ci: Re-run wine tests once if they fail
faa8afe ci: Re-run wine tests once if they fail (MarcoFalke) Pull request description: Works around the intermittent wine issue: bitcoin#21122 (comment) ACKs for top commit: fanquake: ACK faa8afe - thanks for following up with this. Tree-SHA512: cb377a8e62c7fcf38fb5bdd6203af82c6c302c86f7fc219cb756eb7b6d3d4fe4ebf30a36ebba739199ff7814b26256a3701cf38dc5e681b18c2f249cdf6d852e
Configuration menu - View commit details
-
Copy full SHA for 88a45d4 - Browse repository at this point
Copy the full SHA 88a45d4View commit details -
Merge bitcoin#19522: build: fix building libconsensus with reduced ex…
…ports for Darwin targets de4238f build: consolidate reduced export checks (fanquake) 012bdec build: add building libconsensus to end-of-configure output (fanquake) 8f360e3 build: remove ax_gcc_func_attribute macro (fanquake) f054a08 build: remove AX_GCC_FUNC_ATTRIBUTE test for dllimport (fanquake) 7cd0a69 build: test for __declspec(dllexport) in configure (fanquake) 1624e17 build: remove duplicate visibility attribute detection (fanquake) Pull request description: Darwin targets do not have a `protected` visibility function attribute, see [LLVM explanation](https://github.com/llvm/llvm-project/blob/8e9a505139fbef7d2e6e9d0adfe1efc87326f9ef/clang/lib/Basic/Targets/OSTargets.h#L131). This means that the `AX_GCC_FUNC_ATTRIBUTE` check for `visibility` fails: ```bash configure:24513: checking for __attribute__((visibility)) configure:24537: g++ -std=c++11 -o conftest -g -O2 -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS -DMAC_OSX -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -Wl,-headerpad_max_install_names conftest.cpp >&5 conftest.cpp:35:56: warning: target does not support 'protected' visibility; using 'default' [-Wunsupported-visibility] int foo_pro( void ) __attribute__((visibility("protected"))); ^ 1 warning generated. configure:24537: $? = 0 configure:24550: result: no ``` This leads to `EXPORT_SYMBOL` being [defined to nothing](https://github.com/bitcoin/bitcoin/blob/f4de89edfa8be4501534fec0c662c650a4ce7ef2/src/script/bitcoinconsensus.h#L29), as `HAVE_FUNC_ATTRIBUTE_VISIBILITY` is not defined, and when building with reduced exports, you end up with a libbitcoinconsensus.dylib that doesn't export any `_bitcoinconsensus_*` symbols. ```bash ➜ git:(master) nm -C src/.libs/libbitcoinconsensus.dylib | rg _bitcoinconsensus_ ➜ git:(master) ``` We do have a [second check](https://github.com/bitcoin/bitcoin/blob/f4de89edfa8be4501534fec0c662c650a4ce7ef2/configure.ac#L882) for the `visibility` attribute, which works for Darwin as it's only testing for default visibility, however the result of this check isn't used at all. It was added in dashpay#4725, along with the `--enable-reduce-exports` option, however when libbitcoinconsensus was added in dashpay#5235, it used the results of the added `AX_GCC_FUNC_ATTRIBUTE` calls. This PR removes our usage of the AX_GCC_FUNC_ATTRIBUTE macro entirely, in favour of our own checks in configure. This meant adding a check for `dllexport`, which I've tested as working with both [GCC](https://gcc.gnu.org/onlinedocs/gcc/Microsoft-Windows-Function-Attributes.html) and [Clang](https://releases.llvm.org/10.0.0/tools/clang/docs/AttributeReference.html#dllexport) when building for Windows. I haven't added an equivalent check for `dllimport`, as we weren't actually using the result of that check, we're just testing that `MSC_VER` was defined before using. With these changes building a libbitcoinconsensus with reduced exports, when targeting Darwin, works as expected: ```bash ./autogen.sh ./configure --disable-tests --disable-bench --with-utils=no --with-daemon=no --with-gui=no --disable-wallet --with-libs=yes --enable-reduce-exports make -j8 ... nm -C src/.libs/libbitcoinconsensus.dylib | rg _bitcoinconsensus_ 000000000000a340 T _bitcoinconsensus_verify_script 00000000000097e0 T _bitcoinconsensus_verify_script_with_amount 000000000000a3c0 T _bitcoinconsensus_version ``` ```python >>> import ctypes >>> consensus = ctypes.CDLL("src/.libs/libbitcoinconsensus.dylib") >>> print(consensus.bitcoinconsensus_version()) 1 >>> exit() ``` TODO: Modify a CI job to compile with --enable-reduce-exports and check for symbols in shared lib? ACKs for top commit: laanwj: Code review ACK de4238f Tree-SHA512: d148f3c55d14dac6e9e5b718cc65bb557bcf6f663218d24bc9044b86281bd5dd3d931ebea79c336a58e8ed50d683218c0a9e75494f2267b91097665043e252ae
Configuration menu - View commit details
-
Copy full SHA for 318c726 - Browse repository at this point
Copy the full SHA 318c726View commit details -
Merge bitcoin#21221: [tools] Allow argument/parameter bin packing in …
…clang-format 876ac3f [tools] Allow argument/parameter bin packing in clang-format (John Newbery) Pull request description: clang-format documentation for BinPackArguments: If `false`, a function call’s arguments will either be all on the same line or will have one line each. ``` true: void f() { f(aaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa); } false: void f() { f(aaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa); } ``` https://clang.llvm.org/docs/ClangFormatStyleOptions.html#configurable-format-style-options There's no reason to forbid this format. Having multiple arguments or parameters per line can be just as readable as having one per line (and is certainly more readable than having extremely long lines). ACKs for top commit: laanwj: ACK 876ac3f MarcoFalke: review ACK 876ac3f vasild: ACK 876ac3f Tree-SHA512: 7c401b4551b458c83dd70883860788b4a60e08a5399171fef27a2f5fdc6b933f6454fe0d396c32d826e3ab537791329da3275ae9b5e9ad36630a6dc2c167e88f
Configuration menu - View commit details
-
Copy full SHA for 6bcc86a - Browse repository at this point
Copy the full SHA 6bcc86aView commit details -
Merge bitcoin#21354: build, doc: Drop no longer required packages fro…
…m macOS cross-compiling dependencies f7f3829 build, doc: Drop libbz2-dev from macOS cross-compiling dependencies (Hennadii Stepanov) d823936 build, doc: Drop libcap-dev from macOS cross-compiling dependencies (Hennadii Stepanov) Pull request description: The `libcap-dev` and `libbz2-dev` packages are no longer required when cross-compiling for macOS. ACKs for top commit: fanquake: ACK f7f3829 Tree-SHA512: 820cdc2724f3346c0942d4d4115fc7206f7bf02889d9fa6cbdbd1d9e3afa03a067c1c3fa64dff596aefdc74898178b7c7d64027a6501486e3b606f4760de04ae
Configuration menu - View commit details
-
Copy full SHA for a370253 - Browse repository at this point
Copy the full SHA a370253View commit details -
Merge bitcoin#21542: ci: Bump macOS VM image to the latest version
b8e7647 ci: Bump macOS VM image to the latest version (Hennadii Stepanov) Pull request description: On Cirrus CI bump macOS VM from Catalina to Big Sur. ACKs for top commit: fanquake: ACK b8e7647 - I'm always going to question bumping things for the sake of it/when there's no reasoning given. In this case, moving from building on macOS 10.x to 11.x shouldn't really lose us any coverage, and may turn up potential macOS quirks a bit earlier. Tree-SHA512: ab2daee194683ab0553328020fd2fcb918160f466cd380c542e1a9b44f5bea3664fb40b032f1b611ee0107b0efbe278230e067316e2373c3cb0470b205dd2f9d
Configuration menu - View commit details
-
Copy full SHA for e866b43 - Browse repository at this point
Copy the full SHA e866b43View commit details -
Merge bitcoin#20993: test: store subversion (user agent) as string in…
… msg_version de85af5 test: store subversion (user agent) as string in msg_version (Sebastian Falbesoner) Pull request description: It seems more natural to treat the "subversion" field (=user agent string, see [BIP 14](https://github.com/bitcoin/bips/blob/master/bip-0014.mediawiki#Proposal)) of a node as pure string rather than a bytestring within the test framework. This is also suggested with the naming prefix in `msg_version.strSubVer`: one probably wouldn't expect a field starting with "str" to be a bytestring that needs further decoding to be useful. This PR moves the encoding/decoding parts to the serialization/deserialization routines so that the user doesn't have to bother with that anymore. Note that currently, in the master branch the `msg_version.strSubVer` is never read (only in `msg_version.__repr__`); However, one issue that is solved by this PR came up while testing bitcoin#19509 (not merged yet): A decoding script for binary message capture files takes use of the functional test framework convert it into JSON format. Bytestrings will be convered to hexstrings, while pure strings will (surprise surprise) end up without modification in the file. So without this patch, we get: ``` $ jq . out.json | grep -m5 strSubVer "strSubVer": "2f5361746f7368693a32312e39392e302f" "strSubVer": "2f5361746f7368693a302e32302e312f" "strSubVer": "2f5361746f7368693a32312e39392e302f" "strSubVer": "2f5361746f7368693a302e32302e312f" "strSubVer": "2f5361746f7368693a32312e39392e302f" ``` After this patch: ``` $ jq . out2.json | grep -m5 strSubVer "strSubVer": "/Satoshi:21.99.0/" "strSubVer": "/Satoshi:0.20.1/" "strSubVer": "/Satoshi:21.99.0/" "strSubVer": "/Satoshi:0.20.1/" "strSubVer": "/Satoshi:21.99.0/" ``` ACKs for top commit: jnewbery: utACK de85af5 Tree-SHA512: ff23642705c858e8387a625537dfec82e6b8a15da6d99b8d12152560e52d243ba17431b602b26f60996d897e00e3f37dcf8dc8a303ffb1d544df29a5937080f9
Configuration menu - View commit details
-
Copy full SHA for 085120d - Browse repository at this point
Copy the full SHA 085120dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 43a94f0 - Browse repository at this point
Copy the full SHA 43a94f0View commit details -
Merge bitcoin#19809: log: Prefix log messages with function name and …
…source code location if -logsourcelocations is set b4511e2 log: Prefix log messages with function name if -logsourcelocations is set (practicalswift) Pull request description: Prefix log messages with function name if `-logfunctionnames` is set. Yes, exactly like `-logthreadnames` but for function names instead of thread names :) This is a small developer ergonomics improvement: I've found this to be a cheap/simple way to correlate log output and originating function. For me it beats the ordinary cycle of 1.) try to figure out a regexp matching the static part of the dynamic log message, 2.) `git grep -E 'Using .* MiB out of .* requested for signature cache'`, 3.) `mcedit filename.cpp` (`openemacs filename.cpp` works too!) and 4.) search for log message and scroll up to find the function name :) Without any logging parameters: ``` $ src/bitcoind -regtest 2020-08-25T03:29:04Z Using RdRand as an additional entropy source 2020-08-25T03:29:04Z Using 16 MiB out of 32/2 requested for signature cache, able to store 524288 elements 2020-08-25T03:29:04Z Using 16 MiB out of 32/2 requested for script execution cache, able to store 524288 elements 2020-08-25T03:29:04Z Loaded best chain: hashBestChain=0fff88f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e22ff height=0 date=2011-02-02T23:16:42Z progress=1.000000 2020-08-25T03:29:04Z block tree size = 1 2020-08-25T03:29:04Z nBestHeight = 0 2020-08-25T03:29:04Z Imported mempool transactions from disk: 0 succeeded, 0 failed, 0 expired, 0 already there, 0 waiting for initial broadcast 2020-08-25T03:29:04Z 0 addresses found from DNS seeds ``` With `-logthreadnames` and `-logfunctionnames`: ``` $ src/bitcoind -regtest -logthreadnames -logfunctionnames 2020-08-25T03:29:04Z [init] [ReportHardwareRand] Using RdRand as an additional entropy source 2020-08-25T03:29:04Z [init] [InitSignatureCache] Using 16 MiB out of 32/2 requested for signature cache, able to store 524288 elements 2020-08-25T03:29:04Z [init] [InitScriptExecutionCache] Using 16 MiB out of 32/2 requested for script execution cache, able to store 524288 elements 2020-08-25T03:29:04Z [init] [LoadChainTip] Loaded best chain: hashBestChain=0fff88f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e22ff height=0 date=2011-02-02T23:16:42Z progress=1.000000 2020-08-25T03:29:04Z [init] [AppInitMain] block tree size = 1 2020-08-25T03:29:04Z [init] [AppInitMain] nBestHeight = 0 2020-08-25T03:29:04Z [loadblk] [LoadMempool] Imported mempool transactions from disk: 0 succeeded, 0 failed, 0 expired, 0 already there, 0 waiting for initial broadcast 2020-08-25T03:29:04Z [dnsseed] [ThreadDNSAddressSeed] 0 addresses found from DNS seeds ``` ACKs for top commit: laanwj: Code review ACK b4511e2 MarcoFalke: review ACK b4511e2 🌃 Tree-SHA512: d100f5364630c323f31d275259864c597f7725e462d5f4bdedcc7033ea616d7fc0d16ef1b2af557e692f4deea73c6773ccfc681589e7bf6ba970b9ec169040c7
Configuration menu - View commit details
-
Copy full SHA for 4774e1e - Browse repository at this point
Copy the full SHA 4774e1eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 005a6b1 - Browse repository at this point
Copy the full SHA 005a6b1View commit details -
Merge bitcoin#21411: test: add logging, reduce blocks, move sync_all …
…in wallet_ groups c62f9bc test: use fewer blocks in wallet_groups and move sync call (Jon Atack) 3a16b5e test: add missing logging to wallet_groups.py (Jon Atack) Pull request description: - add logging (particularly useful as the tests are somewhat slow) - generate 101 blocks instead of 110 - move `sync_all` call into the loop, so fewer blocks are synced on each call, to hopefully see fewer CI timeouts as in https://bitcoinbuilds.org/index.php?ansilog=88eee99e-1727-44ed-b778-3b9c75c33928.log ``` L2742 File "/home/ubuntu/src/test/functional/wallet_groups.py", line 162, in run_test L2743 self.sync_all() test_framework.authproxy.JSONRPCException: 'syncwithvalidationinterfacequeue' RPC took longer than 960.000000 seconds. Consider using larger timeout for calls that take longer to return. (-344) ``` ACKs for top commit: MarcoFalke: cr ACK c62f9bc Tree-SHA512: 711deafcd589cb8196cb207ff882e0f2ab6b70828a6abad91f83f535974cc430a56b9e8a960fd233d31d610932a0d48b49ee681aae564d145a3040288ecda8f8
Configuration menu - View commit details
-
Copy full SHA for d9c31d6 - Browse repository at this point
Copy the full SHA d9c31d6View commit details -
Merge bitcoin#21338: test: add functional test for anchors.dat
581791c test: add functional test for anchors.dat (bruno) Pull request description: This PR adds a functional test for anchors.dat. It creates a node and adds 2 outbound block-relay-only connections and 5 inbound connections. When the node is down, anchors.dat should contain the 2 addresses from the outbound block-relay-only connections. ACKs for top commit: MarcoFalke: Concept ACK 581791c hebasto: ACK 581791c Tree-SHA512: 77038b09e36ee5ae473a26d6f566c0ed283af258c34df8486706a24f72b05abab621a293ac886d03849bc45bc28be7336137252225b25aff393baa6b5238688c
Configuration menu - View commit details
-
Copy full SHA for e10eec2 - Browse repository at this point
Copy the full SHA e10eec2View commit details -
Merge bitcoin#21390: test: Test improvements for UTXO set hash tests
4f2653a test: Use deterministic chain in utxo set hash test (Fabian Jahr) 4973c51 test: Remove wallet dependency of utxo set hash test (Fabian Jahr) 1a27af1 rpc: Improve gettxoutsetinfo help (Fabian Jahr) Pull request description: Follow-ups to bitcoin#19145: - Small improvement on the help text of RPC gettxoutsetinfo - Using deterministic blockchain in the test `functional/feature_utxo_set_hash.py` - Removing wallet dependency in the test `functional/feature_utxo_set_hash.py` Split out of bitcoin#19521. ACKs for top commit: MarcoFalke: review ACK 4f2653a 👲 Tree-SHA512: 92927b3aa22b6324eb4fc9d346755313dec44d973aa69a0ebf80a8569b5f3a7cf3539721ebdba183737534b9e29b3e33f412515890f0d0b819878032a3bba8f9
Configuration menu - View commit details
-
Copy full SHA for 6674ee8 - Browse repository at this point
Copy the full SHA 6674ee8View commit details -
test: remove exception for util::Ref which doesn't exist more
This PR is follow-up for dash#5055 and based on bitcoin#21366 which is DNM
Configuration menu - View commit details
-
Copy full SHA for ad94709 - Browse repository at this point
Copy the full SHA ad94709View commit details -
Merge bitcoin#21609: ci: increase CPU count of sanitizer job to incre…
…ase memory limit de3ae78 ci: increase CPU count of sanitizer job to increase memory limit (fanquake) Pull request description: According to the [docs](https://cirrus-ci.org/guide/linux/#linux-containers): > For each CPU you can't get more than 4G of memory. thus if we want this job to have 24GB of memory, we need to increase the CPU count to 6. It's currently [failing with](https://github.com/bitcoin/bitcoin/runs/2273962280): > Requested memory is too high! You can request at most 4G per CPU Top commit has no ACKs. Tree-SHA512: 0a4da5649d061425190a373859274c78ca5587cd2d6e27905ec548f124ed114a0133215cb2eff22ffc182f50c3a53df58e7c9832b44db6e37d7ea59ec96a4775
Configuration menu - View commit details
-
Copy full SHA for a224b80 - Browse repository at this point
Copy the full SHA a224b80View commit details -
Merge bitcoin#21445: cirrus: Use SSD cluster for speedup
fa21239 cirrus: Use SSD cluster for speedup (MarcoFalke) Pull request description: Haven't tested, but this might be faster: https://twitter.com/fedor/status/1354505744293502980 ACKs for top commit: fanquake: ACK fa21239 - going to merge this now given there is a speedup, and it's enough to fix the fuzz task the is continually timing out. Tree-SHA512: b24161ba2ed16fcf23ac6098100b04f7f6eb8936bb312a35fcd8e632568b877bfc09a1e522836fe298a2cd87a53a91e3b501a7f2e1c81cc0edb57c59aecffb0d
Configuration menu - View commit details
-
Copy full SHA for 233fb24 - Browse repository at this point
Copy the full SHA 233fb24View commit details -
Merge bitcoin#21606: fuzz: Extend psbt fuzz target a bit
faaf395 fuzz: Extend psbt fuzz target a bit (MarcoFalke) Pull request description: Previously it only merged the psbt with itself, now it tries to merge another. ACKs for top commit: practicalswift: Tested ACK faaf395 Tree-SHA512: e1b1d31a47d35e1767285bc2fda176c79cb0550d6d383fe467104272e61e1c83f6cbc0c7d6bbc0c3027729eec13ae1f289f8950117ee91e0fb3703e66d5e6918
Configuration menu - View commit details
-
Copy full SHA for bc6e3ed - Browse repository at this point
Copy the full SHA bc6e3edView commit details -
Merge bitcoin#17934: doc: Use CONFIG_SITE variable instead of --prefi…
…x option 223b1ba doc: Use CONFIG_SITE instead of --prefix (Hennadii Stepanov) Pull request description: The current examples of `--prefix=...` option usage to point `configure` script to appropriate `depends` directory is not [standard](https://www.gnu.org/prep/standards/html_node/Directory-Variables.html). This causes some [confusion](bitcoin#16691) and a bit of inconvenience. Consider a CentOS 7 32 bit system. Packages `libdb4-devel`, `libdb4-cxx-devel`, `miniupnpc-devel` and `zeromq-devel` are unavailable from repos. After recommended build with depends: ``` cd depends make cd .. ./autogen.sh ./configure --prefix=$PWD/depends/i686-pc-linux-gnu make ``` a user is unable to `make install` compiled binaries neither locally (to `~/.local`) nor system-wide (to `/usr/local`) as `--prefix` is set already. Meanwhile, the standard approach with using [`config.site`](https://www.gnu.org/software/automake/manual/html_node/config_002esite.html) files allows both possibilities: ``` cd depends make cd .. ./autogen.sh CONFIG_SITE=$PWD/depends/i686-pc-linux-gnu/share/config.site ./configure --prefix ~/.local make make install ``` or ``` CONFIG_SITE=$PWD/depends/i686-pc-linux-gnu/share/config.site ./configure make sudo make install # install to /usr/local ``` Moreover, this approach is used in [Gitian descriptors](https://github.com/bitcoin/bitcoin/tree/master/contrib/gitian-descriptors) already. ACKs for top commit: practicalswift: ACK 223b1ba: patch looks correct fanquake: ACK 223b1ba Tree-SHA512: 46d97924f0fc7e95ee4566737cf7c2ae805ca500e5c49af9aa99ecc3acede4b00329bc727a110aa1b62618dfbf5d1ca2234e736f16fbdf96d6ece5f821712f54
Configuration menu - View commit details
-
Copy full SHA for 7e023c3 - Browse repository at this point
Copy the full SHA 7e023c3View commit details -
Merge bitcoin-core/gui#260: Handle exceptions instead of crash
b8e5d0d qt: Handle exceptions in SendCoinsDialog::sendButtonClicked slot (Hennadii Stepanov) 1ac2bc7 qt: Handle exceptions in TransactionView::bumpFee slot (Hennadii Stepanov) bc00e13 qt: Handle exceptions in WalletModel::pollBalanceChanged slot (Hennadii Stepanov) eb6156b qt: Handle exceptions in BitcoinGUI::addWallet slot (Hennadii Stepanov) f7e260a qt: Add GUIUtil::ExceptionSafeConnect function (Hennadii Stepanov) 64a8755 qt: Add BitcoinApplication::handleNonFatalException function (Hennadii Stepanov) af7e365 qt: Make PACKAGE_BUGREPORT link clickable (Hennadii Stepanov) Pull request description: This PR is an alternative to bitcoin#18897, and is based on Russ' [idea](bitcoin#18897 (review)): > IMO it would be nice to have a followup PR that eliminated the one-line forwarding methods ... Related issues - dashpay#91 - bitcoin#18643 Qt docs: https://doc.qt.io/qt-5.12/exceptionsafety.html#exceptions-in-client-code With this PR the GUI handles the wallet-related exception, and: - display it to a user: ![Screenshot from 2021-04-01 02-55-59](https://user-images.githubusercontent.com/32963518/113226183-33ff8480-9298-11eb-8fe6-2168834ab09a.png) - prints a message to `stderr`: ``` ************************ EXCEPTION: 18NonFatalCheckError wallet/wallet.cpp:2677 (IsCurrentForAntiFeeSniping) Internal bug detected: '!chain.findBlock(block_hash, FoundBlock().time(block_time))' You may report this issue here: https://github.com/bitcoin/bitcoin/issues bitcoin in QPushButton->SendCoinsDialog ``` - writes a message to the `debug.log` - and, if the exception is a non-fatal error, leaves the main window running. ACKs for top commit: laanwj: Code review ACK b8e5d0d ryanofsky: Code review ACK b8e5d0d. This is great! I think more improvements are possible but implementation is very clean and I love how targeted each commit is. Changes since last review: adding more explanatory text, making links clickable, reorganizing. Tree-SHA512: a9f2a2ee8e64b993b0dbc454edcbc39c68c8852abb5dc1feb58f601c0e0e8014dca81c72733aa3fb07b619c6f49b823ed20c7d79cc92088a3abe040ed2149727
Configuration menu - View commit details
-
Copy full SHA for adea52a - Browse repository at this point
Copy the full SHA adea52aView commit details -
Merge bitcoin#21602: rpc: add additional ban time fields to listbanned
d3b0b08 doc: release notes for new listbanned fields (Jarol Rodriguez) 60290d3 test: increase listbanned unit test coverage (Jon Atack) 3e978d1 rpc: add time_remaining field to listbanned (Jarol Rodriguez) 5456b34 rpc: add ban_duration field to listbanned (Jarol Rodriguez) c95c616 doc: improve listbanned help (Jarol Rodriguez) dd3c8ea rpc: swap position of banned_until and ban_created fields (Jarol Rodriguez) Pull request description: This PR adds a `ban_duration` and `time_remaining` field to the `listbanned` RPC command. Thanks to jonatack, this PR also expands the `listbanned` test coverage to include these new fields It's useful to keep track of `ban_duration` as this is another data point on which to sort banned peers. I found this helpful in adding additional context columns to the GUI `bantablemodel` as part of a follow-up PR. As [suggested](bitcoin#21602 (comment)) by jonatack, `time_remaining` is another useful user-centric data point. Since a ban always expires after its created, the `ban_created` field is now placed before the `banned_until` field. This new ordering is more logical. This PR also improves the `help listbanned` output by providing additional context to the descriptions of the `address`, `ban_created`, and `banned_until` fields. **Master: listbanned** ``` [ { "address": "1.2.3.4/32", "banned_until": 1617691101, "ban_created": 1617604701 }, { "address": "135.181.41.129/32", "banned_until": 1649140716, "ban_created": 1617604716 } ] ``` **PR: listbanned** ``` [ { "address": "1.2.3.4/32", "ban_created": 1617775773, "banned_until": 1617862173, "ban_duration": 86400, "time_remaining": 86392 }, { "address": "3.114.211.172/32", "ban_created": 1617753165, "banned_until": 1618357965, "ban_duration": 604800, "time_remaining": 582184 } ] ``` ACKs for top commit: jonatack: re-ACK d3b0b08 hebasto: ACK d3b0b08, tested on Linux Mint 20.1 (x86_64). MarcoFalke: review ACK d3b0b08 🕙 Tree-SHA512: 5b83ed2483344e546d57e43adc8a1ed7a1fff292124b14c86ca3a1aa2aec8b0f7198212fabff2c5145e7f726ca04ae567fe667b141254c7519df290cf63774e5
Configuration menu - View commit details
-
Copy full SHA for 76a41eb - Browse repository at this point
Copy the full SHA 76a41ebView commit details -
Merge bitcoin#21676: test: Use mocktime to avoid intermittent failure…
… in rpc_tests fa40d6a test: Reset mocktime in the common setup (MarcoFalke) fa78590 test: Use mocktime to avoid intermittent failure (MarcoFalke) Pull request description: See bitcoin#21602 (comment) ACKs for top commit: jonatack: Code review ACK fa40d6a jarolrod: ACK fa40d6a Tree-SHA512: 4967e006f3d2c4eb92f03c9086a6abe3190ad54755d251c30d20422c574bb1a154c06f3d5bcb0d4deaa3c4abfd3864d743b71d84897edd358e829bb42233ad12
Configuration menu - View commit details
-
Copy full SHA for 21ad71c - Browse repository at this point
Copy the full SHA 21ad71cView commit details -
partial Merge bitcoin#20267: Disable and fix tests for when BDB is no…
…t compiled Backport notice: changes in feature_notification.py are missing due to bitcoin#18878 is not done yet 49797c3 tests: Disable bdb dump test when no bdb (Andrew Chow) 1194cf9 Fix wallet_send.py wallet setup to work with descriptors (Andrew Chow) fbaea7b Require legacy wallet for wallet_upgradewallet.py (Andrew Chow) b1b679e Explicitly mark legacy wallet tests as such (Andrew Chow) 09514e1 Setup wallets for interface_zmq.py (Andrew Chow) 4d03ef9 Use MiniWallet in rpc_net.py (Andrew Chow) 4de2382 Setup wallets for interface_bitcoin_cli.py (Andrew Chow) 7c71c62 Setup wallets with descriptors for feature_notifications (Andrew Chow) 1f1bef8 Have feature_filelock.py test both bdb and sqlite, depending on compiled (Andrew Chow) c77975a Disable upgrades tests that require BDB if BDB is not compiled (Andrew Chow) 1f20cac Disable wallet_descriptor.py bdb format check if BDB is not compiled (Andrew Chow) 3641597 tests: Don't make any wallets unless wallet is required (Andrew Chow) b9b88f5 Skip legacy wallet reliant tests if BDB is not compiled (Andrew Chow) 6f36242 tests: Set descriptors default based on compilation (Andrew Chow) Pull request description: This PR fixes tests for when BDB is not compiled. Tests which rely on or test legacy wallet behavior are disabled and skipped when BDB is not compiled. For the components of some tests that are for legacy wallet things, those parts of the tests are skipped. For the majority of tests, changes are made so that they can be run with either legacy wallets or descriptor wallets without materially effecting the test. Most tests only need the wallet for balance and transactions, so the type of wallet is not an important part of those tests. Additionally, some tests are wallet agnostic and modified to instead use the test framework's MiniWallet. ACKs for top commit: laanwj: ACK 49797c3 ryanofsky: Code review ACK 49797c3. Only change since last review is dropping last commit. Previous review w/ suggestions for future followup is bitcoin#20267 (review) Tree-SHA512: 69659f8a81fb437ecbca962f4082c12835282dbf1fba7d9952f727a49e01981d749af9b09feda1c8ca737516c7d7a08ef17e782795df3fa69892d5021b41c1ed
Configuration menu - View commit details
-
Copy full SHA for 06b2d85 - Browse repository at this point
Copy the full SHA 06b2d85View commit details -
fix: remove workarounds introduced due to missing bitcoin#20267 (bdb …
…is not compiled) This partially reverts commit da8e563. Also it adds missing changed from bitcoin#16404
Configuration menu - View commit details
-
Copy full SHA for ef7ce87 - Browse repository at this point
Copy the full SHA ef7ce87View commit details -
chore: move functional test wallet_multiwallet from category "slow 5 …
…minutes" to "fast test"
Configuration menu - View commit details
-
Copy full SHA for 5016294 - Browse repository at this point
Copy the full SHA 5016294View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0daf360 - Browse repository at this point
Copy the full SHA 0daf360View commit details
Commits on Apr 12, 2024
-
Configuration menu - View commit details
-
Copy full SHA for f567de0 - Browse repository at this point
Copy the full SHA f567de0View commit details -
Merge bitcoin#19136: wallet: add parent_desc to getaddressinfo
de6b389 tests: Test getaddressinfo parent_desc (Andrew Chow) e4ac869 rpc: Add parent descriptor to getaddressinfo output (Andrew Chow) bbe4a36 wallet: Add GetDescriptorString to DescriptorScriptPubKeyMan (Andrew Chow) 9be1437 descriptors: Add ToNormalizedString and tests (Andrew Chow) Pull request description: Adds `parent_desc` field to the `getaddressinfo` RPC to export a public descriptor. Using the given address, `getaddressinfo` will look up which `DescriptorScriptPubKeyMan` can be used to produce that address. It will then return the descriptor for that `DescriptorScriptPubKeyMan` in the `parent_desc` field. The descriptor will be in a normalized form where the xpub at the last hardened step is derived so that the descriptor can be imported to other wallets. Tests are added to check that the correct descriptor is being returned for the wallet's addresses and that these descriptors can be imported and used in other wallets. As part of this PR, a `ToNormalizedString` function is added to the descriptor classes. This really only has an effect on `BIP32PubkeyProvider`s that have hardened derivation steps. Tests are added to check that normalized descriptors are returned. ACKs for top commit: Sjors: utACK de6b389 S3RK: Tested ACK de6b389 jonatack: Tested ACK de6b389 modulo a few minor comments fjahr: Code review ACK de6b389 meshcollider: Tested ACK de6b389 Tree-SHA512: a633e4a39f2abbd95afd7488484cfa66fdd2651dac59fe59f2b80a0940a2a4a13acf889c534a6948903d701484a2ba1218e3081feafe0b9a720dccfa9e43ca2b
Configuration menu - View commit details
-
Copy full SHA for 8bacdbf - Browse repository at this point
Copy the full SHA 8bacdbfView commit details -
Merge bitcoin#21277: wallet: listdescriptors uses normalized descript…
…or form a69c3b3 wallet: listdescriptors uses normalized descriptor form (Ivan Metlushko) Pull request description: Rationale: show importable descriptors with `listdescriptors` RPC It uses bitcoin#19136 to derive xpub at the last hardened step. **Before**: ``` [ { "desc": "wpkh(tpubD6NzVbkrYhZ4YUQRJL49TWw1VR5v3QKUNYaGGMUfJUm19x5ZqQ2hEiPiYbAQvD2nHoPGQGPg3snLPM8sjmYpvx7XQhkmyfk8xhsUwKbXzyh/84'/1'/0'/0/*)#p4cn3erf", "timestamp": 1613982591, "active": true, "internal": false, "range": [ 0, 999 ], "next": 0 }, ... ] ``` **After**: ``` [ { "desc": "wpkh([d4ade89c/84'/1'/0']tpubDDUEYcVXy6Vh5meHvcXN3sAr4k3fWwLZGpAHbkAHL8EnkDxp4d99CjNhJHfM2fUJicANvAKnCZS6XaVAgwAeKYc1KesGCN5qbQ25qQHrRxM/0/*)#8wq8rcft", "timestamp": 1613982591, "active": true, "internal": false, "range": [ 0, 999 ], "next": 0 }, ... ] ``` ACKs for top commit: achow101: ACK a69c3b3 Tree-SHA512: 4f92e726cb8245aa0b520729cfd272945f0c66830f0555544e0618883aca516318543fa6ab1862058c64b4e4ed54ad1da953e032f4846eef7454122031c1b005
Configuration menu - View commit details
-
Copy full SHA for 6ee2c7c - Browse repository at this point
Copy the full SHA 6ee2c7cView commit details -
Merge bitcoin#21063: wallet, rpc: update listdescriptors response format
2e5f7de wallet, rpc: update listdescriptors response format (Ivan Metlushko) Pull request description: Update `listdescriptors` response format according to [RPC interface guidelines](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#rpc-interface-guidelines). This is a follow up for bitcoin#20226 **Before:** ``` Result: [ (json array) Response is an array of descriptor objects { (json object) "desc" : "str", (string) Descriptor string representation "timestamp" : n, (numeric) The creation time of the descriptor "active" : true|false, (boolean) Activeness flag "internal" : true|false, (boolean, optional) Whether this is internal or external descriptor; defined only for active descriptors "range" : [ (json array, optional) Defined only for ranged descriptors n, (numeric) Range start inclusive n (numeric) Range end inclusive ], "next" : n (numeric, optional) The next index to generate addresses from; defined only for ranged descriptors }, ... ] ``` **After:** ``` Result: { (json object) "wallet_name" : "str", (string) Name of wallet this operation was performed on "descriptors" : [ (json array) Array of descriptor objects { (json object) "desc" : "str", (string) Descriptor string representation "timestamp" : n, (numeric) The creation time of the descriptor "active" : true|false, (boolean) Activeness flag "internal" : true|false, (boolean, optional) Whether this is internal or external descriptor; defined only for active descriptors "range" : [ (json array, optional) Defined only for ranged descriptors n, (numeric) Range start inclusive n (numeric) Range end inclusive ], "next" : n (numeric, optional) The next index to generate addresses from; defined only for ranged descriptors }, ... ] } ``` ACKs for top commit: achow101: re-ACK 2e5f7de meshcollider: utACK 2e5f7de jonatack: re-ACK 2e5f7de Tree-SHA512: 49bf73e46e2a61003ce594a4bfc506eb9592ccb799c2909c43a1a527490a4b4009f78dc09f3d47b4e945d3d7bb3cd2632cf48c5ace5feed5066158cc010dddc1
Configuration menu - View commit details
-
Copy full SHA for 99a8b60 - Browse repository at this point
Copy the full SHA 99a8b60View commit details -
Merge bitcoin#21302: wallet: createwallet examples for descriptor wal…
…lets 5039e0e test: HelpExampleCliNamed and HelpExampleRpcNamed (Ivan Metlushko) 591735e rpc: Add HelpExampleCliNamed and use it for `createwallet` doc (Wladimir J. van der Laan) 5d5a90e rpc: Add HelpExampleRpcNamed (Ivan Metlushko) Pull request description: Rationale: make descriptor wallets more visible and just a bit easier to setup `bitcoin-cli help createwallet` **Before**: ``` Examples: > bitcoin-cli createwallet "testwallet" > curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "createwallet", "params": ["testwallet"]}' -H 'content-type: text/plain;' http://127.0.0.1:8332/ ``` **After** ``` Examples: > bitcoin-cli createwallet "testwallet" > curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "createwallet", "params": ["testwallet"]}' -H 'content-type: text/plain;' http://127.0.0.1:8332/ > bitcoin-cli createwallet "descriptors" false false "" true true true > curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "createwallet", "params": ["descriptors", false, false, "", true, true, true]}' -H 'content-type: text/plain;' http://127.0.0.1:8332/ ``` ACKs for top commit: laanwj: Tested ACK 5039e0e Tree-SHA512: d37210e6ce639addee881377092d8f6fb2a537a60a259c561899e24cf68a0254d7ff45a213573c938f626677e46770cd21113aae5974f26c66b9a2e137699c14
Configuration menu - View commit details
-
Copy full SHA for 655146d - Browse repository at this point
Copy the full SHA 655146dView commit details -
fix: follow-up fixes for functional tests used protx
Since bitcoin#20267 changes default wallet in functional tests from legacy wallets to descriptor wallets, we need to enforce --legacy-wallets for functional tests that used protx which doesn't work yet for descriptor wallets
Configuration menu - View commit details
-
Copy full SHA for b20f812 - Browse repository at this point
Copy the full SHA b20f812View commit details -
fix: feature_backwards compatible works now with as expected if no bd…
…b compiled It is follow-up fixes for bitcoin#20267
Configuration menu - View commit details
-
Copy full SHA for ceefab5 - Browse repository at this point
Copy the full SHA ceefab5View commit details -
Merge dashpay#5966: refactor: rearrange database initialization, trim…
… globals use in net and net processing, move CheckSpecialTx into CSpecialTxProcessor 191b3de refactor: move CheckSpecialTx into CSpecialTxProcessor (Kittywhiskers Van Gogh) 91f4588 refactor: const the pointer of type `const CActiveMasternodeManager` (Kittywhiskers Van Gogh) 1d9b7fa refactor: trim globals use in net processing functions (Kittywhiskers Van Gogh) 2a4fdbf refactor: trim globals use in net threads and functions (Kittywhiskers Van Gogh) ff825ac init: load databases of governance dependencies before loading its own (Kittywhiskers Van Gogh) cf940e8 init: decouple CMasternodeMetaMan construction from initialization (Kittywhiskers Van Gogh) fae5696 init: move CActiveMasternodeManager construction before PeerManager (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * Dependency for dashpay#5980 * `CActiveMasternodeManager` construction is moved upwards (_before_ `PeerManager` construction) to avoid having to pass it as a `std::unique_ptr` const-ref. Shouldn't have any effect since _initialization_ is done in `ThreadImport`. * `CConnman::SetNetworkActive` will require a pointer to `CMasternodeSync` in order to call `CMasternodeSync::Reset()`. As it is no longer available as a global, it will need to be manually called through for the effect to happen as the `CConnman` constructor will simply pass a `nullptr` when calling `SetNetworkActive`, bypassing the `Reset()` call. `CMasternodeSync` is appropriately passed through in RPC (`setnetworkactive`) and interfaces. * `CheckSpecialTx` was moved into `CSpecialTxProcessor` to avoid having to expose `CDeterministicMNManager` to `MemPoolAccept` (though it has been exposed to `CChainstateHelper` through a helper, `CChainState::ChainHelper()` that was introduced in this PR). * As a drawback, some RPC functions that otherwise only needed access to `CDeterministicMNManager`, will also be accessing `CChainstateHelper`. ## Concerns * ~~Some tests seem to sporadically fail (fail as part of a suite but succeed when run individually, no changes in this PR should worsen resource contention) but attempting to reproduce them reliably hasn't succeeded so far.~~ It appears the sporadic failure is shown in `p2p_node_network_limited.py` during TSan runs (see [failed run](https://gitlab.com/dashpay/dash/-/jobs/6529052189) for commit f95ffa7 that then succeeded in a [second attempt](https://gitlab.com/dashpay/dash/-/jobs/6530402585) versus a similar [failed run](https://gitlab.com/dashpay/dash/-/jobs/6546952668) for e210cb7 that also succeeded on [second try](https://gitlab.com/dashpay/dash/-/jobs/6549470339)). Similar behaviour has not been observed on `develop` (as of this writing is 27c0813). ## Breaking changes `CMasternodeSync::Reset()` will not be called on every `CConnman` entity instantiated. Behaviour changes as a result of that are not substantiated. Protocol, networking or interface changes are not expected, changes are primarily refactoring. ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK 191b3de Tree-SHA512: 73a79818b0a79e3f26f079019c078ec8f81b2dae17638f695243b87fa76e9bed906a33ad7dd4e600f699100c5e994628cbb596e78a7802fa630c91f4d69cce4c
Configuration menu - View commit details
-
Copy full SHA for 5fdaa45 - Browse repository at this point
Copy the full SHA 5fdaa45View commit details -
Merge dashpay#5973: backport: bitcoin#18772, bitcoin#20690, bitcoin#2…
…0789, bitcoin#20813, bitcoin#21531, bitcoin-core/gui#13, dashpay#72, 115, dashpay#139, dashpay#171 a2f190d Merge bitcoin-core/gui#115: Replace "Hide tray icon" option with positive "Show tray icon" one (Jonas Schnelli) 65b80e7 Merge bitcoin#21531: test: remove qt byteswap compattests (MarcoFalke) ba883c5 Merge bitcoin-core/gui#139: doc: Improve gui/src/qt README.md (MarcoFalke) 368c65d Merge bitcoin-core/gui#72: util: Log static plugins meta data and used style (Jonas Schnelli) 317777e Merge bitcoin-core/gui#171: Use layout manager for Create Wallet dialog (MarcoFalke) 83313a5 Merge bitcoin#20789: Rework strong and weak net enum fuzzing (MarcoFalke) 4a3e3af Merge bitcoin#20813: scripted-diff: Bump copyright headers (MarcoFalke) e36eacd Merge bitcoin#18772: rpc: calculate fees in getblock using BlockUndo data (MarcoFalke) 41a1e10 Merge bitcoin#20690: Clean up logging of outbound connection type (MarcoFalke) 648d6f0 Merge bitcoin-core/gui#13: Hide peer detail view if multiple are selected (Jonas Schnelli) Pull request description: ## Issue being fixed or feature implemented Regular backports from bitcoin v22 ## What was done? - bitcoin-core/gui#13 - bitcoin-core/gui#115 - bitcoin#20690 - bitcoin#18772 - bitcoin#20813 - bitcoin#20789 - bitcoin-core/gui#171 - bitcoin-core/gui#72 - bitcoin-core/gui#139 - bitcoin#21531 ## How Has This Been Tested? Run unit/functional tests ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: PastaPastaPasta: utACK a2f190d Tree-SHA512: 29421e7ca38583c47f49c2605775f34b64ae2fb6aeb45ac42941fbc78598fc26e7f7a248b40fcc2c9fd21154b0a6f2aed64287a8b7cca43de1b99ae3dccd990f
Configuration menu - View commit details
-
Copy full SHA for 938fd23 - Browse repository at this point
Copy the full SHA 938fd23View commit details -
Merge dashpay#5974: backport: bitcoin#19522, bitcoin#19809, bitcoin#2…
…0993, bitcoin#21075, bitcoin#21126, bitcoin#21138, bitcoin#21221, bitcoin#21354, bitcoin#21542 005a6b1 fix: format string in llmq/commitment - mismatched arguments (Konstantin Akimov) 4774e1e Merge bitcoin#19809: log: Prefix log messages with function name and source code location if -logsourcelocations is set (Wladimir J. van der Laan) 43a94f0 fix: adjust functional tests due to dash's support of thread name after v0.12 (Konstantin Akimov) 085120d Merge bitcoin#20993: test: store subversion (user agent) as string in msg_version (MarcoFalke) e866b43 Merge bitcoin#21542: ci: Bump macOS VM image to the latest version (fanquake) a370253 Merge bitcoin#21354: build, doc: Drop no longer required packages from macOS cross-compiling dependencies (fanquake) 6bcc86a Merge bitcoin#21221: [tools] Allow argument/parameter bin packing in clang-format (MarcoFalke) 318c726 Merge bitcoin#19522: build: fix building libconsensus with reduced exports for Darwin targets (Wladimir J. van der Laan) 88a45d4 Merge bitcoin#21138: ci: Re-run wine tests once if they fail (fanquake) 4abb768 Merge bitcoin#21126: ci: Properly bump to focal for win cross build (fanquake) f254f77 Merge bitcoin#21075: doc: Fix markdown formatting (MarcoFalke) Pull request description: ## Issue being fixed or feature implemented Regular backports from bitcoin v22 and related fixes ## What was done? Follow-up fixes for bitcoin#19809 Backports: - bitcoin#21075 - bitcoin#21126 - bitcoin#21138 - bitcoin#19522 - bitcoin#21221 - bitcoin#21354 - bitcoin#21542 - bitcoin#19809 - bitcoin#20993 ## How Has This Been Tested? Run unit/functional tests ## Breaking Changes N/A Notice, that function name is included now by default to logs with `-logfunctionnames` and many logs have function name twice now such as: ``` node0 2024-04-06T20:13:56.564123Z (mocktime: 2014-12-04T17:15:38Z) [httpworker.3] [masternode/sync.cpp:331] [NotifyHeaderTip] CMasternodeSync::NotifyHeaderTip -- pindexNew->nHeight: 5 fInitialDownload=0 ``` For further development need to take it in account and do not use more direct calls `__func__` from code as well as reduce usages in codebase. ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: PastaPastaPasta: utACK 005a6b1 Tree-SHA512: f98949c4605dda7d6dfe790554e1d31a8c8178b57520578fcd58178c68fe7af33c0d66a79865683c1357de9a73fa4f484eb828b28e11ca110b8e1915c1fcf9b3
Configuration menu - View commit details
-
Copy full SHA for 54ea926 - Browse repository at this point
Copy the full SHA 54ea926View commit details -
Merge dashpay#5976: backport: bitcoin#17934, bitcoin#21338, bitcoin#2…
…1390, bitcoin#21445, bitcoin#21602, bitcoin#21606, bitcoin#21609, bitcoin#21676, bitcoin-core/gui#260, 21ad71c Merge bitcoin#21676: test: Use mocktime to avoid intermittent failure in rpc_tests (MarcoFalke) 76a41eb Merge bitcoin#21602: rpc: add additional ban time fields to listbanned (MarcoFalke) adea52a Merge bitcoin-core/gui#260: Handle exceptions instead of crash (W. J. van der Laan) 7e023c3 Merge bitcoin#17934: doc: Use CONFIG_SITE variable instead of --prefix option (fanquake) bc6e3ed Merge bitcoin#21606: fuzz: Extend psbt fuzz target a bit (MarcoFalke) 233fb24 Merge bitcoin#21445: cirrus: Use SSD cluster for speedup (fanquake) a224b80 Merge bitcoin#21609: ci: increase CPU count of sanitizer job to increase memory limit (MarcoFalke) ad94709 test: remove exception for util::Ref which doesn't exist more (Konstantin Akimov) 6674ee8 Merge bitcoin#21390: test: Test improvements for UTXO set hash tests (MarcoFalke) e10eec2 Merge bitcoin#21338: test: add functional test for anchors.dat (MarcoFalke) d9c31d6 Merge bitcoin#21411: test: add logging, reduce blocks, move sync_all in wallet_ groups (MarcoFalke) Pull request description: ## Issue being fixed or feature implemented Regular backports from bitcoin v22 ## Note for reviewers: PRs bitcoin#17934 and bitcoin#21606 have been backported partially in past. ## What was done? Removed unused sanitizer rules (see bitcoin#21366 and dashpay#5055) - bitcoin#21338 - bitcoin#21390 - bitcoin#21609 - bitcoin#21445 - bitcoin#21606 - bitcoin#17934 - bitcoin-core/gui#260 - bitcoin#21602 - bitcoin#21676 ## How Has This Been Tested? Run unit/functional tests ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: PastaPastaPasta: utACK 21ad71c Tree-SHA512: 94276d56255300d7d8c056d15b468720ba028d83cc585b16396e8bad90157e9e010490be239e09cccd4362f575f8df2d56dde3fb505745376c7790d70e3635cd
Configuration menu - View commit details
-
Copy full SHA for 7aa8f54 - Browse repository at this point
Copy the full SHA 7aa8f54View commit details -
Configuration menu - View commit details
-
Copy full SHA for 51edeb0 - Browse repository at this point
Copy the full SHA 51edeb0View commit details -
Configuration menu - View commit details
-
Copy full SHA for ff3497c - Browse repository at this point
Copy the full SHA ff3497cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7e08db5 - Browse repository at this point
Copy the full SHA 7e08db5View commit details -
Configuration menu - View commit details
-
Copy full SHA for fe66202 - Browse repository at this point
Copy the full SHA fe66202View commit details -
Configuration menu - View commit details
-
Copy full SHA for 602d13d - Browse repository at this point
Copy the full SHA 602d13dView commit details -
net_processing: gate
m_tx_relay
access behind!IsBlockOnlyConn()
In bitcoin#21528, the value of `m_addr_relay_enabled` isn't determined until the first ADDR/ADDRV2/GETADDR call. Until then, it'll always default to `false`. This creates a false-negative where a term equivalent to "not a block connection" no longer reliably means that. Therefore we need to switch to directly querying "not a block-only connection".
Configuration menu - View commit details
-
Copy full SHA for c1874c6 - Browse repository at this point
Copy the full SHA c1874c6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 18fe765 - Browse repository at this point
Copy the full SHA 18fe765View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8b8fbc5 - Browse repository at this point
Copy the full SHA 8b8fbc5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 60b3e08 - Browse repository at this point
Copy the full SHA 60b3e08View commit details -
Configuration menu - View commit details
-
Copy full SHA for 06e909b - Browse repository at this point
Copy the full SHA 06e909bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 45d9e58 - Browse repository at this point
Copy the full SHA 45d9e58View commit details -
Configuration menu - View commit details
-
Copy full SHA for 022b76f - Browse repository at this point
Copy the full SHA 022b76fView commit details -
test: add type annotation for
ADDRS
inp2p_addrv2_relay
Required to avoid unhappy python linter[1] result. Have to use annotation instead of re-aligning with upstream (where ADDRS is populated in the global state) due to reliance on `self.mocktime`, without which, the test fails[2] [1] - https://gitlab.com/dashpay/dash/-/jobs/6594035886 [2] - https://gitlab.com/dashpay/dash/-/jobs/6597322548
Configuration menu - View commit details
-
Copy full SHA for 1fedf47 - Browse repository at this point
Copy the full SHA 1fedf47View commit details -
refactor: make CTxMemPool ProTx paths conditional on CDeterministicMN…
…Manager presence Despite removeUnchecked not explicitly requiring CDeterministicMNManager, it has also been made conditional due to addUnchecked requiring the manager and allowing for some operations but not others when pertaining to a transaction type could allow inconsistencies to arise. Better to treat as one unit and skip both if manager isn't present.
Configuration menu - View commit details
-
Copy full SHA for a247a63 - Browse repository at this point
Copy the full SHA a247a63View commit details -
Configuration menu - View commit details
-
Copy full SHA for c99fb42 - Browse repository at this point
Copy the full SHA c99fb42View commit details -
Configuration menu - View commit details
-
Copy full SHA for 81b1247 - Browse repository at this point
Copy the full SHA 81b1247View commit details -
Configuration menu - View commit details
-
Copy full SHA for cf90cf2 - Browse repository at this point
Copy the full SHA cf90cf2View commit details
Commits on Apr 15, 2024
-
Merge dashpay#5978: backport: merge bitcoin#21594, bitcoin#21843, bit…
…coin#22306, bitcoin#22211, bitcoin#22387, bitcoin#21528, bitcoin#22616, bitcoin#22604, bitcoin#22960, bitcoin#23218 (networking backports: part 3) 1fedf47 test: add type annotation for `ADDRS` in `p2p_addrv2_relay` (Kittywhiskers Van Gogh) 022b76f merge bitcoin#23218: Use mocktime for ping timeout (Kittywhiskers Van Gogh) 45d9e58 merge bitcoin#22960: Set peertimeout in write_config (Kittywhiskers Van Gogh) 06e909b merge bitcoin#22604: address rate-limiting follow-ups (Kittywhiskers Van Gogh) 60b3e08 merge bitcoin#22616: address relay fixups (Kittywhiskers Van Gogh) 8b8fbc5 merge bitcoin#22618: Small follow-ups to 21528 (Kittywhiskers Van Gogh) 18fe765 merge bitcoin#21528: Reduce addr blackholes (Kittywhiskers Van Gogh) c1874c6 net_processing: gate `m_tx_relay` access behind `!IsBlockOnlyConn()` (Kittywhiskers Van Gogh) 602d13d merge bitcoin#22387: Rate limit the processing of rumoured addresses (Kittywhiskers Van Gogh) fe66202 merge bitcoin#22211: relay I2P addresses even if not reachable (by us) (Kittywhiskers Van Gogh) 7e08db5 merge bitcoin#22306: Improvements to p2p_addr_relay.py (Kittywhiskers Van Gogh) ff3497c merge bitcoin#21843: enable GetAddr, GetAddresses, and getnodeaddresses by network (Kittywhiskers Van Gogh) 51edeb0 merge bitcoin#21594: add network field to getnodeaddresses (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * Dependency for dashpay#5982 * Population of `ADDRS` in `p2p_addr`(`v2`)`_relay` in Dash is done in the test object ([source](https://github.com/dashpay/dash/blob/0a62b9f985866249964ed703108a8dc617c73ba3/test/functional/p2p_addrv2_relay.py#L42-L49)) as opposed to upstream, where it is done in the global state ([source](https://github.com/maflcko/bitcoin-core/blob/d930c7f5b091687eb4208a5ffe8a2abe311d8054/test/functional/p2p_addrv2_relay.py#L23-L35)). This is because Dash specifically relies on `self.mocktime` instead of Bitcoin, which will work with simply sampling current time (`time.time()`). * [bitcoin#22211](bitcoin#22211) adds changes ([source](https://github.com/bitcoin/bitcoin/pull/22211/files#diff-d3d7b1bb23f25a96c9c7444a79159ad1799895565f99efebf1618e41e886bd53R44-R46)) that add usage of `ADDRS` outside the test object. That, alongside with other considerations, resulted in [dash#5967](dashpay#5967) and a discussion ([source](https://github.com/dashpay/dash/pull/5967/files#r1548101561)) * Eventually, following the footsteps of [dash#5967](dashpay#5967), `ADDRS` was defined outside but setup within the test object. This worked just fine ([build](https://gitlab.com/dashpay/dash/-/jobs/6594036014)) but displeased the linter ([build](https://gitlab.com/dashpay/dash/-/jobs/6594035886)) because `ADDRS` type could not be implicitly determined solely on usage in the global scope. * An attempt to correct this was done by realignment with upstream ([commit](dashpay@262d006)), which pleased the linter ([build](https://gitlab.com/dashpay/dash/-/jobs/6597322521)) but broken the test ([build](https://gitlab.com/dashpay/dash/-/jobs/6597322548)) for the reasons as mentioned above. * Therefore, to keep the linter happy, `ADDRS` has been annotated as a `List[CAddress]` (which involved importing `List` but that's fine) ([commit](dashpay@cb6d36d)) * Working on [bitcoin#21528](bitcoin#21528) proved challenging due to differences in Dash's and Bitcoin's approach to relaying and the workarounds used to accommodate for that. * Bitcoin conditionally initializes `m_tx_relay` ([source](https://github.com/amitiuttarwar/bitcoin/blob/3f7250b328b8b2f5d63f323702445ac5c989b73d/src/net.cpp#L2989-L2991)) and can always check if transaction relaying is permitted by checking if it's initialized ([source](https://github.com/amitiuttarwar/bitcoin/blob/3f7250b328b8b2f5d63f323702445ac5c989b73d/src/net_processing.cpp#L1820-L1826)). * Dash unconditionally initializes it ([source](https://github.com/dashpay/dash/blob/0a62b9f985866249964ed703108a8dc617c73ba3/src/net.h#L605-L607)). Earlier, Dash used to check if it's _appropriate_ to relay transactions by checking if it can relay addresses ([source](https://github.com/dashpay/dash/blob/dc6f52ac99a3b6fb8b3dfe37db4d6db1f7b1e719/src/net_processing.cpp#L2134-L2140)), which at the time, simply meant, it wasn't a block-only connection ([source](https://github.com/dashpay/dash/blob/dc6f52ac99a3b6fb8b3dfe37db4d6db1f7b1e719/src/net.h#L568-L572)). * This mutual exclusivity no longer held true in [dash#5964](dashpay#5964) and therefore, some transaction relay decisions were bound to **not** being a block-only connection ([commit](dashpay@26c39f5)) but some were left behind, adopting `RelayAddrsWithPeer()` ([source](https://github.com/dashpay/dash/blob/0a62b9f985866249964ed703108a8dc617c73ba3/src/net_processing.cpp#L2215-L2221)), which, to be noted, is determined by the initialization status of `Peer::m_addr_known` ([source](https://github.com/dashpay/dash/blob/0a62b9f985866249964ed703108a8dc617c73ba3/src/net_processing.cpp#L839-L842)), which, so far, was pegged to **not** block-relay connection status ([source](https://github.com/dashpay/dash/blob/0a62b9f985866249964ed703108a8dc617c73ba3/src/net_processing.cpp#L1319)). * [bitcoin#21528](bitcoin#21528) got rid of `RelayAddrsWithPeer()` and replaced it with `Peer::m_addr_relay_enabled` ([source](https://github.com/amitiuttarwar/bitcoin/blob/3f7250b328b8b2f5d63f323702445ac5c989b73d/src/net_processing.cpp#L237-L251)), which is setup using `Peer::SetupAddressRelay()` ([source](https://github.com/amitiuttarwar/bitcoin/blob/3f7250b328b8b2f5d63f323702445ac5c989b73d/src/net_processing.cpp#L637-L643)). This means, rather than defining the address relay status during construction, it is setup during the first address-related message (i.e. `ADDR`, `ADDRV2`, `GETADDR`) ([source](https://github.com/amitiuttarwar/bitcoin/blob/3f7250b328b8b2f5d63f323702445ac5c989b73d/src/net_processing.cpp#L227-L236)). * Meaning, until the first addr-related message happens, the state is has not been determined and defaults to `false`. Because some `m_tx_relay` usage still piggybacked on addr-relay permission to determine tx-relay, if a transaction message is processed before an address message is processed, there will be a false-negative condition. The transaction relay logic won't run since it's expecting that if transactions can be relayed, so can addresses and checks for address relaying but believes that it cannot do address relaying, borrowing that state for transaction relaying, despite address relaying permissions actually being indeterminate since it hasn't had a chance to validate its eligibility. * There were two approaches, run `SetupAddressRelay()` as early in the connection as possible to substitute for the "determine at construction" behaviour and change no other conditional statements... and break address-related tests _or_ move the remaining conditional transaction relay logic to use **not** block-only connection checks instead. * We've gone with the latter, resulting in some changes where the condition only changes form but is the same (`RelayAddrsWithPeer()` > `Peer::m_addr_relay_enabled`) ([source](dashpay@109c5a9#diff-6875de769e90cec84d2e8a9c1b962cdbcda44d870d42e4215827e599e11e90e3L2131-L2134)) but other changes where the condition itself has been changed (`RelayAddrsWithPeer()` > `!CNode::IsBlockOnlyConn()`) ([source](dashpay@109c5a9#diff-6875de769e90cec84d2e8a9c1b962cdbcda44d870d42e4215827e599e11e90e3R2256-R2259)) * This does mean that in [dash#5982](dashpay#5982), `Peer::m_block_relay_only` is introduced to be the counterpart to `Peer::m_addr_relay_enabled` ([source](https://github.com/dashpay/dash/blame/45b48dae0a66fd918834d012cc8e1e17b5824abe/src/net_processing.cpp#L321-L322)) to account for some `CConnman` logic being moved into `PeerManager` ([source](https://github.com/dashpay/dash/blame/45b48dae0a66fd918834d012cc8e1e17b5824abe/src/net_processing.cpp#L2186-L2195)), which, in a way, reverts [dash#5339](dashpay#5339) but also, doesn't, since it moves the information into `Peer` instead of reinstating it into `CNode`. * This was eventual since the underlying presumption that `CNode::IsAddrRelayPeer() == !CNode::IsBlockOnlyConn()` no longer holds true (also because `CNode::IsAddrRelayPeer()` doesn't exist anymore). Special thanks to @UdjinM6 for help with understanding Dash-specifics with respect to functional tests through help on [dash#5964](dashpay#5964) and [dash#5967](dashpay#5967) ## Breaking Changes None expected. RPC changes have been introduced in `getnodeaddresses`, where a new input `network`, can filter addresses based on desired network and a new output, also `network`, will associate the address with the origin network. This change is expected to be backwards-compatible. ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK 1fedf47 Tree-SHA512: 533d33f79a0d9fd730073b3b9a58baf1dd3b0c95823e765c88a43cc974970ed3609bf1863c63ac7fc5586d1437e5250b0a2d3005468da09e407110a412bd0264
Configuration menu - View commit details
-
Copy full SHA for 9240967 - Browse repository at this point
Copy the full SHA 9240967View commit details
Commits on Apr 16, 2024
-
Merge dashpay#5981: backport: bitcoin#19136, bitcoin#21063, bitcoin#2…
…1277, bitcoin#21302, partial bitcoin#20267 - descriptor wallets part IV ceefab5 fix: feature_backwards compatible works now with as expected if no bdb compiled (Konstantin Akimov) b20f812 fix: follow-up fixes for functional tests used protx (Konstantin Akimov) 655146d Merge bitcoin#21302: wallet: createwallet examples for descriptor wallets (W. J. van der Laan) 99a8b60 Merge bitcoin#21063: wallet, rpc: update listdescriptors response format (fanquake) 6ee2c7c Merge bitcoin#21277: wallet: listdescriptors uses normalized descriptor form (Wladimir J. van der Laan) 8bacdbf Merge bitcoin#19136: wallet: add parent_desc to getaddressinfo (Samuel Dobson) f567de0 chore: release notes for 5965 with wallet tool improvements (Konstantin Akimov) 0daf360 chore: add TODO to implement mnemonic for descriptor wallets (Konstantin Akimov) 5016294 chore: move functional test wallet_multiwallet from category "slow 5 minutes" to "fast test" (Konstantin Akimov) ef7ce87 fix: remove workarounds introduced due to missing bitcoin#20267 (bdb is not compiled) (Konstantin Akimov) 06b2d85 partial Merge bitcoin#20267: Disable and fix tests for when BDB is not compiled (Wladimir J. van der Laan) Pull request description: ## Issue being fixed or feature implemented dashpay/dash-issues#59 ## Extra notes This commit `chore: move functional test wallet_multiwallet from category "slow 5 minutes" to "fast test"` is not directly connected to descriptor wallets, but added to this PR due to conflicts with 20267 ## What was done? It steadily improves support of descriptor wallets in Dash core. Done backports and related fixes: - partial bitcoin#20267 - bitcoin#19136 - bitcoin#21277 - bitcoin#21063 - bitcoin#21302 Beside backports and related fixes, this PR includes release notes for previous batch of backports for descriptor wallets support dashpay#5965 ## How Has This Been Tested? Run unit functional tests ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone Top commit has no ACKs. Tree-SHA512: f4b2033f8c4fa1d0f72cfc31378909703b3ae8f44748989ff00c3e71311ac80ac37837137133c7e4a166823a941ed7df10efa09c89f5b213f3c8ede7d3d6e8f4
Configuration menu - View commit details
-
Copy full SHA for 544d333 - Browse repository at this point
Copy the full SHA 544d333View commit details -
Merge bitcoin#21712: qa: Test default include_mempool value of gettxout
44dab42 qa: Test default include_mempool value of gettxout (João Barbosa) Pull request description: With the following diff the functional test would pass. Fix by testing the default value. ```diff --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -1142,7 +1142,7 @@ static RPCHelpMan gettxout() uint256 hash(ParseHashV(request.params[0], "txid")); int n = request.params[1].get_int(); COutPoint out(hash, n); - bool fMempool = true; + bool fMempool = false; if (!request.params[2].isNull()) fMempool = request.params[2].get_bool(); ``` ACKs for top commit: MarcoFalke: cr ACK 44dab42 Tree-SHA512: 14db21b29d6b2c01d1d1278e18a0cf35d6ae566e33e45515d1fe2983dda94ad1ff6065c217601d283f9515cae39b57e981b62ac71ec2002de5359bd8a9e3efa9
Configuration menu - View commit details
-
Copy full SHA for e22ebca - Browse repository at this point
Copy the full SHA e22ebcaView commit details -
Merge bitcoin#21192: cli: Treat high detail levels as maximum in -net…
…info 882ce25 cli: Treat high detail levels as the maximum in -netinfo (Wladimir J. van der Laan) Pull request description: I somehow often type `-netinfo 5` which gets treated as `-netinfo 0`, after this change it's `-netinfo 4` which seems more convenient behavior. ACKs for top commit: jonatack: ACK 882ce25 theStack: Tested ACK 882ce25 Tree-SHA512: 5ed13213d00940c81f70c5fe5092f5fcc78c0184e1cc83b6c58a7bf24cf0f634816ce28f468aac588a4d202a6a7c1b411c0690099f1a8bf1999e662de4afcccd
Configuration menu - View commit details
-
Copy full SHA for 9de77e8 - Browse repository at this point
Copy the full SHA 9de77e8View commit details -
Merge bitcoin#21695: Remove no longer used contrib/bitcoin-qt.pro fro…
…m the repo 5f2be6e Remove no longer used contrib/bitcoin-qt.pro from the repo (Hennadii Stepanov) Pull request description: From [IRC](http://www.erisian.com.au/bitcoin-core-dev/log-2021-04-15.html#l-209): > \<hebasto> wumpus: I cannot see any way how the `contrib/bitcoin-qt.pro` is used in the translation process, neither in the main repo nor in https://github.com/bitcoin-core/bitcoin-maintainer-tools. Besides it looks outdated and unmaintained. May I ask you to confirm/deny my assumption? > \<wumpus> hebasto: it is not used for anything, it exists to be able to edit the qt forms in qt designer nothing more > \<wumpus> i'm not sure if it is even *necessary* for that, but it is why it is there > \<hebasto> wumpus: thanks, qt designer does not need *.pro file at all > \<hebasto> maybe qt creator does > \<wumpus> feel free to create a PR to remove it, best way to find out if someone wants to keep it, you are right it hasn't been updated in a long time > \<hebasto> ok > \<wumpus> fwiw, the only question i get about it ever is why it exists > \<hebasto> it was in use with `qmake` years ago (what I found digging into the repo history) > \<wumpus> yes, that was the original reason, but when we switched to automake it was kept around for use w/ qt's GUI tools > \<hebasto> I've noticed it in https://github.com/bitcoin/bitcoin/blame/master/doc/translation_process.md#L25 > \<wumpus> what it says there is definitely not true anymore ACKs for top commit: laanwj: ACK 5f2be6e jarolrod: ACK 5f2be6e Tree-SHA512: 7c105612f28185097fee9e4108b162b4c8b07cc527f4438bdf5bcab08c65421ea301de8584d58770cd113fa871f6781daa8145bd6463278523449e28bfc49d06
Configuration menu - View commit details
-
Copy full SHA for 4d28f3a - Browse repository at this point
Copy the full SHA 4d28f3aView commit details -
Merge bitcoin#21244: Move GetDataDir to ArgsManager
bb8d1c6 Change ClearDataDirPathCache() to ArgsManager.ClearPathCache(). (Kiminuo) b4190ef Change GetBlocksDir() to ArgsManager.GetBlocksDirPath(). (Kiminuo) 83292e2 scripted-diff: Modify unit tests to use the ArgsManager in the BasicTestingSetup class instead of implicitly relying on gArgs. (Kiminuo) 55c68e6 scripted-diff: Replace m_args with m_local_args in getarg_tests.cpp (Kiminuo) 511ce3a BasicTestingSetup: Add ArgsManager. (Kiminuo) 1cb52ba Modify "util_datadir" unit test to not use gArgs. (Kiminuo) 1add318 Move GetDataDir(fNetSpecific) implementation to ArgsManager. (Kiminuo) 70cdf67 Move StripRedundantLastElementsOfPath before ArgsManager class. (Kiminuo) Pull request description: This PR attempts to contribute to "Remove gArgs" (bitcoin#21005). Main changes: * `GetDataDir()` function is moved to `ArgsManager.GetDataDirPath()`. * `GetBlocksDir()` function is moved to `ArgsManager.GetBlocksDirPath()`. ACKs for top commit: ryanofsky: Code review ACK bb8d1c6. Just minor const/naming changes and splitting/scripting commits since last review MarcoFalke: review ACK bb8d1c6 📓 hebasto: re-ACK bb8d1c6, addressed comments, and two commits made scripted-diffs since my [previous](bitcoin#21244 (review)) review. Tree-SHA512: ba9408c22129d6572beaa103dca0324131766f06d562bb7d6b9e214a0a4d40b0216ce861384562bde24b744003b3fbe6fac239061c8fd798abd3981ebc1b9019
Configuration menu - View commit details
-
Copy full SHA for 6a45e72 - Browse repository at this point
Copy the full SHA 6a45e72View commit details -
Merge bitcoin#21595: cli: create -addrinfo
06c4320 cli: use C++17 std::array class template argument deduction (CTAD) (Jon Atack) edf3167 addrinfo: raise helpfully on server error or incompatible server version (Jon Atack) bb85cbc doc: add cli -addrinfo release note (Jon Atack) 5056a37 cli: add -addrinfo command (Jon Atack) db4d2c2 cli: create AddrinfoRequestHandler class (Jon Atack) Pull request description: While looking at issue bitcoin#21351, it turned out that the problem was a lack of tor v3 addresses known to the node. It became clear (e.g. bitcoin#21351 (comment)) that a CLI command returning the number of addresses the node knows per network (with a tor v2 / v3 breakdown) would be very helpful. This patch adds that. `-addrinfo` is useful to see if your node knows enough addresses in a network to use options like `-onlynet=<network>`, or to upgrade to the upcoming tor release that no longer supports tor v2, for which you'll need to be sure your node knows enough tor v3 peers. ``` $ bitcoin-cli --help | grep -A1 addrinfo -addrinfo Get the number of addresses known to the node, per network and total. $ bitcoin-cli -addrinfo { "addresses_known": { "ipv4": 14406, "ipv6": 2511, "torv2": 5563, "torv3": 2842, "i2p": 8, "total": 25330 } } $ bitcoin-cli -addrinfo 1 error: -addrinfo takes no arguments ``` This can be manually tested, for example, with commands like this: ``` $ bitcoin-cli getnodeaddresses 0 | jq '.[] | (select(.address | contains(".onion")) | select(.address | length <= 22)) | .address' | wc -l 5563 $ bitcoin-cli getnodeaddresses 0 | jq '.[] | (select(.address | contains(".onion")) | select(.address | length > 22)) | .address' | wc -l 2842 $ bitcoin-cli getnodeaddresses 0 | jq '.[] | .address' | wc -l 25330 ``` ACKs for top commit: laanwj: Tested ACK 06c4320 Tree-SHA512: b668b47718a4ce052aff218789f3da629bca730592c18fcce9a51034d95a0a65f8e6da33dd47443cdd8f60c056c02696db175b0fe09a688e4385a76c1d8b7aeb
Configuration menu - View commit details
-
Copy full SHA for 1f4e26b - Browse repository at this point
Copy the full SHA 1f4e26bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 262fe0a - Browse repository at this point
Copy the full SHA 262fe0aView commit details -
Merge dashpay#5904: backport: Merge bitcoin#21712,21192, 21695,21244,…
…21595 262fe0a (followup) bitcoin#21244: Move GetBackupsDir to ArgsManager (Vijay) 1f4e26b Merge bitcoin#21595: cli: create -addrinfo (W. J. van der Laan) 6a45e72 Merge bitcoin#21244: Move GetDataDir to ArgsManager (fanquake) 4d28f3a Merge bitcoin#21695: Remove no longer used contrib/bitcoin-qt.pro from the repo (fanquake) 9de77e8 Merge bitcoin#21192: cli: Treat high detail levels as maximum in -netinfo (Wladimir J. van der Laan) e22ebca Merge bitcoin#21712: qa: Test default include_mempool value of gettxout (MarcoFalke) Pull request description: backport: Merge bitcoin#21712,21192, 21695,21244,21595 Top commit has no ACKs. Tree-SHA512: 61e72fa6db7aa0234cdccca91b3639dbfed6eabea4d9d65d25e89ac17de0b1d1b5eddf41985b1335bbd34ca71465a9760bf62ed33418a8d79a3d742156c52f35
Configuration menu - View commit details
-
Copy full SHA for 44d9ac7 - Browse repository at this point
Copy the full SHA 44d9ac7View commit details -
Configuration menu - View commit details
-
Copy full SHA for a5be37c - Browse repository at this point
Copy the full SHA a5be37cView commit details
Commits on Apr 17, 2024
-
Merge dashpay#5980: refactor: move C{ActiveMasternode, DeterministicM…
…N}Manager, CMasternode{MetaMan, Sync} to NodeContext a5be37c refactor: remove CDeterministicMNManager global, move to NodeContext (Kittywhiskers Van Gogh) cf90cf2 refactor: remove CMasternodeMetaMan global, move to NodeContext (Kittywhiskers Van Gogh) 81b1247 refactor: remove CActiveMasternodeManager global, move to NodeContext (Kittywhiskers Van Gogh) c99fb42 refactor: remove CMasternodeSync global, move to NodeContext (Kittywhiskers Van Gogh) a247a63 refactor: make CTxMemPool ProTx paths conditional on CDeterministicMNManager presence (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * Depends on dashpay#5966 * `CTxMemPool`'s ProTx logic took the presence of `CDeterministicMNManager` for granted. To account for `CTxMemPool` instances that aren't seeded with the pointer to the manager (usually because the unit test doesn't call for them), refactoring was done to make ProTx code paths conditional on the manager pointer being set to something. * Setting the manager pointer is done through `CTxMemPool::Init()`, to avoid having to pass another `std::unique_ptr` const-ref and also because `CTxMemPool` can _technically_ work without the manager if ProTx logic is not needed (and `CTxMemPool::existsProviderTxConflict()` isn't called) * `CTxMemPool::Init()` doesn't allow overwriting a not-`nullptr` manager pointer. If that is desired, then `CTxMemPool::Reset()` should be called first. This was done to avoid unintentional double-initialization/overwriting. ## Breaking Changes None. Changes are limited to refactoring. ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK a5be37c Tree-SHA512: 8dc7ada6597a265b7753603bca6a43b69cfe3b0d330bae98c3e27b6aa24cd3cdff80f6939bb39ffc00902b76b6b145667f0b7ac98a17fe8255d6fd143088a98c
Configuration menu - View commit details
-
Copy full SHA for 2dacfb0 - Browse repository at this point
Copy the full SHA 2dacfb0View commit details
Commits on Apr 21, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 10a006e - Browse repository at this point
Copy the full SHA 10a006eView commit details
Commits on Apr 22, 2024
-
Merge bitcoin#21395: Net processing: Remove unused CNode.address member
a6b0fe2 [net processing] Remove unused CNode.address member (John Newbery) Pull request description: ACKs for top commit: practicalswift: cr ACK a6b0fe2: patch looks correct and unused code should be removed fanquake: ACK a6b0fe2 Tree-SHA512: 6022674dabe79be580d8005ac9e308d444d35588f324a7bb9f1ab04e8ad8ac41355c58ddfb016b001fd80a1a01ebcbddb2919ae9d33faccec2044af88547a79f
Configuration menu - View commit details
-
Copy full SHA for 6423f6b - Browse repository at this point
Copy the full SHA 6423f6bView commit details -
Merge bitcoin#21370: Use C++11 member initializer in CNodeState
fa476f1 Use C++11 member initializer in CNodeState (MarcoFalke) Pull request description: This removes a bunch of boilerplate, makes the code easier to read. Also, C++11 member initialization avoids accidental uninitialized members. ACKs for top commit: practicalswift: cr ACK fa476f1 hebasto: cr ACK fa476f1 jnewbery: utACK fa476f1 Tree-SHA512: 5c876717d30ded975e29bfbc77804012179588a13f950f0b2ec93fa9dbd5cf6b52fe86414fd5d1cce021db2ec77e271d533b0f7a8d6eeaac0feb9e6dbaec9ff2
Configuration menu - View commit details
-
Copy full SHA for 1a07e04 - Browse repository at this point
Copy the full SHA 1a07e04View commit details -
Merge bitcoin#20406: util: Avoid invalid integer negation in FormatMo…
…ney and ValueFromAmount 1f05dbd util: Avoid invalid integer negation in ValueFromAmount: make ValueFromAmount(const CAmount& n) well-defined also when n is std::numeric_limits<CAmount>::min() (practicalswift) 7cc75c9 util: Avoid invalid integer negation in FormatMoney: make FormatMoney(const CAmount& n) well-defined also when n is std::numeric_limits<CAmount>::min() (practicalswift) Pull request description: Avoid invalid integer negation in `FormatMoney` and `ValueFromAmount`. Fixes bitcoin#20402. Before this patch: ``` $ CC=clang CXX=clang++ ./configure --with-sanitizers=undefined $ make -C src/ test/test_bitcoin $ src/test/test_bitcoin -t rpc_tests/rpc_format_monetary_values -t util_tests/util_FormatMoney core_write.cpp:21:29: runtime error: negation of -9223372036854775808 cannot be represented in type 'CAmount' (aka 'long'); cast to an unsigned type to negate this value to itself SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior core_write.cpp:21:29 in test/rpc_tests.cpp(186): error: in "rpc_tests/rpc_format_monetary_values": check ValueFromAmount(std::numeric_limits<CAmount>::min()).write() == "-92233720368.54775808" has failed [--92233720368.-54775808 != -92233720368.54775808] util/moneystr.cpp:16:34: runtime error: negation of -9223372036854775808 cannot be represented in type 'CAmount' (aka 'long'); cast to an unsigned type to negate this value to itself SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior util/moneystr.cpp:16:34 in test/util_tests.cpp(1188): error: in "util_tests/util_FormatMoney": check FormatMoney(std::numeric_limits<CAmount>::min()) == "-92233720368.54775808" has failed [--92233720368.-54775808 != -92233720368.54775808] ``` After this patch: ``` $ CC=clang CXX=clang++ ./configure --with-sanitizers=undefined $ make -C src/ test/test_bitcoin $ src/test/test_bitcoin -t rpc_tests/rpc_format_monetary_values -t util_tests/util_FormatMoney ``` ACKs for top commit: laanwj: re-ACK 1f05dbd Tree-SHA512: 5aaeb8e2178f1597921f53c12bdfc2f3d5993d10c41658dcd25943e54e8cc2116a411bc71d928f890b33bc0b3761a8ee4449b0532bce41125b6c60692808c8c3
Configuration menu - View commit details
-
Copy full SHA for 666e6e2 - Browse repository at this point
Copy the full SHA 666e6e2View commit details -
Merge bitcoin#21007: bitcoind: Add -daemonwait option to wait for ini…
…tialization e017a91 bitcoind: Add -daemonwait option to wait for initialization (Wladimir J. van der Laan) c3e6fde shutdown: Use RAII TokenPipe in shutdown (Wladimir J. van der Laan) 612f746 util: Add RAII TokenPipe (Wladimir J. van der Laan) Pull request description: This adds a `-daemonwait` flag that does the same as `-daemon` except that it, from a user perspective, backgrounds the process only after initialization is complete. This is similar to the behaviour of some other software such as c-lightning. This can be useful when the process launching bitcoind wants to guarantee that either the RPC server is running, or that initialization failed, before continuing. The exit code indicates the initialization result. The use of the libc function `daemon()` is replaced by a custom implementation which is inspired by the [glibc implementation](https://github.com/lattera/glibc/blob/master/misc/daemon.c#L44), but which also creates a pipe from the child to the parent process for communication. An additional advantage of having our own `daemon()` implementation is that no MACOS-specific pragmas are needed anymore to silence a deprecation warning. TODO: - [x] Factor out `token_read` and `token_write` to an utility, and use them in `shutdown.cpp` as well—this is exactly the same kind of communication mechanism. - [x] RAII-ify pipe endpoints. - [x] Improve granularity of the `configure.ac` checks. This currently still checks for the function `daemon()` which makes no sense as it's not used. It should check for individual functions such as `fork()` and `setsid()` etc—the former being required, the second optional. - [-] ~~Signal propagation during initialization: if say, pressing Ctrl-C during `-daemonwait` it would be good to pass this SIGINT on to the child process instead of detaching the parent process and letting the child run free.~~ This is not necessary, see bitcoin#21007 (comment). Future: - Consider if it makes sense to use this in the RPC tests (there would be no more need for "is RPC ready" polling loops). I think this is out of scope for this PR. ACKs for top commit: jonatack: Tested ACK e017a91 checked change since previous review is move-only Tree-SHA512: 53369b8ca2247e4cf3af8cb2cfd5b3399e8e0e3296423d64be987004758162a7ddc1287b01a92d7692328edcb2da4cf05d279b1b4ef61a665b71440ab6a6dbe2
Configuration menu - View commit details
-
Copy full SHA for 6ca0eb1 - Browse repository at this point
Copy the full SHA 6ca0eb1View commit details -
Merge bitcoin#20040: wallet: Refactor OutputGroups to handle fees and…
… spending eligibility on grouping 5d45976 Rewrite OutputGroups to be clearer and to use scriptPubKeys (Andrew Chow) f6b3052 Explicitly filter out partial groups when we don't want them (Andrew Chow) 416d74f Move OutputGroup positive only filtering into Insert (Andrew Chow) d895e98 Move EligibleForSpending into GroupOutputs (Andrew Chow) 99b399a Move fee setting of OutputGroup to Insert (Andrew Chow) 6148a8a Move GroupOutputs into SelectCoinsMinConf (Andrew Chow) 2acad03 Remove OutputGroup non-default constructors (Andrew Chow) Pull request description: Even after bitcoin#17458, we still deal with setting fees of an `OutputGroup` and filtering the `OutputGroup` outside of the struct. We currently make all of the `OutputGroup`s in `SelectCoins` and then copy and modify them within each `SelectCoinsMinConf` scenario. This PR changes this to constructing the `OutputGroup`s within the `SelectCoinsMinConf` so that the scenario can be taken into account during the group construction. Furthermore, setting of fees and filtering for effective value is moved into `OutputGroup::Insert` itself so that we don't add undesirable outputs to an `OutputGroup` rather than deleting them afterwards. To facilitate fee calculation and effective value filtering during `OutputGroup::Insert`, `OutputGroup` now takes the feerates in its constructor and computes the fees and effective value for each output during `Insert`. While removing `OutputGroup`s in accordance with the `CoinEligibilityFilter` still requires creating the `OutputGroup`s first, we can do that within the function that makes them - `GroupOutput`s. ACKs for top commit: Xekyo: Code review ACK: bitcoin@5d45976 fjahr: Code review ACK 5d45976 meshcollider: Light utACK 5d45976 Tree-SHA512: 35965b6d49a87f4ebb366ec4f00aafaaf78e9282481ae2c9682b515a3a9f2cbcd3cd6e202fee29489d48fe7f3a7cede4270796f5e72bbaff76da647138fb3059
Configuration menu - View commit details
-
Copy full SHA for 99f09a0 - Browse repository at this point
Copy the full SHA 99f09a0View commit details -
Merge bitcoin#21418: contrib: Make systemd invoke dependencies only w…
…hen ready 663f6cd contrib: Use -daemonwait in systemd init script (Wladimir J. van der Laan) Pull request description: Make systemd invoke dependencies only when ready by using `-daemonwait` in the service file instead of `-daemon`. Closes bitcoin#21322 by making bitcoind conform to behavior specified for `type=forking`. This may need some tuning of timeouts. ACKs for top commit: darosior: ACK 663f6cd hebasto: re-ACK 663f6cd Tree-SHA512: 890005852b632a202caa578e6c796ebdc9da0b2379a9157a4f56f7db9d193c0ffbb78d120bbf112ab2f273855f2a08c3da000b1f7a9fb5222a3b94dcdb16b878
Configuration menu - View commit details
-
Copy full SHA for 3325620 - Browse repository at this point
Copy the full SHA 3325620View commit details -
Merge bitcoin#21447: Always add -daemonwait to known command line arg…
…uments 4d008f9 Always add -daemonwait to known command line arguments (Hennadii Stepanov) Pull request description: This is a follow up of bitcoin#21007. When `AC_CHECK_DECLS([fork])` fails: - on master (8e65320): ``` $ src/bitcoind -daemonwait Error: Error parsing command line arguments: Invalid parameter -daemonwait ``` - with this PR: ``` $ src/bitcoind -daemonwait Error: -daemon is not supported on this operating system ``` ACKs for top commit: laanwj: Code review ACK 4d008f9 Tree-SHA512: 7fcb5e9d76958adcf57e04fa74bd2a98d62459d81a3c57a97bd74c346cbf47c53e560a15455fb024e912c3b44e8487a83499e993b282871ba069953e665d88a9
Configuration menu - View commit details
-
Copy full SHA for dd92322 - Browse repository at this point
Copy the full SHA dd92322View commit details -
Merge bitcoin#20197: p2p: protect onions in AttemptToEvictConnection(…
…), add eviction protection test coverage 0cca08a Add unit test coverage for our onion peer eviction protection (Jon Atack) caa21f5 Protect onion+localhost peers in ProtectEvictionCandidatesByRatio() (Jon Atack) 8f1a53e Use EraseLastKElements() throughout SelectNodeToEvict() (Jon Atack) 8b1e156 Add m_inbound_onion to AttemptToEvictConnection() (Jon Atack) 72e30e8 Add unit tests for ProtectEvictionCandidatesByRatio() (Jon Atack) ca63b53 Use std::unordered_set instead of std::vector in IsEvicted() (Jon Atack) 41f84d5 Move peer eviction tests to a separate test file (Jon Atack) f126cbd Extract ProtectEvictionCandidatesByRatio from SelectNodeToEvict (Jon Atack) Pull request description: Now that bitcoin#19991 and bitcoin#20210 have been merged, we can determine inbound onion peers using `CNode::m_inbound_onion` and add it to the localhost peers protection in `AttemptToEvictConnection`, which was added in bitcoin#19670 to address issue bitcoin#19500. Update 28 February 2021: I've updated this to follow gmaxwell's suggestion in bitcoin#20197 (comment). This branch now protects up to 1/4 onion peers (connected via our tor control service), if any, sorted by longest uptime. If any (or all) onion slots remain after that operation, they are then allocated to protect localhost peers, or a minimum of 2 localhost peers in the case that no onion slots remain and 2 or more onion peers were protected, sorted as before by longest uptime. This patch also adds test coverage for the longest uptime, localhost, and onion peer eviction protection logic to build on the welcome initial unit testing of bitcoin#20477. Suggest reviewing the commits that move code with `colorMoved = dimmed-zebra` and `colorMovedWs = allow-indentation-change`. Closes bitcoin#11537. ACKs for top commit: laanwj: Code review ACK 0cca08a vasild: ACK 0cca08a Tree-SHA512: 2f5a63f942acaae7882920fc61f0185dcd51da85e5b736df9d1fc72343726dd17da740e02f30fa5dc5eb3b2d8345707aed96031bec143d48a2497a610aa19abd
Configuration menu - View commit details
-
Copy full SHA for b8aec5c - Browse repository at this point
Copy the full SHA b8aec5cView commit details -
Merge bitcoin#21426: rpc: remove scantxoutset EXPERIMENTAL warning
2f0b25a rpc: remove scantxoutset EXPERIMENTAL warning (Jon Atack) Pull request description: Remove old warning per IRC wallet meeting discussion at http://www.erisian.com.au/bitcoin-core-dev/log-2021-03-12.html#l-467 This RPC was merged 3 years ago in bitcoin#12196. ACKs for top commit: MarcoFalke: cr ACK 2f0b25a Tree-SHA512: 874ccd5bd19ecbbe91912171ac85af7a4658dc92f6db484ff3d03f07f1b9ba97e1c69d33a5c3ae5c5ec46cac3595a211f55fec0fbf81bac30d66a891c376ce26
Configuration menu - View commit details
-
Copy full SHA for daacafb - Browse repository at this point
Copy the full SHA daacafbView commit details -
Merge dashpay#5928: backport: Merge bitcoin#20406, 21370, 21395, 2100…
…7, 20040, 21418, 21447, 20197, 21613, 21602 daacafb Merge bitcoin#21426: rpc: remove scantxoutset EXPERIMENTAL warning (MarcoFalke) b8aec5c Merge bitcoin#20197: p2p: protect onions in AttemptToEvictConnection(), add eviction protection test coverage (Wladimir J. van der Laan) dd92322 Merge bitcoin#21447: Always add -daemonwait to known command line arguments (Wladimir J. van der Laan) 3325620 Merge bitcoin#21418: contrib: Make systemd invoke dependencies only when ready (Wladimir J. van der Laan) 99f09a0 Merge bitcoin#20040: wallet: Refactor OutputGroups to handle fees and spending eligibility on grouping (Samuel Dobson) 6ca0eb1 Merge bitcoin#21007: bitcoind: Add -daemonwait option to wait for initialization (Wladimir J. van der Laan) 666e6e2 Merge bitcoin#20406: util: Avoid invalid integer negation in FormatMoney and ValueFromAmount (Wladimir J. van der Laan) 1a07e04 Merge bitcoin#21370: Use C++11 member initializer in CNodeState (fanquake) 6423f6b Merge bitcoin#21395: Net processing: Remove unused CNode.address member (MarcoFalke) Pull request description: bitcoin backports Top commit has no ACKs. Tree-SHA512: dc9490c6c99cc08e8c8ffbd6b71f48e8df8b51dd2d7ca940de44ff47ab28ec3e2d45b7e381a7124d513f7e29ad13300c9df68acd7ddec3022a603eca162b12f3
Configuration menu - View commit details
-
Copy full SHA for eb7d244 - Browse repository at this point
Copy the full SHA eb7d244View commit details
Commits on Apr 23, 2024
-
Merge bitcoin#21902: refactor: Remove useless extern keyword
fa4bbd3 refactor: Remove useless extern keyword (MarcoFalke) Pull request description: It is redundant, confusing and useless. https://en.cppreference.com/w/cpp/language/storage_duration#external_linkage ACKs for top commit: practicalswift: cr ACK fa4bbd3: patch looks correct Talkless: utACK fa4bbd3, built successfully on Debian Sid, looks OK. jonatack: Light code review ACK fa4bbd3 hebasto: ACK fa4bbd3, I've verified that all of the remained `extern` keywords specify either (a) a variable with external linkage, or (b) a symbol with "C" language linkage. promag: Code review ACK fa4bbd3. Tree-SHA512: 1d77d661132defa52ccb2046f7a287deb3669b68835e40ab75a0d9d08fe6efeaf3bea7c0e76c754fd18bfe45972c253a39462014080d014cc5d810498784e3e4
Configuration menu - View commit details
-
Copy full SHA for 16ccb90 - Browse repository at this point
Copy the full SHA 16ccb90View commit details -
Merge bitcoin#22187: test: Add sync_blocks in wallet_orphanedreward.py
7a681d6 Add sync_blocks in wallet_orphanedreward.py. (Daniel Kraft) Pull request description: Add an explicit `sync_blocks` call in `wallet_orphanedreward.py`, which was missing and could lead to intermittent failures of the test due to race conditions. This will presumably fix bitcoin#22181. ACKs for top commit: MarcoFalke: review ACK 7a681d6 Tree-SHA512: bb226c31bf3f2e7c52beb829d7b67496e5b38781245db5f9184e3f28c93ac3aa4d21fcf5bf3055e79d384cfd0ed916e79dccb3d77486e86fe1fedb5e35f894ad
Configuration menu - View commit details
-
Copy full SHA for f3bc953 - Browse repository at this point
Copy the full SHA f3bc953View commit details -
Merge bitcoin#21795: fuzz: Terminate immediately if a fuzzing harness…
… tries to perform a DNS lookup (belt and suspenders) 3737d35 fuzz: Terminate immediately if a fuzzing harness ever tries to perform a DNS lookup (belts and suspenders) (practicalswift) Pull request description: Terminate immediately if a fuzzing harness tries to perform a DNS lookup (belt and suspenders). Obviously this _should_ never happen, but if it _does_ happen we want immediate termination instead of a DNS lookup :) ACKs for top commit: MarcoFalke: review ACK 3737d35 Tree-SHA512: 51cd2d32def7f9f052e02f99c354656af1f807cc9fdf592ab765e620bfe660f1ed26e0484763f94aba650424b44959eafaf352bfd0f81aa273e350510e97356e
Configuration menu - View commit details
-
Copy full SHA for cc70886 - Browse repository at this point
Copy the full SHA cc70886View commit details -
Merge bitcoin#22092: test: convert documentation into type annotations
68ace23 test: convert docs into type annotations in test_framework/test_node.py (fanquake) 8bfcba3 test: convert docs into type annotations in test_framework/wallet.py (fanquake) b043ca8 test: convert docs into type annotations in test_framework/util.py (fanquake) Pull request description: Rather than having function types exist as documentation, make them type annotations, which enables more `mypy` checking. ACKs for top commit: instagibbs: utACK bitcoin@68ace23 Tree-SHA512: b705f26b48baabde07b9b2c0a8d547b4dcca291b16eaf5ac70462bb3a1f9e9c2783d93a9d4290889d0cbb3f7db3671446754411a1f498b265d336f6ff33478df
Configuration menu - View commit details
-
Copy full SHA for b6dbd8b - Browse repository at this point
Copy the full SHA b6dbd8bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2996daa - Browse repository at this point
Copy the full SHA 2996daaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 348f4a8 - Browse repository at this point
Copy the full SHA 348f4a8View commit details -
Merge bitcoin#21353: interfaces: Stop exposing wallet destdata to gui
f5ba424 wallet: Add IsAddressUsed / SetAddressUsed methods (Russell Yanofsky) 62252c9 interfaces: Stop exposing wallet destdata to gui (Russell Yanofsky) 985430d test: Add gui test for wallet receive requests (Russell Yanofsky) Pull request description: Stop giving GUI access to destdata rows in database. Replace with narrow API just for saving and reading receive request information. This simplifies code and should prevent the GUI from interfering with other destdata like address-used status. It also adds some more GUI test coverage. There are no changes in behavior. ACKs for top commit: jarolrod: tACK f5ba424 laanwj: Code review ACK f5ba424 Tree-SHA512: 5423df4786e537a59013cb5bfb9e1bc29a7ca4b8835360c00cc2165a59f925fdc355907a4ceb8bca0285bb4946ba235bffa7645537a951ad03fd3b4cee17b6b0
Configuration menu - View commit details
-
Copy full SHA for 26ff28a - Browse repository at this point
Copy the full SHA 26ff28aView commit details -
Merge bitcoin#21936: fuzz: Terminate immediately if a fuzzing harness…
… tries to create a TCP socket (belt and suspenders) 393992b fuzz: Terminate immediately if a fuzzing harness ever tries to create a TCP socket (belt and suspenders) (practicalswift) Pull request description: Terminate immediately if a fuzzing harness ever to create a TCP socket (belt and suspenders). Obviously this _should_ never happen, but if it _does_ happen we want immediate termination instead of a TCP socket :) ACKs for top commit: MarcoFalke: ACK 393992b Tree-SHA512: 5bbff1f7e9a58b3eae24f742b7daf3fc870424c985f29bed5931e47a708d9c0984bfd8762f43658cffa9c69d32f86d56deb48bc7e43821e3398052174b6a160e
Configuration menu - View commit details
-
Copy full SHA for 6c242da - Browse repository at this point
Copy the full SHA 6c242daView commit details -
Merge dashpay#5979: backport: Merge bitcoin#21902, 22187, 21795, 2290…
…2,(followup) 19940, 22121, 21353, 21936 6c242da Merge bitcoin#21936: fuzz: Terminate immediately if a fuzzing harness tries to create a TCP socket (belt and suspenders) (MarcoFalke) 26ff28a Merge bitcoin#21353: interfaces: Stop exposing wallet destdata to gui (W. J. van der Laan) 348f4a8 Merge bitcoin#22121: doc: Various validation doc fixups (fanquake) 2996daa (followup) bitcoin#19940 (Vijay) b6dbd8b Merge bitcoin#22092: test: convert documentation into type annotations (fanquake) cc70886 Merge bitcoin#21795: fuzz: Terminate immediately if a fuzzing harness tries to perform a DNS lookup (belt and suspenders) (MarcoFalke) f3bc953 Merge bitcoin#22187: test: Add sync_blocks in wallet_orphanedreward.py (MarcoFalke) 16ccb90 Merge bitcoin#21902: refactor: Remove useless extern keyword (fanquake) Pull request description: backport: Merge bitcoin#21902, 22187, 21795, 22902,(followup) 19940, 22121, 21353, 21936 Top commit has no ACKs. Tree-SHA512: 26de87da5d18fd36a38253a077131b36a278bc681bb47a9b893b6caad8520fc535b1675c3d79d312d455d710dd6ae7235d6cef1fb031a76e0559a200c2fc9b04
Configuration menu - View commit details
-
Copy full SHA for 45bdfa5 - Browse repository at this point
Copy the full SHA 45bdfa5View commit details -
Merge dashpay#5988: test: disable ipv6 tests for now
10a006e test: disable ipv6 tests for now (UdjinM6) Pull request description: ## Issue being fixed or feature implemented Our CI nodes on Amazon have issues running tests using ipv6. ## What was done? Pretend we don't have ipv6 when we run tests for now ## How Has This Been Tested? See CI results for this PR. ## Breaking Changes n/a but we'll have ipv6 not being tested for some time. ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: kwvg: ACK 10a006e PastaPastaPasta: utACK 10a006e Tree-SHA512: 75da180b916a5a99b1363f152494cbdd1031c7daf2d5eb370ca74547dee694ad04db3e9c677f0f738b9dbb15760d685a6b43b032dde642a4c1d49fff671e2aac
Configuration menu - View commit details
-
Copy full SHA for 0bb188a - Browse repository at this point
Copy the full SHA 0bb188aView commit details -
Merge bitcoin#22138: script: fix spelling linter raising spuriously o…
…n "invokable" 8050eb4 script: fix spelling linter raising spuriously on "invokable" (Jon Atack) Pull request description: "invokable" is a valid word that means to be callable, but the linter is raising on it: ``` $ test/lint/lint-spelling.sh contrib/guix/guix-attest:18: invokable ==> invocable contrib/guix/guix-clean:18: invokable ==> invocable contrib/guix/guix-verify:18: invokable ==> invocable ^ Warning: codespell identified likely spelling errors. Any false positives? Add them to the list of ignored words in test/lint/lint-spelling.ignore-words.txt ``` ACKs for top commit: MarcoFalke: cr ACK 8050eb4 Tree-SHA512: 43f8dc7b7adb00ae563ccfe04a64a7ceb50237f24ff87209062bf57b2564b4d38a409df80e0183aa4f40ab306b5e07d7a5fad1600d41705bd3c443ed66a6d1c1
Configuration menu - View commit details
-
Copy full SHA for 7bcc56c - Browse repository at this point
Copy the full SHA 7bcc56cView commit details -
Merge bitcoin#21939: refactor: Replace memset calls with array initia…
…lization 1c9255c refactor: Replace memset calls with array initialization (João Barbosa) Pull request description: Follow up to bitcoin#21905 (review). ACKs for top commit: laanwj: re-ACK 1c9255c Crypt-iQ: Code review ACK 1c9255c Tree-SHA512: 4b61dec2094f4781ef1c0427ee3bda3cfea12111274eebc7bc40a84f261d9c1681dd0860c57200bea2456588e44e8e0aecd18545c25f1f1250dd331ab7d05f28
Configuration menu - View commit details
-
Copy full SHA for 00b828c - Browse repository at this point
Copy the full SHA 00b828cView commit details -
Merge bitcoin-core/gui#163: Peer details: replace Direction with Conn…
…ection Type 06ba9b3 rpc: move getpeerinfo connection_type help to correct place (Jon Atack) c95fe6e gui: improve connection type tooltip (Hennadii Stepanov) 2c19ba2 gui: replace Direction with Connection Type in peer details (Jon Atack) 7e2beab gui: create GUIUtil::ConnectionTypeToQString utility function (Jon Atack) Pull request description: ![Screenshot from 2021-01-09 11-23-17](https://user-images.githubusercontent.com/2415484/104089297-c5e18d80-5265-11eb-9251-49afcfdb562b.png) Closes dashpay#159. ACKs for top commit: hebasto: re-ACK 06ba9b3, the tooltip content is organized as unordered list. jarolrod: re-ACK 06ba9b3 Tree-SHA512: 24f46494ceb42ed308e4a4f2a543dbc4f4e6409a6f738c145a9f16e175bf69d411cbc944a4fd969f1829d57644dfbc194182fa8d4e9e6bce82acbeca8c673748
Configuration menu - View commit details
-
Copy full SHA for b8b3c4c - Browse repository at this point
Copy the full SHA b8b3c4cView commit details -
Merge bitcoin#20373: refactor, net: Increase CNode data member encaps…
…ulation 3642b2e refactor, net: Increase CNode data member encapsulation (Hennadii Stepanov) acebb79 refactor, move-only: Relocate CNode private members (Hennadii Stepanov) Pull request description: All protected `CNode` data members could be private. ACKs for top commit: jnewbery: utACK 3642b2e MarcoFalke: review ACK 3642b2e 🏛 Tree-SHA512: 8435e3c43c3b7a3107d58cb809b8b5e1a1c0068677e249bdf0fc6ed24140ac4fc4efe2a280a1ee86df180d738c0c9e10772308690607954db6713000cf6e728d
Configuration menu - View commit details
-
Copy full SHA for 4d20cb7 - Browse repository at this point
Copy the full SHA 4d20cb7View commit details -
Merge bitcoin#22144: Randomize message processing peer order
79c02c8 Randomize message processing peer order (Pieter Wuille) Pull request description: Right now, the message handling loop iterates the list of nodes always in the same order: the order they were connected in (see the `vNodes` vector). For some parts of the net processing logic, this order matters. Transaction requests are assigned explicitly to peers since bitcoin#19988, but many other parts of processing work on a "first-served-by-loop-first" basis, such as block downloading. If peers can predict this ordering, it may be exploited to cause delays. As there isn't anything particularly optimal about the current ordering, just make it unpredictable by randomizing. Reported by Crypt-iQ. ACKs for top commit: jnewbery: ACK 79c02c8 Crypt-iQ: ACK 79c02c8 sdaftuar: utACK 79c02c8 achow101: Code Review ACK 79c02c8 jamesob: crACK bitcoin@79c02c8 jonatack: ACK 79c02c8 vasild: ACK 79c02c8 theStack: ACK 79c02c8 Tree-SHA512: 9a87c4dcad47c2d61b76c4f37f59674876b78f33f45943089bf159902a23e12de7a5feae1a73b17cbc3f2e37c980ecf0f7fd86af9e6fa3a68099537a3c82c106
Configuration menu - View commit details
-
Copy full SHA for 366ca98 - Browse repository at this point
Copy the full SHA 366ca98View commit details -
Merge bitcoin#22013: net: ignore block-relay-only peers when skipping…
… DNS seed fe3d17d net: ignore block-relay-only peers when skipping DNS seed (Anthony Towns) Pull request description: Since bitcoin#17428 bitcoind will attempt to reconnect to two block-relay-only anchors before doing any other outbound connections. When determining whether to use DNS seeds, it will currently see these two peers and decide "we're connected to the p2p network, so no need to lookup DNS" -- but block-relay-only peers don't do address relay, so if your address book is full of invalid addresses (apart from your anchors) this behaviour will prevent you from recovering from that situation. This patch changes it so that it only skips use of DNS seeds when there are two full-outbound peers, not just block-relay-only peers. ACKs for top commit: Sjors: utACK fe3d17d amitiuttarwar: ACK fe3d17d, this impacts the very common case where we stop/start a node, persisting anchors & have a non-empty addrman (although, to be clear, wouldn't be particularly problematic in the common cases where the addrman has valid addresses) mzumsande: ACK fe3d17d jonatack: ACK fe3d17d prayank23: tACK bitcoin@fe3d17d Tree-SHA512: 9814b0d84321d7f45b5013eb40c420a0dd93bf9430f5ef12dce50d1912a18d5de2070d890a8c6fe737a3329b31059b823bc660b432d5ba21f02881dc1d951e94
Configuration menu - View commit details
-
Copy full SHA for 74b20eb - Browse repository at this point
Copy the full SHA 74b20ebView commit details -
Merge bitcoin#21719: refactor: Add and use EnsureConnman in rpc code
fafb68a refactor: Add and use EnsureConnman in rpc code (MarcoFalke) faabeb8 refactor: Mark member functions const (MarcoFalke) Pull request description: This removes the 10 occurrences of `throw JSONRPCError(RPC_CLIENT_P2P_DISABLED, "Error: Peer-to-peer functionality missing or disabled");` and replaces them with `EnsureConnman`. ACKs for top commit: jarolrod: re-ACK fafb68a theStack: ACK fafb68a ryanofsky: Code review ACK fafb68a Tree-SHA512: 84c63cfe31e548645d906f7191a3526c7bea99ed0d54c2a75c2041452a44fe149ede343d8e1943b0e7770816c828bb047dfec8bc541a1f2b89920a126ee54d68
Configuration menu - View commit details
-
Copy full SHA for 751c9e6 - Browse repository at this point
Copy the full SHA 751c9e6View commit details -
Merge bitcoin#20786: net: [refactor] Prefer integral types in CNodeStats
faecb74 Expose integral m_conn_type in CNodeStats, remove m_conn_type_string (Jon Atack) Pull request description: Currently, strings are stored for what are actually integral (strong) enum types. This is fine, because the strings are only used as-is for the debug log and RPC. However, it complicates using them in the GUI. User facing strings in the GUI should be translated and only string literals can be picked up for translation, not runtime `std::string`s. Fix that by removing the `std::string` members and replace them by strong enum integral types. ACKs for top commit: jonatack: Code review ACK faecb74 theStack: Code review ACK faecb74 🌲 Tree-SHA512: 24df2bd0645432060e393eb44b8abaf20fe296457d07a867b0e735c3e2e75af7b03fc6bfeca734ec33ab816a7c8e1f8591a5ec342f3afe3098a4e41f5c2cfebb
Configuration menu - View commit details
-
Copy full SHA for 18169f4 - Browse repository at this point
Copy the full SHA 18169f4View commit details -
Merge dashpay#5983: backport: Merge bitcoin#22138, 21939, bitcoin-cor…
…e/gui#163, 20373, 22144, 22013, 21719, 20786 18169f4 Merge bitcoin#20786: net: [refactor] Prefer integral types in CNodeStats (MarcoFalke) 751c9e6 Merge bitcoin#21719: refactor: Add and use EnsureConnman in rpc code (MarcoFalke) 74b20eb Merge bitcoin#22013: net: ignore block-relay-only peers when skipping DNS seed (fanquake) 366ca98 Merge bitcoin#22144: Randomize message processing peer order (fanquake) 4d20cb7 Merge bitcoin#20373: refactor, net: Increase CNode data member encapsulation (MarcoFalke) b8b3c4c Merge bitcoin-core/gui#163: Peer details: replace Direction with Connection Type (MarcoFalke) 00b828c Merge bitcoin#21939: refactor: Replace memset calls with array initialization (W. J. van der Laan) 7bcc56c Merge bitcoin#22138: script: fix spelling linter raising spuriously on "invokable" (MarcoFalke) Pull request description: bitcoin backports Top commit has no ACKs. Tree-SHA512: 28dd3c672be847a376aaf1683a665b658b132364b4903fa360810dead7f30bd6496c231b6496e55572e09f1908febdba385d863e5e1d714cb784cc4350126be9
Configuration menu - View commit details
-
Copy full SHA for 6194e45 - Browse repository at this point
Copy the full SHA 6194e45View commit details -
bench: drop leftover
boost::lexical_cast
benches, drop header from ……list `boost::lexical_cast` isn't used anywhere in Dash Core, the sole remaining use being in a benchmark, despite it no longer being used in Dash Core. Let's drop the benchmark and drop `boost/lexical_cast.hpp` from allowed Boost headers
Configuration menu - View commit details
-
Copy full SHA for c47e9e7 - Browse repository at this point
Copy the full SHA c47e9e7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9ae39f9 - Browse repository at this point
Copy the full SHA 9ae39f9View commit details -
init: use local ArgsManager variable instead of global when possible
We don't touch `CleanupBlockRevFiles` as the function is moved to blockstorage in bitcoin#21727, where it would need access to the global. GetBlocksDirPath() is non-const and invocations of that aren't included either.
Configuration menu - View commit details
-
Copy full SHA for fbc6bc8 - Browse repository at this point
Copy the full SHA fbc6bc8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 65585e6 - Browse repository at this point
Copy the full SHA 65585e6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3265b54 - Browse repository at this point
Copy the full SHA 3265b54View commit details -
Configuration menu - View commit details
-
Copy full SHA for 740d25c - Browse repository at this point
Copy the full SHA 740d25cView commit details -
Merge dashpay#5986: trivial: remove boost::{function, lexical_cast} u…
…sage, backport bitcoin#25550, bitcoin#24624, bitcoin#24406, cleanup some gArgs usage in init 740d25c merge bitcoin#24406: Fix Wambiguous-reversed-operator compiler warnings (Kittywhiskers Van Gogh) 3265b54 merge bitcoin#24624: Avoid potential -Wdeprecated-enum-enum-conversion warnings (Kittywhiskers Van Gogh) 65585e6 merge bitcoin#25550: remove note on arm cross-compilation from build-unix.md (Kittywhiskers Van Gogh) fbc6bc8 init: use local ArgsManager variable instead of global when possible (Kittywhiskers Van Gogh) 9ae39f9 qt: drop leftover `boost::function` usage in Qt, drop header from list (Kittywhiskers Van Gogh) c47e9e7 bench: drop leftover `boost::lexical_cast` benches, drop header from list (Kittywhiskers Van Gogh) Pull request description: ## Additional Information When building Dash with `clang-16`, I use the following `CXXFLAGS`: ``` -Werror -Werror=reorder -Werror=thread-safety -Wno-unused-command-line-argument -Wno-deprecated-builtins -Wno-deprecated-volatile -Wno-ambiguous-reversed-operator -Wno-deprecated-enum-enum-conversion ``` The explanations of the `-Wno*` flags are as follows: | Argument | Reason | | -------------------------------------- | ------------------------------------------------------------ | | `-Wno-unused-command-line-argument` | Lingering use of `-static-libstdc++`, a GCC-ism that isn't recognized as a valid argument in Clang (no longer an issue thanks to dashpay#5958, thanks knst!) | | `-Wno-deprecated-builtins` | Due to usage of [deprecated builtins](https://github.com/dashpay/dash/blob/2dacfb08bdf02fdaf0740edac19435bfaa0e52d3/src/bench/nanobench.h#L104-L110) in `nanobench` that exist even in the [most current version](https://github.com/martinus/nanobench/blob/a5a50c2b33eea2ff1fcb355cacdface43eb42b25/src/include/nanobench.h#L115-L121) (see below) | | `-Wno-deprecated-volatile` | The detection code for C++20 in the CI image (based on Ubuntu `focal`) relies on deprecated volatiles (see below) | | `-Wno-ambiguous-reversed-operator` | Due to an ambiguous operator in a Dash unit test ([source](https://github.com/dashpay/dash/blob/2dacfb08bdf02fdaf0740edac19435bfaa0e52d3/src/test/fuzz/addrman.cpp#L145)) (see below) | | `-Wno-deprecated-enum-enum-conversion` | Due to key combination code in Dash Qt ([source](https://github.com/dashpay/dash/blob/2dacfb08bdf02fdaf0740edac19435bfaa0e52d3/src/qt/bitcoingui.cpp#L376)) (see below) | <details> <summary>-Wno-deprecated-builtins</summary> ``` > make Making all in src make[1]: Entering directory '/src/dash/src' make[2]: Entering directory '/src/dash/src' make[3]: Entering directory '/src/dash' make[3]: Leaving directory '/src/dash' CXX bench/bench_dash-addrman.o In file included from bench/addrman.cpp:6: In file included from ./bench/bench.h:16: ./bench/nanobench.h:952:13: error: builtin __has_trivial_copy is deprecated; use __is_trivially_copyable instead [-Werror,-Wdeprecated-builtins] return !ANKERL_NANOBENCH_IS_TRIVIALLY_COPYABLE(Decayed) || sizeof(Decayed) > sizeof(long) || std::is_pointer<Decayed>::value; ^ ./bench/nanobench.h:107:57: note: expanded from macro 'ANKERL_NANOBENCH_IS_TRIVIALLY_COPYABLE' # define ANKERL_NANOBENCH_IS_TRIVIALLY_COPYABLE(...) __has_trivial_copy(__VA_ARGS__) ^ 1 error generated. make[2]: *** [Makefile:14567: bench/bench_dash-addrman.o] Error 1 make[2]: Leaving directory '/src/dash/src' make[1]: *** [Makefile:18568: all-recursive] Error 1 make[1]: Leaving directory '/src/dash/src' make: *** [Makefile:800: all-recursive] Error 1 ``` </details> <details> <summary>-Wno-deprecated-volatile</summary> ``` > ./configure [...] [...] checking whether clang++-16 supports C++20 features with -h std=c++20... no checking whether clang++-16 supports C++20 features with -std=c++2a... no checking whether clang++-16 supports C++20 features with +std=c++2a... no checking whether clang++-16 supports C++20 features with -h std=c++2a... no configure: error: *** A compiler with support for C++20 language features is required. > cat config.log This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Dash Core configure 21.0.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ ./configure --prefix=/src/dash/depends/x86_64-pc-linux-gnu --enable-zmq --enable-reduce-exports --disable-crash-hooks --disable-stacktraces --enable-c++20 --enable-suppress-external-warnings --enable-debug --disable-ccache --with-sanitizers=thread [...] configure:4450: checking whether clang++-16 accepts -g configure:4470: clang++-16 -c -g -I/src/dash/depends/x86_64-pc-linux-gnu/include/ -DDEBUG_LOCKORDER -DENABLE_DASH_DEBUG -DARENA_DEBUG conftest.cpp >&5 configure:4470: $? = 0 configure:4511: result: yes configure:4537: checking whether make supports the include directive configure:4552: make -f confmf.GNU && cat confinc.out this is the am__doit target configure:4555: $? = 0 configure:4574: result: yes (GNU style) configure:4599: checking dependency style of clang++-16 configure:4710: result: gcc3 configure:4756: checking whether clang++-16 supports C++20 features with -std=c++20 configure:5558: clang++-16 -std=c++20 -c -pipe -O2 -Werror -Werror=reorder -Werror=thread-safety -Wno-deprecated-builtins -I/src/dash/depends/x86_64-pc-linux-gnu/include/ -DDEBUG_LOCKORDER -DENABLE_DASH_DEBUG -DARENA_DEBUG conftest.cpp >&5 conftest.cpp:109:36: error: volatile-qualified parameter type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile] test(const int c, volatile int v) // 'volatile is deprecated in C++20' ^ 1 error generated. ``` </details> <details> <summary>-Wno-ambiguous-reversed-operator</summary> ``` > make Making all in src make[1]: Entering directory '/src/dash/src' make[2]: Entering directory '/src/dash/src' make[3]: Entering directory '/src/dash' make[3]: Leaving directory '/src/dash' [...] CXX test/fuzz/fuzz-addrman.o test/fuzz/addrman.cpp:329:22: error: ISO C++20 considers use of overloaded operator '==' (with operand types 'CAddrManDeterministic' and 'CAddrManDeterministic') to be ambiguous despite there being a unique best viable function [-Werror,-Wambiguous-reversed-operator] assert(addr_man1 == addr_man2); ~~~~~~~~~ ^ ~~~~~~~~~ /usr/include/assert.h:93:27: note: expanded from macro 'assert' (static_cast <bool> (expr) \ ^~~~ test/fuzz/addrman.cpp:145:10: note: ambiguity is between a regular call to this operator and a call with the argument order reversed bool operator==(const CAddrManDeterministic& other) ^ test/fuzz/addrman.cpp:145:10: note: mark 'operator==' as const or add a matching 'operator!=' to resolve the ambiguity 1 error generated. make[2]: *** [Makefile:15393: test/fuzz/fuzz-addrman.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/src/dash/src/dashbls' make[2]: Leaving directory '/src/dash/src' make[1]: *** [Makefile:18568: all-recursive] Error 1 make[1]: Leaving directory '/src/dash/src' make: *** [Makefile:800: all-recursive] Error 1 ``` </details> <details> <summary>-Wno-deprecated-enum-enum-conversion</summary> ``` > make Making all in src make[1]: Entering directory '/src/dash/src' make[2]: Entering directory '/src/dash/src' make[3]: Entering directory '/src/dash' make[3]: Leaving directory '/src/dash' [...] CXX qt/libbitcoinqt_a-bitcoingui.o qt/bitcoingui.cpp:376:51: error: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') is deprecated [-Werror,-Wdeprecated-enum-enum-conversion] quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q)); ~~~~~~~~ ^ ~~~~~~~~~ qt/bitcoingui.cpp:609:56: error: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') is deprecated [-Werror,-Wdeprecated-enum-enum-conversion] minimize_action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_M)); ~~~~~~~~ ^ ~~~~~~~~~ 2 errors generated. make[2]: *** [Makefile:12803: qt/libbitcoinqt_a-bitcoingui.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory '/src/dash/src' make[1]: *** [Makefile:18568: all-recursive] Error 1 make[1]: Leaving directory '/src/dash/src' make: *** [Makefile:800: all-recursive] Error 1 ``` </details> This pull request removes the need for the last two `-Wno*` flags, removes some leftover `boost::`{`function`, `lexical_cast`} usage and some `gArgs` usage where a local variable would be more applicable. Additionally, in some builds, there is an deprecation warning (`-Wdeprecation`) for using `[=]` and relying on its implicit capture of `this` (see below), this can be seen during GCC builds but not Clang builds and correspond to a proposal to the C++20 standard ([proposal](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0806r2.html)). It has also been mentioned at https://en.cppreference.com/w/cpp/language/lambda, "The implicit capture of `*this` when the capture default is `=` is deprecated. _(since C++20)_". This has also been remedied as part of this PR. <details> <summary>-Wdeprecated</summary> ``` > make -j10 [...] CXX qt/libbitcoinqt_a-trafficgraphwidget.o qt/optionsdialog.cpp: In lambda function: qt/optionsdialog.cpp:195:63: warning: implicit capture of 'this' via '[=]' is deprecated in C++20 [-Wdeprecated] 195 | connect(appearance, &AppearanceWidget::appearanceChanged, [=](){ | ^ qt/optionsdialog.cpp:195:63: note: add explicit 'this' or '*this' capture qt/optionsdialog.cpp: In lambda function: qt/optionsdialog.cpp:277:55: warning: implicit capture of 'this' via '[=]' is deprecated in C++20 [-Wdeprecated] 277 | connect(ui->coinJoinEnabled, &QCheckBox::clicked, [=](bool fChecked) { | ^ qt/optionsdialog.cpp:277:55: note: add explicit 'this' or '*this' capture qt/optionsdialog.cpp: In lambda function: qt/optionsdialog.cpp:293:45: warning: implicit capture of 'this' via '[=]' is deprecated in C++20 [-Wdeprecated] 293 | connect(this, &OptionsDialog::rejected, [=]() { | ^ qt/optionsdialog.cpp:293:45: note: add explicit 'this' or '*this' capture CXX qt/libbitcoinqt_a-utilitydialog.o CXX qt/libbitcoinqt_a-addressbookpage.o [...] ``` </details> ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)** - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK 740d25c knst: utACK 740d25c Tree-SHA512: 52793f9862192ccb556debcac2ec766c4f86e69ec4bedc2fdbaaff965ab4ac478b65b3983b1cb3a92610db85aee6f8668b0ded3494c617c5af7d8801284e461b
Configuration menu - View commit details
-
Copy full SHA for 5c240bb - Browse repository at this point
Copy the full SHA 5c240bbView commit details -
Merge bitcoin#21792: test: Fix intermittent issue in p2p_segwit.py
fad6269 test: Assert that exit code indicates failure (MarcoFalke) faecb72 test: Fix intermittent issue in p2p_segwit.py (MarcoFalke) Pull request description: Calling `start_node` might call `wait_for_rpc_connection`, which will fail. https://cirrus-ci.com/task/5669555591708672?logs=ci#L3504 ``` File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/p2p_segwit.py", line 1974, in test_upgrade_after_activation self.start_node(2, extra_args=["-reindex", f"-segwitheight={SEGWIT_HEIGHT}"]) File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_framework.py", line 508, in start_node node.wait_for_rpc_connection() File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_node.py", line 224, in wait_for_rpc_connection raise FailedToStartError(self._node_msg( test_framework.test_node.FailedToStartError: [node 2] bitcoind exited with status 1 during initialization ACKs for top commit: jnewbery: ACK fad6269 dhruv: ACK fad6269 Tree-SHA512: 4c5e39ce25e135717ea433258518f93f09d1c528c4538a8627d3da13bc0c0ba4b45911703c26392ff0f5e0cb7831a6c7cc53e6e29102d3da9c8cfce7cef333cc
Configuration menu - View commit details
-
Copy full SHA for b2d8893 - Browse repository at this point
Copy the full SHA b2d8893View commit details -
Merge bitcoin-core/gui#284: refactor: Simplify SendCoinsDialog::updat…
…eCoinControlState 5f438d6 refactor, qt: Simplify SendCoinsDialog::updateCoinControlState (João Barbosa) Pull request description: This PR doesn't change behaviour, removes the coin control argument from `updateCoinControlState` since it's a class member. ACKs for top commit: hebasto: ACK 5f438d6, I have reviewed the code and it looks OK, I agree it can be merged. jonatack: Code review ACK 5f438d6 kristapsk: utACK 5f438d6. Code looks correct. Tree-SHA512: 14abaa3d561f8c8854fed989b6aca886dcca42135880bac76070043f61c0042ec8967f2b83e50bbbb82050ef0f074209e97fa300cb4dc51ee182316e0846506d
Configuration menu - View commit details
-
Copy full SHA for a63f9c3 - Browse repository at this point
Copy the full SHA a63f9c3View commit details -
Merge bitcoin#21714: refactor: Drop CCoinControl::SetNull
c5a470e refactor: Drop CCoinControl::SetNull (João Barbosa) Pull request description: The only external call to `SetNull` is changed as follow ```diff - m_coin_control->SetNull(); + m_coin_control = std::make_unique<CCoinControl>(); ``` ACKs for top commit: theStack: Code-Review ACK c5a470e MarcoFalke: review ACK c5a470e 🍤 Tree-SHA512: 2588828720cdcf405fc4fb06f2aa17ad4eef2a645e12d820311006127e732258dd084993f17f23742f8e7f782e18289a6199dcec3690efc9b92458f90b816a8f
Configuration menu - View commit details
-
Copy full SHA for de4d2a8 - Browse repository at this point
Copy the full SHA de4d2a8View commit details -
Merge bitcoin#21814: test: Fix feature_config_args.py intermittent issue
fab1eb6 test: Fix feature_config_args.py intermittent issue (MarcoFalke) Pull request description: Fix bitcoin#21448 ACKs for top commit: laanwj: Code review ACK fab1eb6 Tree-SHA512: cad9f684f43aa801d0c1cb5f1684ffa624df1216be225cea46b1389ba2b67cbd6159ffb786fe144bf1ca865623dd9a10289d4293cfabb678bdb243d4ea00734d
Configuration menu - View commit details
-
Copy full SHA for 71f23d6 - Browse repository at this point
Copy the full SHA 71f23d6View commit details -
Merge bitcoin#21681: validation: fix ActivateSnapshot to use hardcode…
…d nChainTx 91d93aa validation: remove nchaintx from assumeutxo metadata (James O'Beirne) 931684b validation: fix ActivateSnapshot to use hardcoded nChainTx (James O'Beirne) Pull request description: This fixes an oversight from the move of nChainTx from the user-supplied snapshot metadata into the hardcoded assumeutxo chainparams. Since the nChainTx is now unused in the metadata, it should be removed in a future commit. See: bitcoin#19806 (comment) ACKs for top commit: Sjors: utACK 91d93aa ryanofsky: Code review ACK 91d93aa. No change to previous commit, just new commit removing now unused utxo snapshot field and updating tests. Tree-SHA512: 445bdd738faf007451f40bbcf360dd1fb4675e17a4c96546e6818c12e33dd336dadd95cf8d4b5f8df1d6ccfbc4bf5496864bb5528e416cea894857b6b732140c
Configuration menu - View commit details
-
Copy full SHA for a02a2c0 - Browse repository at this point
Copy the full SHA a02a2c0View commit details -
Merge bitcoin#21874: fuzz: Add WRITE_ALL_FUZZ_TARGETS_AND_ABORT
fa5cb6b fuzz: Add WRITE_ALL_FUZZ_TARGETS_AND_ABORT (MarcoFalke) Pull request description: This is needed when stdout is polluted by the fuzz engine. stderr can't be used instead because it is polluted by aborting the program. Top commit has no ACKs. Tree-SHA512: bf0a2a6bcd964ff1f0f3ef6e7e297b4c780430c4d6312332ed99ace0e1c58243c1483fd387e39405837d39b36072dfeb9ae03d2a7aa728ad6955159754fd5766
Configuration menu - View commit details
-
Copy full SHA for 51633d7 - Browse repository at this point
Copy the full SHA 51633d7View commit details -
Merge bitcoin#21884: fuzz: Remove unused --enable-danger-fuzz-link-al…
…l option fa27d6d fuzz: Remove unused --enable-danger-fuzz-link-all option (MarcoFalke) Pull request description: Remove the unused build option, which was *dangerous* (as the name implies). Also remove the fuzzbuzz config, which was never used as part of this repo and seems redundant now that we integrate with oss-fuzz. ACKs for top commit: practicalswift: cr ACK fa27d6d: patch looks correct and rationale makes sense hebasto: ACK fa27d6d, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: 9bd65ed6a76d13d8d9c7a88aaae30f701215d5d0619693a3115d5ec350808aaf6a1aa4737466a5b96f3948513ec4d063808fe16219818366720e247880a15177
Configuration menu - View commit details
-
Copy full SHA for eeec2f2 - Browse repository at this point
Copy the full SHA eeec2f2View commit details -
Merge bitcoin#21749: test: Bump shellcheck version
08f3dbb test: Bump shellcheck version (Hennadii Stepanov) Pull request description: The changelog for v0.7.2 is available [here](https://github.com/koalaman/shellcheck/blob/v0.7.2/CHANGELOG.md). Only [SC2268](https://github.com/koalaman/shellcheck/wiki/SC2268) requires to update our code. ACKs for top commit: jarolrod: ACK 08f3dbb Tree-SHA512: 4585cd1f4d9def2fbaafe5a2a57761288d432781eb8c6c6d37064727d7ca8fc3f35c552e6a2ffdf0820d753d4bde2c8e43e5f3f57d242f5f57591a9b1b03558d
Configuration menu - View commit details
-
Copy full SHA for ecade9b - Browse repository at this point
Copy the full SHA ecade9bView commit details -
Merge bitcoin#21377: Speedy trial support for versionbits
ffe33df chainparams: drop versionbits threshold to 90% for mainnnet and signet (Anthony Towns) f054f6b versionbits: simplify state transitions (Anthony Towns) 55ac5f5 versionbits: Add explicit NEVER_ACTIVE deployments (Anthony Towns) dd07e6d fuzz: test versionbits delayed activation (Anthony Towns) dd85d54 tests: test versionbits delayed activation (Anthony Towns) 73d4a70 versionbits: Add support for delayed activation (Anthony Towns) 9e6b65f tests: clean up versionbits test (Anthony Towns) 5932744 tests: test ComputeBlockVersion for all deployments (Anthony Towns) 63879f0 tests: pull ComputeBlockVersion test into its own function (Anthony Towns) Pull request description: BIP9-based implementation of "speedy trial" activation specification, see https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-March/018583.html Edge cases are tested by fuzzing added in bitcoin#21380. ACKs for top commit: instagibbs: tACK bitcoin@ffe33df jnewbery: utACK ffe33df MarcoFalke: review ACK ffe33df 💈 achow101: re-ACK ffe33df gmaxwell: ACK ffe33df benthecarman: ACK ffe33df Sjors: ACK ffe33df jonatack: Initial approach ACK ffe33df after a first pass of review, building and testing each commit, mostly looking at the changes and diffs. Will do a more high-level review iteration. A few minor comments follow to pick/choose/ignore. ariard: Code Review ACK ffe33df Tree-SHA512: f79a7146b2450057ee92155cbbbcec12cd64334236d9239c6bd7d31b32eec145a9781c320f178da7b44ababdb8808b84d9d22a40e0851e229ba6d224e3be747c
Configuration menu - View commit details
-
Copy full SHA for 5191138 - Browse repository at this point
Copy the full SHA 5191138View commit details -
feat: new command line argument -bip147height for bitcoin#21373
This command line argument is substitute for -segwitheight so far as dash does not have a segwit feature
Configuration menu - View commit details
-
Copy full SHA for a933a60 - Browse repository at this point
Copy the full SHA a933a60View commit details -
Merge bitcoin#21373: test: generate fewer blocks in feature_nulldummy…
… to fix timeouts, speed up ccd976d test: use 327 fewer blocks in feature_nulldummy (Jon Atack) 68c280f test, refactor: abstract the feature_nulldummy blockheight values (Jon Atack) Pull request description: The resolved timeout issue seen in the CI can be reproduced locally by running `test/functional/feature_nulldummy.py --valgrind --loglevel=debug` Speeds up the normal test runtime for me from 3.8 to 2.2 seconds (debug build). Thanks to Marco Falke for the approach suggestion. ACKs for top commit: AnthonyRonning: reACK ccd976d - ran a few times with the rest of the tests and still passing for me with just the fewer block change. MarcoFalke: review ACK ccd976d 🏝 Tree-SHA512: 38339dca4276d1972e3a5a5ee436da64e9e58fd3b50b186e34b07ade9523ac4c03f6c3869c5f2a59c23b43c44f87e712f8297a01a8d83202049c081e3eeb4445
Configuration menu - View commit details
-
Copy full SHA for 7cc77f3 - Browse repository at this point
Copy the full SHA 7cc77f3View commit details -
net: use ForEachNode instead of manually iterating through vNodes
ForEachNode is publicly available, which will help us extract the functions from CConnman in a subsequent commit
Configuration menu - View commit details
-
Copy full SHA for d54ba44 - Browse repository at this point
Copy the full SHA d54ba44View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0323c6c - Browse repository at this point
Copy the full SHA 0323c6cView commit details -
Configuration menu - View commit details
-
Copy full SHA for c3f1ac2 - Browse repository at this point
Copy the full SHA c3f1ac2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 313a7e9 - Browse repository at this point
Copy the full SHA 313a7e9View commit details -
Configuration menu - View commit details
-
Copy full SHA for bfd33cd - Browse repository at this point
Copy the full SHA bfd33cdView commit details -
llmq: pass PeerManager to llmq::CInstantSendManager constructor
Required to avoid crashes when calling RelayInvFiltered in situations where the PeerManager* atomic hasn't been set (possible when ProcessMessage isn't called, leaving the value unset, while a separate thread traverses the ProcessPendingInstantSendLocks > ProcessPendingInstantSendLocks[1] > ProcessInstantSendLock > RelayInvFiltered call chain). [1] - There is a function with the exact same name but with multiple arguments
Configuration menu - View commit details
-
Copy full SHA for 35be4e2 - Browse repository at this point
Copy the full SHA 35be4e2View commit details -
Configuration menu - View commit details
-
Copy full SHA for f2fe39f - Browse repository at this point
Copy the full SHA f2fe39fView commit details -
Configuration menu - View commit details
-
Copy full SHA for f5f8bd9 - Browse repository at this point
Copy the full SHA f5f8bd9View commit details -
Merge dashpay#5994: doc: replace gfd() function to recommendation to …
…use `git diff-range` f5f8bd9 doc: replace gfd() function to recommendation to use `git diff-range` (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented `gfd` is less convenient to use, `git range-diff` is more functional. Dropped recommendation to use it. ## What was done? Updated `CONTRIBUTION.md` file ## How Has This Been Tested? Run `git range-diff` to ensure that it indeed works ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone Top commit has no ACKs. Tree-SHA512: 08663e5371753b6851b216da66ef72bb6bfb80acd42c31c57de9f8d52f00766e3121adf960e27236451d6520088f0c2c927f5f4f3001a40c591feb62074951e0
Configuration menu - View commit details
-
Copy full SHA for 2610df3 - Browse repository at this point
Copy the full SHA 2610df3View commit details
Commits on Apr 24, 2024
-
Merge dashpay#5977: refactor: move CConnman::RelayInv{Filtered} to Pe…
…erManager, remove CConnman::RelayTransaction f2fe39f trivial: add `Asserts` for `m_peerman` pointer container uses (Kittywhiskers Van Gogh) 35be4e2 llmq: pass PeerManager to llmq::CInstantSendManager constructor (Kittywhiskers Van Gogh) bfd33cd net: move CConnman::RelayInv{Filtered} into PeerManager (Kittywhiskers Van Gogh) 313a7e9 trivial: cleanup unnecessary headers in context files (Kittywhiskers Van Gogh) c3f1ac2 net: retire CConnman::RelayTransaction, use PeerManager::RelayTransaction (Kittywhiskers Van Gogh) 0323c6c net: move Relay{Inv, InvFiltered, Transaction} out of CConnman (Kittywhiskers Van Gogh) d54ba44 net: use ForEachNode instead of manually iterating through vNodes (Kittywhiskers Van Gogh) Pull request description: ## Additional information * Dependency for dashpay#5982 * Unfortunately, we are stuck with using the `unique_ptr` const-ref of `PeerManager` for initializing {`CJ`, `LLMQ`}`Context` due to some unit tests depending on Dash-specific entities but based on a testing setup that doesn't initialize `PeerManager` (specifically `validation_chainstatemanager_tests`, which uses `ChainTestingSetup`, as opposed to `TestingSetup`, which initializes `PeerManager`). Attempting to dereference it earlier will result in crashing (see CI pipeline [here](https://gitlab.com/dashpay/dash/-/pipelines/1245924304)) ## Breaking Changes None observed. ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: re-utACK [f2fe39f](dashpay@f2fe39f) knst: utACK [f2fe39f](dashpay@f2fe39f) Tree-SHA512: 5e9ca47ba9f7f0c5fdc93bf6cfd99d91be6d134610d2bd3dccde17443a956c7d8848b3406082ee8b6ee3fd25f586ce7bac45bc89b568424479b8fc149172ae51
Configuration menu - View commit details
-
Copy full SHA for 2b1c165 - Browse repository at this point
Copy the full SHA 2b1c165View commit details -
Merge dashpay#5985: backport: bitcoin#21373, bitcoin#21377, bitcoin#2…
…1681, bitcoin#21714, bitcoin#21749, bitcoin#21792, bitcoin#21814, bitcoin#21874, bitcoin#21884, bitcoin-core/gui#284 7cc77f3 Merge bitcoin#21373: test: generate fewer blocks in feature_nulldummy to fix timeouts, speed up (MarcoFalke) a933a60 feat: new command line argument -bip147height for bitcoin#21373 (Konstantin Akimov) 5191138 Merge bitcoin#21377: Speedy trial support for versionbits (fanquake) ecade9b Merge bitcoin#21749: test: Bump shellcheck version (W. J. van der Laan) eeec2f2 Merge bitcoin#21884: fuzz: Remove unused --enable-danger-fuzz-link-all option (fanquake) 51633d7 Merge bitcoin#21874: fuzz: Add WRITE_ALL_FUZZ_TARGETS_AND_ABORT (MarcoFalke) a02a2c0 Merge bitcoin#21681: validation: fix ActivateSnapshot to use hardcoded nChainTx (MarcoFalke) 71f23d6 Merge bitcoin#21814: test: Fix feature_config_args.py intermittent issue (MarcoFalke) de4d2a8 Merge bitcoin#21714: refactor: Drop CCoinControl::SetNull (MarcoFalke) a63f9c3 Merge bitcoin-core/gui#284: refactor: Simplify SendCoinsDialog::updateCoinControlState (Hennadii Stepanov) b2d8893 Merge bitcoin#21792: test: Fix intermittent issue in p2p_segwit.py (MarcoFalke) Pull request description: ## Issue being fixed or feature implemented Regular batch of backports from bitcoin v22 ## What was done? Implemented new commandline argument `-bip147height` for RegTest. Backports: - bitcoin#21377 - bitcoin#21792 - bitcoin-core/gui#284 - bitcoin#21714 - bitcoin#21373 - bitcoin#21814 - bitcoin#21681 - bitcoin#21874 - bitcoin#21884 - bitcoin#21749 ## How Has This Been Tested? Run unit/functional tests ## Breaking Changes n/a ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: PastaPastaPasta: utACK 7cc77f3 Tree-SHA512: d46218667430af19c445d67d6411b1e7f19920e85f86e6e74ae7b9062aeb3763637a8613587c203ba8d285ccc3ee755f936141010944cfae8627397e8b8584d3
Configuration menu - View commit details
-
Copy full SHA for 27b2e5c - Browse repository at this point
Copy the full SHA 27b2e5cView commit details
Commits on Apr 25, 2024
-
Merge bitcoin#21750: net: remove unnecessary check of CNode::cs_vSend
9096b13 net: remove unnecessary check of CNode::cs_vSend (Vasil Dimov) Pull request description: It is not possible to have a node in `CConnman::vNodesDisconnected` and its reference count to be incremented - all `CNode::AddRef()` are done either before the node is added to `CConnman::vNodes` or while holding `CConnman::cs_vNodes` and the object being in `CConnman::vNodes`. So, the object being in `CConnman::vNodesDisconnected` and its reference count being zero means that it is not and will not start to be used by other threads. So, the lock of `CNode::cs_vSend` in `CConnman::DisconnectNodes()` will always succeed and is not necessary. Indeed all locks of `CNode::cs_vSend` are done either when the reference count is >0 or under the protection of `CConnman::cs_vNodes` and the node being in `CConnman::vNodes`. ACKs for top commit: MarcoFalke: review ACK 9096b13 🏧 jnewbery: utACK 9096b13 Tree-SHA512: 910899cdcdc8934642eb0c40fcece8c3b01b7e20a0b023966b9d6972db6a885cb3a9a04e9562bae14d5833967e45e2ecb3687b94d495060c3da4b1f2afb0ac8f
Configuration menu - View commit details
-
Copy full SHA for e5eba11 - Browse repository at this point
Copy the full SHA e5eba11View commit details -
Merge bitcoin#21727: refactor: Move more stuff to blockstorage
fa09a9e style: Add { } to multi-line if (MarcoFalke) fadafab move-only: Move functions to blockstorage (MarcoFalke) fa7e64d move-only: Move constants to blockstorage (MarcoFalke) fa247a3 refactor: Move block storage globals to blockstorage (MarcoFalke) fa81c30 refactor: Move pruning/reindex/importing globals to blockstorage (MarcoFalke) Pull request description: See bitcoin#21575 ACKs for top commit: Sjors: ACK fa09a9e kiminuo: ACK fa09a9e laanwj: Code review ACK fa09a9e promag: Code review ACK fa09a9e. Since last review Tree-SHA512: 2eb6962ff44da6b77f3058fc02ec66ab742e25ae8dcc8ec62b062896571910d43ca7c4bb16fb3ccb5e5245195b8dec6384b6c8d442fa97ca28d93bdff347d677
Configuration menu - View commit details
-
Copy full SHA for 507041e - Browse repository at this point
Copy the full SHA 507041eView commit details -
Merge bitcoin#21856: doc: add OSS-Fuzz section to fuzzing.md doc
47c3ea0 doc: add OSS-Fuzz section to fuzzing.md doc (Adam Jonas) Pull request description: This adds documentation about [Bitcoin Core's participation](https://github.com/google/oss-fuzz/pull/5699/files) in Google's OSS-Fuzz program and adds the caveat that the project may not disclose vulnerabilities within the 90-day window described in the [program's disclosure guidelines](https://google.github.io/oss-fuzz/getting-started/bug-disclosure-guidelines/). ACKs for top commit: jonatack: ACK 47c3ea0 Tree-SHA512: 87bf0146fb74d1e4b3b8839e6c8f3d53046008a6d5b926ffe5b95be3c396a5e47e47967533422f60b04c4446482f49d210ada410b742f69781a7afde623d704d
Configuration menu - View commit details
-
Copy full SHA for f720703 - Browse repository at this point
Copy the full SHA f720703View commit details -
Merge bitcoin#21897: rpc: adjust incorrect RPCHelpMan types
7031721 rpc/listaddressgroupings: redefine inner-most array as ARR_FIXED (Karl-Johan Alm) 8500f7b rpc/createrawtransaction: redefine addresses as OBJ_USER_KEYS (Karl-Johan Alm) d9e2183 rpc: include OBJ_USER_KEY in RPCArg constructor checks (Karl-Johan Alm) Pull request description: This PR adjusts the two issues I encountered while developing a tool that converts RPCHelpMan objects into bindings for other language(s). The first is in createrawtransaction, where the address part, e.g. bc1qabc in > createrawtransaction '[]' '[{"bc1qabc": 1.0}]' is declared as a `Type::OBJ`, when in reality it should be a `Type::OBJ_USER_KEYS`, defined as such: https://github.com/bitcoin/bitcoin/blob/5925f1e652768a9502831b9ccf78d16cf3c37d29/src/rpc/util.h#L126 (coincidentally, this is the first and only (afaict) usage of this `RPCArg::Type`). The second is in the `listaddressgroupings` RPC, which returns an array of arrays of arrays, where the innermost one is a tuple-thingie with an optional 3rd item; this is an `ARR_FIXED`, not an `ARR`. ACKs for top commit: MarcoFalke: ACK 7031721 🐀 Tree-SHA512: 769377416c6226d1738a956fb685498e009f9e7eb2d45bc679b81c5364b9520fdbcb49392c937ab45598aa0d33589e8e6a59ccc101cf8d8e7dfdafd58d4eefd0
Configuration menu - View commit details
-
Copy full SHA for bd5dfca - Browse repository at this point
Copy the full SHA bd5dfcaView commit details