9387 Commits

Author SHA1 Message Date
Evan Klitzke
c4ef2d1f03
build: fix automake warnings when running autogen.sh
- Removes hard coded GZIP_ENV because this is now handled properly
  by gitian.
- Removes target '.mm.o' because that was needed for XCode <= 4.2

Cherry-picked from: f8c6697
2022-06-25 18:36:02 +02:00
fanquake
3ad3cd5647
[Build] Add AM_OBJCXXFLAGS and QT_PIE_FLAGS to OBJCXXFLAGS to future-proof darwin targets
Cherry-picked from: cc5c39dd
Conflicts: changed libbitcoinqt into libdogecoinqt
2022-06-25 18:36:01 +02:00
Old Dip Tracker
d0bc620154
Merge pull request #2964 from True-Mining/1.14.6-dev
Set the wallet's discard threshold to 0.01 DOGE
2022-06-25 10:28:10 -04:00
Old Dip Tracker
54a6dbe0bb
Merge pull request #2974 from chromatic/add-rescanchain-rpc-command
Add rescan RPC command
2022-06-25 09:29:40 -04:00
matheusbach
bd3500adcb set the wallet's discard threshold to 0.01 DOGE 2022-06-23 22:03:55 -03:00
chromatic
666e174f1f
Merge pull request #3011 from patricklodder/1.14.6-translations-remainder
locale: update languages that have no recent updates
2022-06-23 14:44:07 -07:00
Patrick Lodder
2a0c36b691
locale: update languages that have no recent updates
Omitted all unmaintained dialects unless there only is a dialect.

Excluded files:

- bg_BG -> bg
- ca@valencia and ca_ES -> ca
- el_GR -> el
- es_AR, es_CL, es_CO, es_DO, es_ES, es_MX, es_UY and es_VE -> es
- et_EE -> et
- fa_IR -> fa
- fr_CA and fr_FR -> fr
- ro_RO -> ro
- ru_RU -> ru
- tr_TR -> tr
- vi_VN -> vi
- zh and zh_HK -> zh_CN
2022-06-23 17:38:13 +02:00
chromatic
eecc9325bf
Merge pull request #3010 from patricklodder/1.14.6-translations-recent
locale: update recent translations
2022-06-22 22:52:24 -07:00
chromatic
f74e27da05 Add rescan RPC command 2022-06-22 22:34:42 -07:00
Patrick Lodder
1d00bfe82c
locale: update recent translations 2022-06-22 22:17:33 +02:00
Patrick Lodder
09475f19cb
locale: update the strings and english translation files 2022-06-22 22:15:54 +02:00
Old Dip Tracker
b38a23cdfe
Merge pull request #3001 from patricklodder/1.14.6-remove-bad-info
wallet: remove misleading information about transaction state
2022-06-22 16:14:18 -04:00
chromatic
de26bbfbe1
Merge pull request #2998 from patricklodder/1.14.6-textual-improvements
improve some user-facing strings
2022-06-21 22:06:32 -07:00
Patrick Lodder
90373b711e
wallet: remove misleading information about transaction state
Qt wallets display information to users about the broadcast state
of transactions, without truly knowing the actual state. The fact
that a peer has requested details for a transaction does not mean
it was accepted to their mempool or relayed to any other peers and
miners, because the only way to test if the transaction can be
accepted is by requesting and processing it.

We remove the "offline" and "maturity warning" statuses, which
saves large wallets memory and processing time.

Backported from: beef7ec4
Original author: Matt Corallo <git@bluematt.me>
2022-06-21 16:36:19 +02:00
chromatic
f91b29e1ca
Merge pull request #2997 from patricklodder/1.14.6-enhance-addnode-memory
net: constrain the memory usage of manually added nodes
2022-06-20 21:31:50 -07:00
Old Dip Tracker
96d34ae4da
Merge pull request #3000 from chromatic/forbid-negative-verifychain-blocks
Force `verifychain` RPC args to be positive
2022-06-20 19:38:58 -04:00
Old Dip Tracker
f132f56ac3
Merge pull request #2996 from chromatic/add-backupdir-option
Add configurable backup directory for wallet dumps and backups
2022-06-19 21:06:40 -04:00
Patrick Lodder
8c5dc302ba
net: constrain the memory usage of manually added nodes
Each node keeps a registry of manually added nodes (through the
addnode parameter, rpc call or UI) but there are currently no
limits imposed on that usage, which is a bit sloppy and can lead
to situations where memory is being used for storing addresses
that are never connected to, because the maximum number of
connections used for addnode entries is hardcoded as 8. This
could prevent smaller systems that host nodes (like those
running on an ARM SoC) to optimally use the available memory.

This enhancement limits the addnode functionality as follows:

1. Whenever over 799 nodes are added to the registry, require
   the user to remove an entry before a new one can be added
2. Disallow very large addresses (more than 256 characters).
   This limit provides for at least 4 levels of subdomains as
   specified under RFC1035.

See https://datatracker.ietf.org/doc/html/rfc1035#section-2.3.1
2022-06-20 01:54:31 +02:00
Old Dip Tracker
5eb3a70cdc
Merge pull request #2988 from alamshafil/liststucktx
Add an RPC method showing wallet transactions that are not in the mempool
2022-06-19 19:00:29 -04:00
chromatic
8c20b002a6 Force verifychain RPC args to be positive
Verification levels must be between 0 and 4 inclusive, and block heights should
always be positive. While code in the scan process handles the latter case with
a default value, it's better to verify and reject invalid input where it first
enters the system.
2022-06-19 07:01:45 -07:00
Patrick Lodder
0bca077efb
improve some user-facing strings
- improves conciseness of tips displayed in Qt
- makes the function of the reset button on the importkeydialog
  describe reality
- describe alertnotify to match the new reality after 565280f4
- make sure that "koinu" is not expressed as "koinus"
- fix type in advanced send screen
2022-06-19 00:56:30 +02:00
chromatic
5f5d6a381c Extract wallet RPC utility file 2022-06-18 12:14:34 -07:00
chromatic
c0e27fc825 Make dumpwallet/backupwallet use backupdir path
This adds more defensiveness around dumping or backing up wallets, so
that the directory and filepaths are always available (even if they were
on transient storage that was removed), and that they never overwrite
other files.
2022-06-18 12:14:34 -07:00
chromatic
5735276cc5 Add -backupdir CLI option
This allows users to set the directory in which to store backups and
datadumps.  If not provided, defaults to a subdirectory of `datadir`
called `backups/`, and if that cannot be created, defaults to `datadir`.
2022-06-18 12:14:20 -07:00
Old Dip Tracker
e22b54607c
Merge pull request #2991 from chromatic/remove-alert-system
Remove alert system
2022-06-17 12:29:21 -04:00
alamshafil
6fc61972b8 Add RPC method showing wallet TX not in mempool 2022-06-17 11:20:22 -04:00
Old Dip Tracker
b3beca6cc4
Merge pull request #2758 from patricklodder/1.14.6-maxlocsz
net: Introduce a maximum size for locators
2022-06-17 08:05:37 -04:00
chromatic
565280f457 Remove alert system
While looking at the network code, we realized this code is unused and
largely unmaintained. Given issue #2231, and its removal in 1.21, it's
time to remove it now.

This has the nice benefit of removing a single point of failure/control
(because it depends on a keypair to send alerts).

This code restores the pre-alert behavior before the merge of PR #1470.
2022-06-14 17:09:57 -07:00
chromatic
530e7c1008 Retain network traffic data on slider change
See #2523, a request not to drop data when changing the time scale of
the graph.

This change includes several components performed by @michilumin:

 * allows resampling and data retention
 * separates data from visual sample stores on the graph
 * uses averages instead of maximums for samples
 * improves timing accuracy

Co-authored-by: Michi Lumin <michi@luskwood.org>
2022-06-13 13:20:34 -07:00
Patrick Lodder
a31fa4ff01
net: implement a mockable micro time
Throughout the code, we use mockable time in places where we want
to test things that are subject to timing constraints, but don't
want to wait for great amounts of time when we use the regtest
network to ensure nothing gets broken. Mockable time is a system
time override that is only enabled on chains that have the
fMineBlocksOnDemand parameter set (currently: regtest).

Currently, only time expressed in seconds is able to be mocked, but
we have a couple of places where time is evaluated in microseconds,
one of them being the time between sending out addr messages.

This introduces a mockable time in microseconds and refactors the
time evaluation for addr messages to be mocked, so that we can
more reliably (and faster) test that.

Other protocol features may want to use this too, but currently the
sending of addr messages is the only place we test. Bitcoin Core
nowadays has a much better time system that we inherit in future
versions, but for the current scope I found this not worth the
effort of backporting, as these would impact a much larger part of
the code base.

Inspired by: 1a8f0d5a from Amiti Uttarwar
2022-06-12 21:09:22 +02:00
Old Dip Tracker
baf3e4cd72
Merge pull request #2971 from vijaychowthri/patch-1
Update bitcoin_ta.ts
2022-05-31 11:32:17 -04:00
Old Dip Tracker
e4e8c4b48b
Merge pull request #2953 from jadehamel/donotsharepk
Change sentence in UI that could suggest a private key is not 100% private
2022-05-31 11:29:48 -04:00
Steve Chung
35914ee5c7
Update bitcoin_ko_KR.ts
added all the missing translations and fixed incorrect translations
2022-05-28 01:33:52 +02:00
VJ
00e5e75aa9
Update bitcoin_ta.ts
I have updated a meaningful full translation that any once can understand.
2022-05-26 15:15:01 -04:00
Jade Hamel
c70a5eea9e
Fix ambigous tip 2022-05-25 17:48:03 +02:00
Old Dip Tracker
159786718f
Merge pull request #2912 from MishaBoar/master
Italian Translation Update
2022-05-17 10:01:44 -04:00
MishaBoar
0bec3d4cd7 Added changes suggested, minor corrections to other phrases 2022-05-14 05:20:55 +02:00
Old Dip Tracker
23eb7b3cc0
Merge pull request #2947 from Maniixer/patch-1
Dutch/Flamish Translation Update
2022-05-13 19:28:02 -04:00
chromatic
4d837b2395
Merge pull request #2903 from thisiskeanyvy/master
Complete update of the French translation file (bitcoin_fr.ts)
2022-05-12 15:53:55 -07:00
Maniixer
d77d10c741
Update bitcoin_nl.ts
Changed Typo Saldi to Saldo.
Added translation to most of the type="unfinished" might have missed some.
2022-05-12 20:49:36 +02:00
thisiskeanyvy
1c990c770f
New translation of the French file (bitcoin_fr.ts) 2022-05-11 01:56:41 +02:00
chromatic
b37b7e655b Attempt to evict nodes to meet the max conn count
The algorithm here is important and took some time to get right. Instead
of comparing whether the current number of connected nodes minus the
number of unevictable nodes is greater than the number of max
connections, check that:

 * there are any evictable nodes (connected nodes minus unevictable
 nodes)
 * there are more nodes connected than requested (connected nodes minus
 max connections)

While we could wait for nodes to disconnect organically, it's more
important to run the eviction logic frequently enough that we can tell
when it will have an effect.

Whitelisted connections and protected inbound connections are
unevictable, and max connections should account for inbound connections.

Because the evictor will never evict protected inbound connections, the
maximum connection count should always be at least as large as the
protected connection count.

Note that the tests for this use a delay and test that the delay has not
expired. This helps improve determinism in the testing. Otherwise, a
strict test for a fixed number of disconnections is susceptible to
things like CPU jitter, especially when running through CI.

Patrick ran this test for 1000 runs on busy CPUs and saw no failures.
2022-05-08 11:43:42 -07:00
MishaBoar
3f4bd2700c Minor adjustments options menu 2022-05-05 05:29:06 +02:00
chromatic
b277b68eb4 Set maximum/minimum connection thresholds
This uses the constant in src/net.h for the minimum allowed number of
connections.

The limit of new max connections is silently capped to the number of
available file descriptors. This value is not exposed in the UI or
RPC messages so as not to leak interesting or important system details.

The floor of maximum connections is set to the number of connections
required for this node to operate.
2022-05-04 17:38:03 -07:00
chromatic
4b5dcc77f6 Reduce number of connections, if needed
This makes the best attempt to reduce the number of connections by
reusing the eviction logic. This reuses the core of that algorithm at
the expense of deterministic behavior. In other words, starting with a
max connections value of 125 and then changing the max connections to 3
does not mean that this will immediately evict 122 connections.

Eventually the number of connections will reduce to the limit.

While the body of the condition will add latency to network processing,
the integer comparison between max connections and size of the
connections vector should be quick in most cases.

Note the extraction of connection disconnect/delete helpers so as to
reuse the same logic in multiple places. While this may not be strictly
necessary for the algorithm, it reduces the possibility that this entire
loop will get stuck doing busy work when trying to evict connections to
get under the maximum threshold.
2022-05-04 17:38:03 -07:00
chromatic
d871cda81a Add RPC command to set max connections 2022-05-04 17:38:03 -07:00
MishaBoar
b424e7ad09 Updated src/qt/bitcoin_locale.qrc to remove bitcoin_it_IT.ts language file 2022-05-04 19:20:10 +02:00
MishaBoar
830f3a5999 Updated src/Makefile.qt.include to remove bitcoin_it_IT.ts language file 2022-05-04 19:17:44 +02:00
MishaBoar
c6e907117e Deleted redundant Italian translation file 2022-05-02 04:37:20 +02:00
MishaBoar
06ba857ff2 Additional minor adjustments. 2022-05-02 04:21:33 +02:00