Only inbound nodes with this permission set will call
`SelectNodeToEvict()` with force=true, so when connections are full
there is an increased liklihood of opening a slot for the new inbound.
Extends NoBan permission.
Github-Pull: #27600
Rebased-From: 99399b3cbfef584df0444972834b22ce87aa63af
Add a validation for cli-side commands for the follwing cases:
* duplication of cli-command (and options: at the moment a user
can specify -rpcwallet many times, only the last one will be
taken into account,
* only 1 cli-command can run at a time (eg can't run -generate and
-getinfo at the same time),
* no params starting with slash "-" will be accepted after a cli-command
(this is the case for bitcoin-cli -generate 3 -rpcwallet=xyz).
Github-Pull: #26990
Rebased-From: 755320f75f2141909e84b62f420462c1c5b193e6
The primary objective is to provide users with clearer
and more informative error messages when encountering
the RPC_WALLET_NOT_SPECIFIED error, which occurs when
multiple wallets are loadad.
This commit also rectifies the error message consistency
by bringing the error message in line with the definition
established in protocol.h ("error when there are multiple
wallets loaded").
Github-Pull: #26990
Rebased-From: bf48c40c0ee62eb6343f8aff06a88322a33f2dd6
Otherwise, starting bitcoind twice may cause the `.cookie`
file generated by the first instance to be deleted by the
second instance shutdown (after failing to obtain a lock).
Github-Pull: #28784
Rebased-From: d95dde9441fb791046394ed3784a840a54ef2ab9
Currently the HTTP server initialization (`HTTPBindAddresses`) fails
only when *all* bindings fail. So if multiple binds are specified
(`127.0.0.1` and `::1` by defeault) and one succeeds and the other
fails, the latter is essentially ignored.
This commit changes the error behavior to fail *if not all* binds could
be performed, which I think is more in line with how software normally
handles this and what users expect.
This commits fixes a crash bug that can be caused with the following steps:
- change to the "Transactions" view
- right-click on an arbitrary transaction -> "Show transaction details"
- close the transaction detail window again
- select "Settings" -> "Mask values"
The problem is that the list of opened dialogs, tracked in the member
variable `m_opened_dialogs`, is only ever appended with newly opened
transaction detail dialog pointers, but never removed. This leads to
dangling pointers in the list, and if the "Mask values" menu item is
selected, a crash is caused in the course of trying to close the opened
transaction detail dialogs (see `closeOpenedDialogs()` method). Fix this
by removing the pointer from the list if the corresponding widget is
destroyed.
Github-Pull: https://github.com/bitcoin-core/gui/pull/774
Rebased-From: e26e665f9f
Before trying to unlock a wallet, first check if it has private keys
disabled. If so, there is no need to unlock.
Note that such wallets are not expected to occur in typical usage.
However bugs in previous versions allowed such wallets to be created,
and so we need to handle them.
Github-Pull: gui#773
Rebased-From: 517c7f9cba
The `ENABLE_TRACING` macro is expected to be defined in the
`config/bitcoin-config.h` header.
Therefore, the current code is error-prone as it depends on whether the
`config/bitcoin-config.h` header was included before or not.
Github-Pull: #28693
Rebased-From: 6bdff429ec
- make `getaddrmaninfo` RPC public since it's not for development
purposes only and regular users might find it useful
- add missing `all_networks` key to RPC help
- use clang format spacing
Github-Pull: #28565
Rebased-From: 3931e6abc3
In the presence of smaller transactions on the network, blocks can sustain a
higher relay rate than 7tx/second. In this event, the per-peer inventory queues
can grow too large.
This commit bumps the rate up to 14 tx/s (for inbound peers), increasing the
safety margin by a factor of 2.
Outbound peers continue to receive relayed transactions at 2.5x the rate of
inbound peers, for a rate of 35tx/second.
Co-Authored-By: Suhas Daftuar <sdaftuar@gmail.com>
Github-Pull: #28592
Rebased-From: 80489ba6e8430177db5c1d0c9148e83e410bd704
The descriptor documentation (doc/descriptors.md) and BIP380 explicitly
require that hex-encoded public keys start with 02 or 03 (compressed) or
04 (uncompressed). However, the current parsing/inference code permit 06
and 07 (hybrid) encoding as well. Fix this.
Github-Pull: #28587
Rebased-From: c1e6c542af