0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-25 12:51:55 -05:00
Commit graph

27578 commits

Author SHA1 Message Date
MarcoFalke
fa899fb7aa
fuzz: Speed up utxo_snapshot fuzz target
This speeds up the fuzz target, which allows "valid" inputs. It does not
affect the "INVALID" fuzz target.
2024-08-20 07:54:04 +02:00
Ava Chow
d79ea809d2
Merge bitcoin/bitcoin#30647: Move maximum timewarp attack threshold back to 600s from 7200s
16e95bda86 Move maximum timewarp attack threshold back to 600s from 7200s (Matt Corallo)

Pull request description:

  In 6bfa26048d the testnet4 timewarp attack fix block time variation was increased from the Great Consensus Cleanup value of 600s to 7200s on the thesis that this allows miners to always create blocks with the current time. Sadly, doing so does allow for some nonzero inflation, even if not a huge amount.

  While it could be that some hardware ignores the timestamp provided to it over Stratum and forces the block header timestamp to the current time, I'm not aware of any such hardware, and it would also likely suffer from random invalid blocks due to relying on NTP anyway, making its existence highly unlikely.

  This leaves the only concern being pools, but most of those rely on work generated by Bitcoin Core (in one way or another, though when spy mining possibly not), and it seems likely that they will also not suffer any lost work. While its possible that a pool does generate invalid work due to spy mining or otherwise custom logic, it seems unlikely that a substantial portion of hashrate would do so, making the difference somewhat academic (any pool that screws this up will only do so once and the network would come out just fine).

  Further, while we may end up deciding these assumptions were invalid and we should instead use 7200s, it seems prudent to try with the value we "want" on testnet4, giving us the ability to learn if the compatibility concerns are an issue before we go to mainnet.

ACKs for top commit:
  fjahr:
    tACK 16e95bda86
  achow101:
    ACK 16e95bda86
  murchandamus:
    crACK 16e95bda86

Tree-SHA512: ae46d03b728b6e23cb6ace64c9813bc01c01e38dd7f159cf0fab53b331ef84b3b811edab225453ccdfedb53b242f55b0efd69829782657490fe393d24dacbeb2
2024-08-19 15:15:02 -04:00
Hennadii Stepanov
6ce50fd9d0
doc: Update for CMake-based build system
Co-authored-by: Lőrinc <pap.lorinc@gmail.com>
Co-authored-by: pablomartin4btc <pablomartin4btc@gmail.com>
2024-08-16 21:24:08 +01:00
Hennadii Stepanov
1f60b30df0
cmake: Add APPEND_{CPP,C,CXX,LD}FLAGS cache variables
The content of those variables is appended to the each target after the
flags added by the build system.
2024-08-16 21:19:11 +01:00
Hennadii Stepanov
2b43c45b13
cmake: Add AddWindowsResources module 2024-08-16 21:19:11 +01:00
Hennadii Stepanov
973a3b0c5d
cmake: Implement install build target 2024-08-16 21:19:11 +01:00
Hennadii Stepanov
84ac35cfd4
cmake: Add cross-compiling support
To configure CMake for cross-compiling, use
`--toolchain depends/${HOST}/toolchain.cmake` command-line option.
2024-08-16 21:19:11 +01:00
Hennadii Stepanov
90cec4d251
cmake: Add MULTIPROCESS option 2024-08-16 21:19:10 +01:00
Hennadii Stepanov
bb1a450dcb
cmake: Build bitcoin-chainstate executable 2024-08-16 21:19:09 +01:00
Hennadii Stepanov
aed38ea58c
cmake: Build bitcoinkernel library
Co-authored-by: TheCharlatan <seb.kung@gmail.com>
2024-08-16 21:19:09 +01:00
Hennadii Stepanov
975d67369b
cmake: Build test_bitcoin-qt executable 2024-08-16 19:28:59 +01:00
Hennadii Stepanov
10fcc668a3
cmake: Add WITH_DBUS option 2024-08-16 19:27:42 +01:00
Hennadii Stepanov
57a6e2ef4a
cmake: Build bitcoin-qt executable 2024-08-16 19:27:42 +01:00
Hennadii Stepanov
3d85379570
cmake: Add fuzzing options 2024-08-16 19:27:41 +01:00
Hennadii Stepanov
908530e312
cmake: Add SANITIZERS option 2024-08-16 19:27:41 +01:00
Hennadii Stepanov
8bb0e85631
cmake: Build bench_bitcoin executable 2024-08-16 19:27:41 +01:00
Hennadii Stepanov
353e0c9e96
cmake: Add systemtap-sdt optional package support 2024-08-16 19:27:41 +01:00
Hennadii Stepanov
d2fda82b49
cmake: Add libzmq optional package support 2024-08-16 19:27:40 +01:00
Hennadii Stepanov
ae7b39a0e1
cmake: Add libminiupnpc optional package support 2024-08-16 19:27:40 +01:00
Hennadii Stepanov
6480e1dcdb
cmake: Add libnatpmp optional package support 2024-08-16 19:27:40 +01:00
Hennadii Stepanov
e73e9304a1
cmake: Build bitcoin-util executable 2024-08-16 19:27:40 +01:00
Hennadii Stepanov
027c6d7caa
cmake: Build bitcoin-tx executable 2024-08-16 19:27:40 +01:00
Hennadii Stepanov
d10c5c34c3
cmake: Add wallet functionality 2024-08-16 19:27:40 +01:00
Hennadii Stepanov
ab2e99b0d9
cmake: Create test suite for ctest 2024-08-16 19:27:39 +01:00
Hennadii Stepanov
959370bd76
cmake: Build test_bitcoin executable 2024-08-16 19:27:39 +01:00
Hennadii Stepanov
b27bf9700d
cmake: Build bitcoin-cli executable 2024-08-16 19:27:39 +01:00
Hennadii Stepanov
a9813df826
cmake: Build bitcoind executable 2024-08-16 19:27:39 +01:00
Hennadii Stepanov
3118e40c61
cmake: Build bitcoin_consensus library 2024-08-16 19:27:39 +01:00
Hennadii Stepanov
809a2f1929
cmake: Build bitcoin_util static library 2024-08-16 19:27:38 +01:00
Hennadii Stepanov
0a9a521a70
cmake: Build bitcoin_crypto library 2024-08-16 19:27:38 +01:00
Hennadii Stepanov
958971f476
cmake: Build univalue static library 2024-08-16 19:27:38 +01:00
Hennadii Stepanov
752747fda8
cmake: Generate obj/build.h header 2024-08-16 19:27:38 +01:00
Hennadii Stepanov
db7a198f29
cmake: Build secp256k1 subtree 2024-08-16 19:27:37 +01:00
Hennadii Stepanov
27d687fc1f
cmake: Add config/bitcoin-config.h support 2024-08-16 19:27:36 +01:00
glozow
ee367170cb
Merge bitcoin/bitcoin#30621: wallet: fix blank legacy detection
6ed424f2db wallet: fix, detect blank legacy wallets in IsLegacy (furszy)

Pull request description:

  Blank legacy wallets do not have active SPKM. They can only be
  detected by checking the descriptors' flag or the db format.

  This enables the migration of blank legacy wallets in the GUI.

  To test this:
  1) Create a blank legacy wallet.
  2) Try to migrate it using the GUI's toolbar "Migrate Wallet" button.
      -> In master: The button will be disabled because `CWallet::IsLegacy()` returns false for blank legacy wallet.
      -> In this PR: the button will be enabled, allowing the migration of legacy wallets.

ACKs for top commit:
  achow101:
    ACK 6ed424f2db
  tdb3:
    ACK 6ed424f2db
  glozow:
    ACK 6ed424f2db

Tree-SHA512: c06c4c4c2e546ccb033287b9aa3aee4ca36b47aeb2fac6fbed5de774b65caef9c818fc8dfdaac6ce78839b2d5d642a5632a5b44c5e889ea169ced80ed50501a7
2024-08-16 16:54:05 +01:00
Ava Chow
d8fd1e0faf seeds: Fixed seeds update
Update the fixed seeds for both mainnet and testnet
2024-08-16 11:29:25 -04:00
Ava Chow
221809b81c headerssync: Update headerssync configuration 2024-08-16 11:23:23 -04:00
Ava Chow
c2707446f7 params: Update assumevalid and minimum chainwork 2024-08-16 11:20:48 -04:00
Ava Chow
255d4514d3 params: Update chainTxData 2024-08-16 11:20:48 -04:00
Ava Chow
6a5bdae322 params: Update assumed blockchain and chainstate sizes 2024-08-16 11:20:46 -04:00
MarcoFalke
fa386642b4
fuzz: Speed up utxo_snapshot by lazy re-init
The re-init is expensive, so skip it if there is no need.

Also, add an even faster fuzz target utxo_snapshot_invalid, which does
not need any re-init at all.
2024-08-16 08:06:59 +02:00
Ava Chow
99ecb9a630
Merge bitcoin/bitcoin#30659: wallet: fix UnloadWallet thread safety assumptions
f550a8e035 Rename ReleaseWallet to FlushAndDeleteWallet (furszy)
64e736d79e wallet: WaitForDeleteWallet, do not expect thread safety (Ryan Ofsky)
8872b4a6ca wallet: rename UnloadWallet to WaitForDeleteWallet (furszy)
5d15485aaf wallet: unload, notify GUI as soon as possible (furszy)

Pull request description:

  Coming from #29073.

  Applied ryanofsky suggested changes on https://github.com/bitcoin/bitcoin/issues/29073#issuecomment-2274237242 with few modifications coming from https://github.com/bitcoin/bitcoin/pull/18338#issuecomment-605060348.

  The only point I did not tackle from https://github.com/bitcoin/bitcoin/pull/18338#issuecomment-605060348 is:

  > * Move log print and flush out of ReleaseWallet into CWallet destructor

  Because it would mean every `CWallet` object would flush data to disk during destruction. Which is not necessary for wallet tool utilities and unit tests.

ACKs for top commit:
  achow101:
    ACK f550a8e035
  ryanofsky:
    Code review ACK f550a8e035. Just a simple rename since last review
  ismaelsadeeq:
    Re-ACK f550a8e035

Tree-SHA512: e2eb69bf36883c514f601f4838ae6a41113996b9559abf8dc2b46e16bbcdad401195ac0f2b9d1fb55a10e78bb8ea9953788a168c80474e3f101350d208cb3bd2
2024-08-15 13:22:34 -04:00
furszy
f550a8e035
Rename ReleaseWallet to FlushAndDeleteWallet
To better describe the function's behavior.
And add wallet name to logprint.
2024-08-15 11:54:13 -03:00
MarcoFalke
fa645c7a86
fuzz: Remove unused DataStream object 2024-08-15 08:53:04 +02:00
Ryan Ofsky
64e736d79e
wallet: WaitForDeleteWallet, do not expect thread safety
Multiple threads could try to delete the wallet at the same time.
2024-08-14 16:14:54 -03:00
furszy
8872b4a6ca
wallet: rename UnloadWallet to WaitForDeleteWallet
And update function's documentation.
2024-08-14 16:12:18 -03:00
furszy
5d15485aaf
wallet: unload, notify GUI as soon as possible
Releases wallet shared pointers prior to doing the
final settings update and prevent GUI races trying
to access a wallet that is no longer loaded.
2024-08-14 16:12:18 -03:00
Ava Chow
0a379a129b
Merge bitcoin/bitcoin#28553: validation: assumeutxo params mainnet
1610643c8b chainparams: add mainnet assumeutxo param at height 840_000 (Sjors Provoost)

Pull request description:

  This adds snapshot parameters for mainnet block 840,000.

  You can generate the snapshot yourself using `./contrib/devtools/utxo_snapshot.sh` or download my torrent:
  * torrent: `magnet:?xt=urn:btih:596c26cc709e213fdfec997183ff67067241440c&dn=utxo-840000.dat&tr=udp%3A%2F%2Ftracker.bitcoin.sprovoost.nl%3A6969`

  It would be a good idea to test:
  1. That you can produce the same snapshot file, sha256 sum:

  ```
  dc4bb43d58d6a25e91eae93eb052d72e3318bd98ec62a5d0c11817cefbba177b utxo-840000.dat
  ```

  2. That the snapshot works

ACKs for top commit:
  fjahr:
    re-ACK 1610643c8b
  achow101:
    ACK 1610643c8b
  theStack:
    Tested ACK 1610643c8b
  mzumsande:
    tested ACK 1610643c8b
  willcl-ark:
    tACK 1610643c8b

Tree-SHA512: 581d8e86379bb044324f04f8559dd0a8946b6e2b145d5f25b38727b30b8cf13d6ac3c8777ff06554d3cf1a072809f7b5fbd693239868578f25dceafe5ba5f57c
2024-08-14 12:16:28 -04:00
Ava Chow
0e42c1b6c5
Merge bitcoin/bitcoin#30648: doc: Deduplicate list of possible chain strings in RPC help texts
9b29755520 Deduplicate list of chain strings in RPC help texts (Martin Saposnic)

Pull request description:

  As mentioned in issue https://github.com/bitcoin/bitcoin/issues/30645:

  Many command line parameter and RPC help texts currently contain the list of chain/network names hardcoded ("main, test, testnet4, signet, regtest"), which is error-prone as it can easily happen to miss an instance if the list ever changes again.

  This PR deduplicates the list of possible chain/network strings in RPC/parameter help texts, and it creates a macro `LIST_CHAIN_NAMES` in src/chainparamsbase.h. In the future, there is only 1 place where that list of possible values lives, so maintainability is improved and errors are avoided.

  All three places where this change impacts:

  ```
  ./bitcoin-cli --help
  ./bitcoin-cli help getblockchaininfo
  ./bitcoin-cli help getmininginfo
  ```

  They all return the correct string `"main, test, testnet4, signet, regtest"`

  See https://github.com/bitcoin/bitcoin/pull/30642#discussion_r1714711575

ACKs for top commit:
  maflcko:
    lgtm ACK 9b29755520
  achow101:
    ACK 9b29755520
  MarnixCroes:
    ACK 9b29755520
  theStack:
    ACK 9b29755520
  danielabrozzoni:
    ACK 9b29755520

Tree-SHA512: 1e961bcbe40b0f17a87a2437eb4ba1bb89468fd1b5a39599d72a00ef75cb4009e7d2f05d0a621bb904fecf681c55b8a219fcfe4d44d5d27f27cdda20882b1323
2024-08-14 12:01:55 -04:00
Hennadii Stepanov
770b0348c0
qt: Update translation source file for v28.0 string freeze
The diff is produced by running `make -C src translate`.
2024-08-14 14:14:10 +01:00