Commit graph

601 commits

Author SHA1 Message Date
Andrew Poelstra
5deb2c636f Merge 1f8378508a into merged_master (Bitcoin PR #15615) 2020-11-09 21:20:19 +00:00
Andrew Poelstra
5f280a6068 Merge 1bf2ff2bf8 into merged_master (Bitcoin PR #16060) 2020-11-09 21:20:15 +00:00
Andrew Poelstra
028f2d94d1 Merge 85883a9f8e into merged_master (Bitcoin PR #16443) 2020-11-09 21:20:14 +00:00
Andrew Poelstra
0657bbeffa Merge 68da54987d into merged_master (Bitcoin PR #16471) 2020-11-09 21:20:09 +00:00
Andrew Poelstra
31aa2513fb Merge d5a54ce8f0 into merged_master (Bitcoin PR #15305) 2020-11-09 21:20:08 +00:00
Andrew Poelstra
83019c2acd Merge d960d5ca99 into merged_master (Bitcoin PR #16362) 2020-11-09 21:20:08 +00:00
Andrew Poelstra
04f0e67e67 Merge 51a6e2c419 into merged_master (Bitcoin PR #15681) 2020-11-09 21:20:07 +00:00
Andrew Poelstra
1e58aac3d1 Merge 8f604361eb into merged_master (Bitcoin PR #16194) 2020-11-09 21:20:06 +00:00
Andrew Poelstra
f7cb3a9645 Merge f373beebbc into merged_master (Bitcoin PR #16344) 2020-11-09 03:58:19 +00:00
Andrew Poelstra
62a63e4c6b Merge 8c69fae944 into merged_master (Bitcoin PR #15457) 2020-11-09 03:58:19 +00:00
Andrew Poelstra
19568c3891 Merge c6e42f1ca9 into merged_master (Bitcoin PR #14193) 2020-11-09 03:58:18 +00:00
Andrew Poelstra
695bf1c24d Merge 332c6134bb into merged_master (Bitcoin PR #15894) 2020-11-09 03:58:16 +00:00
Andrew Poelstra
f60ef72524 Merge 0b68fca700 into merged_master (Bitcoin PR #16092) 2020-11-06 15:20:15 +00:00
Andrew Poelstra
83f93df4d0 Merge e2182b02b5 into merged_master (Bitcoin PR #16171) 2020-11-06 15:20:15 +00:00
Andrew Poelstra
2c4ed107ff Merge c977f2b99d into merged_master (Elements PR #664) 2020-11-06 15:20:14 +00:00
Andrew Poelstra
68d9951825 Merge d0f81a96d9 into merged_master (Bitcoin PR #16129) 2020-11-06 15:20:13 +00:00
Andrew Poelstra
cb15f46946 Merge 5d37c1bde0 into merged_master (Bitcoin PR #15976) 2020-11-06 15:20:12 +00:00
Andrew Poelstra
a835ebdb2f Merge 1c177c3a00 into merged_master (Bitcoin PR #16015) 2020-10-29 20:55:17 +00:00
Andrew Poelstra
96169f79e3 Merge 7110d455eb into merged_master (Bitcoin PR #12980) 2020-10-29 19:54:46 +00:00
Andrew Poelstra
e6adc4efa2 Merge a822a0e4f6 into merged_master (Bitcoin PR #15999) 2020-10-29 19:17:12 +00:00
Andrew Poelstra
f6f2aefae3 Merge 40c66bb3d1 into merged_master (Bitcoin PR #15855) 2020-10-29 16:50:16 +00:00
Andrew Poelstra
5bf56b8829 Merge 49c1aa5f83 into merged_master (Bitcoin PR #15971) 2020-10-29 04:29:12 +00:00
Andrew Poelstra
c91184f6c2 Merge b2a6b02161 into merged_master (Bitcoin PR #15948) 2020-10-29 02:36:55 +00:00
Andrew Poelstra
2d57dcb681 Merge d7d7d31506 into merged_master (Bitcoin PR #15141) 2020-10-29 02:10:39 +00:00
Andrew Poelstra
cf22dd0930 Merge 12aa2ac988 into merged_master (Bitcoin PR #15323) 2020-10-29 02:07:08 +00:00
Andrew Poelstra
44e5901b98 Merge 2c35fe6238 into merged_master (Bitcoin PR #15849) 2020-10-29 02:06:12 +00:00
Andrew Poelstra
ad0dc00fc2 Merge 3356799ee3 into merged_master (Bitcoin PR #15778) 2020-10-28 23:22:29 +00:00
Andrew Poelstra
e490be0579 Merge d76b72a454 into merged_master (Bitcoin PR #15267) 2020-10-28 22:35:27 +00:00
Andrew Poelstra
e316ed34be Merge ae2c19f578 into merged_master (Bitcoin PR #15655) 2020-10-28 20:52:58 +00:00
Andrew Poelstra
a8581ea138 Merge 6a135fbe5b into merged_master (Bitcoin PR #15638) 2020-10-28 03:16:57 +00:00
Andrew Poelstra
45dad5302b Merge 93623eea71 into merged_master (Bitcoin PR #15623) 2020-10-28 00:09:42 +00:00
Andrew Poelstra
0a64319362 Merge e45b7f20e6 into merged_master (Bitcoin PR #15618) 2020-10-28 00:09:11 +00:00
Andrew Poelstra
7d93f137a0 Merge c033c4b5ce into merged_master (Bitcoin PR #13541) 2020-10-28 00:09:04 +00:00
Andrew Poelstra
1e375568af Merge 2d46f1be0c into merged_master (Bitcoin PR #15118) 2020-10-27 21:52:10 +00:00
Andrew Poelstra
2b24674400 Merge d88f7f8764 into merged_master (Bitcoin PR #15471) 2020-10-27 19:13:32 +00:00
Wladimir J. van der Laan
1f8378508a
Merge #15615: Add log output during initial header sync
d75e704ac0 Add log output during initial header sync (Jonas Schnelli)

Pull request description:

  The non debug log output is completely quiet during the header sync. I see two main reasons to add infos about the state of the initial header sync...
  * users may think the node did fail to start sync
  * it's a little complicate to check if your getting throttled during header sync (repeatedly calling `getchaintips` or similar)

ACKs for top commit:
  fanquake:
    Concept ACK https://github.com/bitcoin/bitcoin/pull/15615/commits/d75e704ac08fb43320e3ebcdde0d2a5392fdec9f
  practicalswift:
    utACK d75e704ac0
  laanwj:
    Tested ACK d75e704ac0

Tree-SHA512: 2e738571b703d7251290864603c3a829729645962c2fa3187250bab0585e66a5f01fce892e9b5b98da451fab2b40a2e4784f9b2e5a9cad75ff62c535affe7430
2019-08-29 15:47:26 +02:00
MarcoFalke
1bf2ff2bf8
Merge #16060: Bury bip9 deployments
e78aaf41f4 [docs] Add release notes for burying bip 9 soft fork deployments (John Newbery)
8319e738f9 [tests] Add coverage for the content of getblockchaininfo.softforks (James O'Beirne)
0328dcdcfc [Consensus] Bury segwit deployment (John Newbery)
1c93b9b31c [Consensus] Bury CSV deployment height (John Newbery)
3862e473f0 [rpc] Tidy up reporting of buried and ongoing softforks (John Newbery)

Pull request description:

  This hardcodes CSV and segwit activation heights, similar to the BIP 90 buried deployments for BIPs 34, 65 and 66.

  CSV and segwit have been active for over 18 months. Hardcoding the activation height is a code simplification, makes it easier to understand segwit activation status, and reduces technical debt.

  This was originally attempted by jl2012 in #11398 and again by me in #12360.

ACKs for top commit:
  ajtowns:
    ACK e78aaf41f4 ; checked diff to previous acked commit, checked tests still work
  ariard:
    ACK e78aaf4, check diff, run the tests again and successfully activated csv/segwit heights on mainnet as expected.
  MarcoFalke:
    ACK e78aaf41f4 (still didn't check if the mainnet block heights are correct, but the code looks good now)

Tree-SHA512: 7e951829106e21a81725f7d3e236eddbb59349189740907bb47e33f5dbf95c43753ac1231f47ae7bee85c8c81b2146afcdfdc11deb1503947f23093a9c399912
2019-08-15 16:02:10 -04:00
James O'Beirne
582d2cd747 Cover UTXO set access with lock annotations
i.e. any CoinsViews members. Adds a lock acquisition to `gettxoutsetinfo` RPC
to comply with added annotations.

Co-authored-by: Russell Yanofsky <russ@yanofsky.org>
2019-08-15 11:19:40 -04:00
James O'Beirne
5693530685 refactor: have CCoins* data managed under CChainState
This change encapsulates UTXO set data within CChainState instances, removing
global data `pcoinsTip` and `pcoinsviewdb`. This is necessary if we want to
maintain multiple chainstates with their own rendering of the UTXO set.

We introduce a class CoinsViews which consolidates the construction of a
CCoins* hierarchy. Construction of its various pieces (db, coinscatcher,
in-memory cache) is split up so that we avoid flushing bad state to disk if
startup is interrupted.

We also introduce `CChainState::CanFlushToDisk()` which tells us when it is
safe to flush the chainstate based on this partial construction.

This commit could be broken into smaller pieces, but it would require more
ephemeral diffs to, e.g., temporarily change CCoinsViewDB's constructor
invocations.

Other changes:

- A parameter has been added to the CCoinsViewDB constructor that allows the
  name of the corresponding leveldb directory to be specified.

Thanks to Russell Yanofsky and Marco Falke for helpful feedback.
2019-08-15 11:04:10 -04:00
John Newbery
0328dcdcfc [Consensus] Bury segwit deployment
Hardcode segwit deployment height to 481824 for mainnet.
2019-08-14 15:52:52 -04:00
John Newbery
1c93b9b31c [Consensus] Bury CSV deployment height
Hard code CSV deployment height to 419328 for mainnet.
2019-08-14 15:52:52 -04:00
James O'Beirne
fae6ab6aed refactor: pcoinsTip -> CChainState::CoinsTip()
This aliasing makes subsequent commits easier to review; eventually CoinsTip()
will return the CCoinsViewCache managed by CChainState.
2019-08-06 13:13:06 -04:00
John Newbery
42a5e912ee [mempool] log correct messages when CPFP fails 2019-07-26 16:21:26 -04:00
fanquake
d5a54ce8f0
Merge #15305: [validation] Crash if disconnecting a block fails
a47df13471 [qa] Test disconnect block failure -> shutdown (Suhas Daftuar)
4433ed0f73 [validation] Crash if disconnecting a block fails (Suhas Daftuar)

Pull request description:

  If we're unable to disconnect a block during normal operation, then that is a
  failure of our local system (such as disk failure) or the chain that we are on
  (eg CVE-2018-17144), but cannot be due to failure of the (more work) chain that
  we're trying to validate.

  We should abort rather than stay on a less work chain.

  Fixes #14341.

ACKs for top commit:
  practicalswift:
    utACK a47df13471
  TheBlueMatt:
    utACK a47df13471. Didn't bother to review the test in detail, it looked fine. Debated whether invalidateblock should ever crash the node, but *not* crashing in the case of hitting a pruned block (which is the only change here) is clearly better, even if there are other cases I'd argue we should crash in.
  ryanofsky:
    utACK a47df13471. Only change since last review is new comment.
  promag:
    ACK a47df1347, it takes awhile to quit (RPC connection timeouts) but that's unrelated - hope to fix that soon.
  fanquake:
    ACK a47df13471

Tree-SHA512: 4dec8cef6e7dbbe513c138fc5821a7ceab855e603ece3c16185b51a3830ab7ebbc844a28827bf64e75326f45325991dcb672f13bd7baede53304f27289c4af8d
2019-07-25 09:05:22 +08:00
Hennadii Stepanov
753f7cccce
scripted-diff: Make translation bilingual
-BEGIN VERIFY SCRIPT-
sed -i 's/inline std::string _(const char\* psz)/inline bilingual_str _(const char\* psz)/' src/util/translation.h
sed -i 's/return G_TRANSLATION_FUN ? (G_TRANSLATION_FUN)(psz) : psz;/return bilingual_str{psz, G_TRANSLATION_FUN ? (G_TRANSLATION_FUN)(psz) : psz};/' src/util/translation.h
sed -i 's/\b_("\([^"]\|\\"\)*")/&.translated/g' $(git grep --files-with-matches '\b_("' src)
echo Hard cases - multiline strings.
sed -i 's/"Visit %s for further information about the software.")/&.translated/g' src/init.cpp
sed -i "s/\"Only rebuild the block database if you are sure that your computer's date and time are correct\")/&.translated/g" src/init.cpp
sed -i 's/" restore from a backup.")/&.translated/g' src/wallet/db.cpp
sed -i 's/" or address book entries might be missing or incorrect.")/&.translated/g' src/wallet/wallet.cpp
echo Special case.
sed -i 's/_(COPYRIGHT_HOLDERS)/&.translated/' src/util/system.cpp test/lint/lint-format-strings.py
-END VERIFY SCRIPT-
2019-07-24 16:33:20 +03:00
Hennadii Stepanov
0b86e517ad
Refactor out translation.h
This is a prerequisite for introducing bilingual error messages.
Note: #includes are arranged by clang-format-diff.py script.
2019-07-24 16:32:53 +03:00
Wladimir J. van der Laan
51a6e2c419
Merge #15681: [mempool] Allow one extra single-ancestor transaction per package
50cede3f5a [mempool] Allow one extra single-ancestor transaction per package (Matt Corallo)

Pull request description:

  This implements the proposed policy change from [1], which allows
  certain classes of contract protocols involving revocation
  punishments to use CPFP. Note that some such use-cases may still
  want some form of one-deep package relay, though even this alone
  may greatly simplify some lightning fee negotiation.

  [1] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-November/016518.html

ACKs for top commit:
  ajtowns:
    ACK 50cede3f5a -- looked over code again, compared with previous commit, compiles, etc.
  sdaftuar:
    ACK 50cede3f5a
  ryanofsky:
    utACK 50cede3f5a. Changes since last review: adding EXTRA_DESCENDANT_TX_SIZE_LIMIT constant, changing max ancestor size from 1,000,000 to nLimitAncestorSize constant (101,000), fixing test comment and getting rid of unused test node.

Tree-SHA512: b052c2a0f384855572b4579310131897b612201214b5abbb225167224e4f550049e300b471dbf320928652571e92ca2d650050b7cf39ac92b3bc1d2bcd386c1c
2019-07-19 20:00:12 +02:00
Matt Corallo
50cede3f5a [mempool] Allow one extra single-ancestor transaction per package
This implements the proposed policy change from [1], which allows
certain classes of contract protocols involving revocation
punishments to use CPFP. Note that some such use-cases may still
want some form of one-deep package relay, though even this alone
may greatly simplify some lightning fee negotiation.

[1] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-November/016518.html
2019-07-09 15:46:25 -04:00
James O'Beirne
682a1d0f20 refactoring: remove mapBlockIndex global
in lieu of ::BlockIndex().
2019-07-08 11:33:13 -04:00
James O'Beirne
55d525ab90 refactoring: make pindexBestInvalid internal to validation.cpp
There's no need to have this member live on CChainState since it's only used
in validation.cpp.
2019-07-08 11:33:13 -04:00