Commit graph

20675 commits

Author SHA1 Message Date
Wladimir J. van der Laan
fdc951ad04
Merge #16073: refactor: Improve CRollingBloomFilter::reset by using std::fill
df9e15f092 refactor: Improve CRollingBloomFilter::reset by using std::fill (João Barbosa)
d2dbc7da26 bench: Add benchmark for CRollingBloomFilter::reset (João Barbosa)

Pull request description:

  Cleaner code. Also improves performance with `--enable-debug` (which is meaningless to non-developers).

  Before:
  ```
  # Benchmark, evals, iterations, total, min, max, median
  RollingBloomReset, 5, 150, 19.3008, 0.0254917, 0.0259195, 0.0257395
  ```
  After:
  ```
  # Benchmark, evals, iterations, total, min, max, median
  RollingBloomReset, 5, 150, 5.43269, 0.00720651, 0.00729697, 0.00724854
  ```

ACKs for commit df9e15:
  MarcoFalke:
    re-utACK df9e15f092
  jamesob:
    re-utACK df9e15f092

Tree-SHA512: 22038411dfd41afad77b17a3da9ee04476ffbd4d215dcf47bdd9f14588759bc328a55d958dcebc2036b52ce4c56f79b1284eae11e56ddfaf21f0b2ee1c6a914a
2019-05-22 21:06:00 +02:00
João Barbosa
df9e15f092 refactor: Improve CRollingBloomFilter::reset by using std::fill 2019-05-22 15:55:50 +01:00
João Barbosa
d2dbc7da26 bench: Add benchmark for CRollingBloomFilter::reset 2019-05-22 15:55:50 +01:00
MarcoFalke
1c177c3a00
Merge #16015: validation: Hold cs_main when reading chainActive in RewindBlockIndex
1609809fb2 validation: Hold cs_main when reading chainActive in RewindBlockIndex (practicalswift)

Pull request description:

  Fixes #15980.

  Hold `cs_main` when reading `chainActive` (via `::ChainActive()`) in `RewindBlockIndex`.

ACKs for commit 160980:
  MarcoFalke:
    utACK 1609809fb2

Tree-SHA512: 54f180ab391f92f04950735c2bb337f0b7495826d2096f7a0f9a2da50bc29d08747f404a0495e33ca4edd4c842efbab4c4730d5e1a8b9da3e1249cf884268f4b
2019-05-22 08:17:48 -04:00
MarcoFalke
953f757677
Merge #16049: depends: switch to secure download of all dependencies
d8bc47fde4 depends: switch to secure download of all dependencies (Ulrich Kempken)

Pull request description:

  Even if we potentially check the integrity of the downloaded file via hash comparison, we should make use of SSL since it is available.

ACKs for commit d8bc47:
  jonasschnelli:
    utACK d8bc47fde4
  practicalswift:
    utACK d8bc47fde4
  dongcarl:
    tACK d8bc47fde4

Tree-SHA512: e47702f6d243ed7f498ca84c193244382f16f08df6a297caa224b4468f501f3da6fe542fcf3a0dd9c24ab1b0b38bbc51478068e6006a92854ded23abf90de3c8
2019-05-22 07:40:01 -04:00
MarcoFalke
ecbbb5cafe
Merge #16071: RPC: Hint for importmulti in help output of importpubkey and importaddress
df0e97ccb1 RPC: Hint for importmulti in help output of importpubkey and importaddress (Kristaps Kaupe)

Pull request description:

  Similar to #12702. Hint for `importmulti` also in help output of `importpubkey` and `importaddress`.

ACKs for commit df0e97:
  promag:
    utACK df0e97ccb1.
  jonasschnelli:
    utACK df0e97ccb1

Tree-SHA512: db7358d7f4d463a50874e605bbca35a1a40dbefbb1d35cf51fe2f2aa34bef90c3ca398f4ffbcb9d7d43887a03eb8d81b6ef59066a3c7eda18a7eea876f6592e7
2019-05-22 07:15:12 -04:00
João Barbosa
be4efb165a rpc: Mention getwalletinfo where a rescan is triggered 2019-05-22 08:24:54 +01:00
Kristaps Kaupe
df0e97ccb1 RPC: Hint for importmulti in help output of importpubkey and importaddress 2019-05-22 00:35:21 +03:00
MarcoFalke
3001cc61cf
Merge #13555: Tests: parameterize adjustment period in versionbits_computeblockversion
2c448d6bc7 parameterize hard coded numbers referring to miner conf window (Jordan Baczuk)

Pull request description:

  Replace hard coded values (eg. 2016) with `mainnetParams.nMinerConfirmationWindow` where appropriate. This parameterizes hard coded values in the unit test that refer to the `Miner Confirmation Window`, which currently is `2016`.  This includes values not exactly 2016 but which were derived from it. Also changed `int` to `uint32_t` where appropriate to avoid compiler warnings. This makes one source of truth, and also helps people who might be adjusting this value in testing so the unit tests don't break.

ACKs for commit 2c448d:

Tree-SHA512: 9262e0b89c1baf7857b49fe2221b2b00f948f61317b321c4871a9182a86d6f8aadeb59d6b133e8a213cc9b31b4a417888fb1ad31caef16ccbbab1de33c4b8459
2019-05-21 08:04:11 -04:00
Jordan Baczuk
2c448d6bc7 parameterize hard coded numbers referring to miner conf window 2019-05-20 20:36:31 -06:00
Ulrich Kempken
d8bc47fde4 depends: switch to secure download of all dependencies
Some dependency sources were downloaded via http, even though https (SSL/TLS) options are available.
Even if we potentially check the integrity of the downloaded files via hash comparison, we should make
use of this additional security layer.

bdb.mk
fontconfig.mk
freetype.mk
libX11.mk
libXau.mk
libXext.mk
libxcb.mk
native_cctools.mk
native_cdrkit.mk
xcb_proto.mk
xextproto.mk
xproto.mk
xtrans.mk
zlib.mk

miniupnp was switched to official project mirror with SSL support
2019-05-20 22:25:52 +00:00
Gregory Sanders
fadbc5d895 mempool: remove unused magic number from consistency check 2019-05-20 15:19:43 -04:00
MarcoFalke
2d1583ee6a
Merge #15236: scripts and tools: Make --setup command independent
e0eae1b4a4 Make --setup command independent (Hennadii Stepanov)

Pull request description:

  This PR allows a user to run:
  ```sh
  ./gitian-build.py --setup
  ```
  without unused `signer` and `version` options.

  In master the `signer` and `version` options are mandatory. This implies the following code is dead:
  387eb5b343/contrib/gitian-build.py (L192-L200)
  This PR fixes those lines of code.

  Also this PR has a nice side effect: there is no more warnings about macOS build during processing `--setup` command. Ref: https://github.com/bitcoin/bitcoin/pull/13998#issuecomment-493691117

  Note: https://github.com/bitcoin-core/docs/blob/master/gitian-building.md will be updated when this PR is merged.

ACKs for commit e0eae1:

Tree-SHA512: df851fe461e402229c57b410f30f1d8bc816e8a2600ece4249aa39c763566de5b661e7aa0af171d484727eb463a6d0e10cfcf459aa60ae1a5d4e12974a8615c6
2019-05-20 14:58:05 -04:00
Hennadii Stepanov
e0eae1b4a4
Make --setup command independent
A user can run 'gitian-build.py --setup' ignoring signer
and version options.
Get rid of warning about macOS build during setup for free.
2019-05-20 21:01:30 +03:00
MarcoFalke
f49b8d4783
Merge #13998: Scripts and tools: gitian-build.py improvements and corrections
0f22a0cf2f Fix gitian-build.py --verify option (Hennadii Stepanov)
4c56a798c0 Set/unset USE_LXC, USE_VBOX, USE_DOCKER explicitly (Hennadii Stepanov)
cbbd98863b Fix Docker related issues for gitian-build.py (Hennadii Stepanov)

Pull request description:

  1. The Docker does not depend on `apt-cacher-ng` package. Ref: #14002.

  2. Do not try to install the Docker if `docker.service` is detected on the system (e.g., the Docker was installed manually). Fix https://github.com/bitcoin/bitcoin/pull/13623#issuecomment-405684241 by **Sjors**.

  3. Prevent the setting of more than one environment variable for the `gitian-builder` (an alternative to #13999). E.g., USE_LXC being set shadows USE_DOCKER; for details see [`gitian-builder/libexec/make-clean-vm`](93a62c7d7d/libexec/make-clean-vm (L7)):
  ```sh
  VMSW=KVM
  if [ -n "$USE_LXC" ]; then
      VMSW=LXC
  elif [ -n "$USE_VBOX" ]; then
      VMSW=VBOX
  elif [ -n "$USE_DOCKER" ]; then
      VMSW=DOCKER
  fi
  ```
  4. The [`gitian-builder/bin/gverify`](https://github.com/devrandom/gitian-builder/blob/master/bin/gverify) script returns the exit code 1 if a signature verification ends with 'BAD SIGNATURE' or 'MISMATCH' by design. This PR allows to see the verification results for all signatures without a premature fail of the `gitian-build.py` script. Ref: #14014.

ACKs for commit 0f22a0:

Tree-SHA512: 55f8a5cffa20d0c745f51a687f3199cea015fa616e56a0aee4c25b5ca0985036c61e8cf1922515338d8c6a85f873674ebe7a9a56a5069d65a187e383150f1a83
2019-05-20 13:01:37 -04:00
Wladimir J. van der Laan
149b3477ec
Merge #15840: Contrib scripts: Filter IPv6 by ASN
316b8b2339 Filter IPv6 by ASN (Emil)

Pull request description:

  Improves IP diversity for hardcoded seednodes.

ACKs for commit 316b8b:

Tree-SHA512: ae90427efa317d59125457bf8bfd077fd115c0921e1cc13cebd855206498546a026ccc18f039d1963d64d9be9497c41f4a21214fb565d5d11a9635ad12836421
2019-05-20 17:54:05 +02:00
Wladimir J. van der Laan
bb291b50f2
Merge #16021: p2p: Avoid logging transaction decode errors to stderr
fa2b52af32 Disallow extended encoding for non-witness transactions (take 3) (MarcoFalke)

Pull request description:

  (previous title "p2p: Disallow extended encoding for non-witness transactions (take 3)")

  Remote peers can send us illegally encoded txs and thus have us write to stderr. Fix that by not writing to stderr.

  This is a follow up to the previous (incomplete) attempts at this:

  *  Disallow extended encoding for non-witness transactions #14039
  *  Add test for superfluous witness record in deserialization #15893

ACKs for commit fa2b52:
  laanwj:
    utACK fa2b52af32
  ryanofsky:
    utACK fa2b52af32. Would change title to something like "Avoid logging transaction decode errors to stderr" instead of "Disallow extended encoding for non-witness transactions." The current title is confusing because this PR isn't really allowing or disallowing anything, just logging the condition differently. "Disallow" also seems to contradict the "Allow exceptions from..." comments in the actual code.

Tree-SHA512: c66990e69b432d00dc1c5510bf976a1188664d0890a32d1e5c6459094e7e27da82a5d227627afcbc203676f5540eec74b7d9b1d71d2c62d3b2069e1781824b4d
2019-05-20 17:29:21 +02:00
MarcoFalke
dfc02dac0f
Merge #16051: depends: add patch to common dependencies
4de3c15671 depends: add patch to common dependencies (fanquake)

Pull request description:

  Building on a bare system:
  ```
  /bitcoin/depends/work/download/zeromq-4.3.1/zeromq-4.3.1.tar.gz.temp: OK
  Extracting zeromq...
  /bitcoin/depends/sources/zeromq-4.3.1.tar.gz: OK
  Preprocessing zeromq...
  /bin/sh: 1: patch: not found
  ```

ACKs for commit 4de3c1:
  practicalswift:
    utACK 4de3c15671

Tree-SHA512: d1a7b6b591e9de395a3bc54d9df9f97adff5f0a8b5f7a35792c27f49a610543216b2a3f3470f1e3c7dff51276e560d77d123a6d20871b0ed3e5a83da3495c5f2
2019-05-20 06:52:38 -04:00
fanquake
4de3c15671
depends: add patch to common dependencies 2019-05-20 12:01:17 +08:00
Jon Atack
d5dc66e280
doc: fix/improve analyzepsbt in doc/psbt.md
- fix: replace "RPC" with "PSBT"

- output includes the current status of the analyzed psbt's inputs

- apply "if possible" to the fee as well as to the estimated weight and feerate, since the fee is only shown if all utxo slots in the psbt have been filled

- add "final" to the estimated weight and feerate
2019-05-19 17:31:37 +02:00
MeshCollider
7263424458
Merge #16001: Give WalletModel::UnlockContext move semantics
0b09a57ae Give WalletModel::UnlockContext move semantics (Pieter Wuille)

Pull request description:

  WalletModel::UnlockContext seems to implement "move upon copy" semantics; with C++11 this can be done more safely using move semantics (making attempts to actually copy fail instead).

  Not a big deal if this isn't worth review time.

ACKs for commit 0b09a5:
  Empact:
    utACK 0b09a57aec
  jonasschnelli:
    utACK 0b09a57aec
  jb55:
    utACK 0b09a57aec

Tree-SHA512: f827856586afd03666c2d9f50320776afb3dd511ac1bcd293b330f015acd1588551b163dccc97b1351301e3295f4c74d90e5754bcee89faeadf6437d7db165c8
2019-05-20 00:13:53 +12:00
Jonas Schnelli
7110d455eb
Merge #12980: Allow quicker shutdowns during LoadBlockIndex()
af5fa82b6 Allow quicker shutdowns during LoadBlockIndex() (Jonas Schnelli)

Pull request description:

ACKs for commit af5fa8:
  promag:
    utACK af5fa82b67.
  practicalswift:
    utACK af5fa82b67

Tree-SHA512: 1c64dcc5d8a9d3411553257cd5a598dcd29be981660e5bca9283c1d957dc56798abcf41d9969cd573088137597a23e48e62a8c476c463d3f176b86a10048f47b
2019-05-19 10:43:32 +02:00
Hennadii Stepanov
78f9b5160f
Do not show list for the only recipient. 2019-05-18 22:22:05 +03:00
Andrew Chow
ccb26cf347 Batch writes for importmulti
When writing all of the imported data to the wallet, use a common
WalletBatch object so that batch writes are done and the writes
finish more quickly.

AddKeypoolPubkey is no longer needed so it is also removed
2019-05-18 12:59:17 -04:00
Andrew Chow
d6576e349e Have WalletBatch automatically flush every 1000 updates
Since it now automatically flushes, we don't need to have
UpgradeKeyMetadata count and flush separately
2019-05-18 12:58:50 -04:00
Andrew Chow
366fe0be0b Add AddWatchOnlyWithDB, AddKeyOriginWithDB, AddCScriptWithDB functions
AddWatchOnlyWithDB, AddKeyOriginWithDB, and AddCScriptWithDB add their
respective data to the wallet using the provided WalletBatch instead
of creating a new WalletBatch object every time. This allows for batching
writes to the database.
2019-05-18 12:57:58 -04:00
Hennadii Stepanov
0f22a0cf2f
Fix gitian-build.py --verify option
The gitian-builder/bin/gverify script returns the exit code 1 if a
signature verification ends with 'BAD SIGNATURE' or 'MISMATCH' by
design. This commit allows to see the verification results for all
signatures without a premature fail of the gitian-build.py script.
2019-05-18 19:35:02 +03:00
Hennadii Stepanov
4c56a798c0
Set/unset USE_LXC, USE_VBOX, USE_DOCKER explicitly
This prevents the setting of more than one environment variable for the
gitian-builder (e.g., USE_LXC being set shadows USE_DOCKER; for details
see gitian-builder/libexec/make-clean-vm).
2019-05-18 19:34:31 +03:00
Hennadii Stepanov
cbbd98863b
Fix Docker related issues for gitian-build.py
The Docker does not depend on apt-cacher-ng package.
Do not try to install the Docker if docker.service is detected on the
system (e.g., the Docker was installed manually).
Also small style corrections were applied.
2019-05-18 19:34:04 +03:00
Jonas Schnelli
387eb5b343
Merge #15957: Show "No wallets available" in open menu instead of nothing
c3ef63a52 Show loaded wallets as disabled in open menu instead of nothing (MeshCollider)

Pull request description:

  Fixes the confusing behavior reported in #15952

  ![image](https://user-images.githubusercontent.com/3211283/57224284-0e8e7f80-705d-11e9-9554-2450cc3dbb8e.png)

ACKs for commit c3ef63:
  jonasschnelli:
    Tested ACK c3ef63a52f
  kristapsk:
    tACK c3ef63a52f

Tree-SHA512: fc2b94936ca32b89e8146c65e3629785883d78660afc8838818df652a4df9185ddca6b36ebf140a7159ab42b0fa5aa72867558d4572a009be06f0831fa813d1f
2019-05-18 13:02:29 +02:00
Wladimir J. van der Laan
82b64a5a81
Merge #15224: Add RNG strengthening (10ms once every minute)
3cb9ce85d0 Document strenghtening (Pieter Wuille)
1d207bc46f Add hash strengthening to the RNG (Pieter Wuille)

Pull request description:

  This patch improves the built-in RNG using hash strengthening.

  At startup, and once every minute, 32 bytes of entropy are produced from the RNG, repeatedly hashed using SHA512 for 10ms, and then fed back into the RNG, together with high-precision timestamps obtained every 1000 iterations.

ACKs for commit 3cb9ce:
  pstratem:
    utACK 3cb9ce85d0

Tree-SHA512: 4fb6f61639b392697beb81c5f0903f79f10dd1087bed7f34de2abb5c22704a671e37b2d828ed141492491863efb1e7d1fa04408a1d32c9de2f2cc8ac406bbe57
2019-05-18 10:01:54 +02:00
MarcoFalke
c89a63412e
Merge #15863: scripts and tools: Ensure repos are up-to-date in gitian-build.py
feed98e189 Ensure repos are up-to-date (Hennadii Stepanov)

Pull request description:

  These steps are provided by the [release process](https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md#setup-and-perform-gitian-builds).

ACKs for commit feed98:

Tree-SHA512: ad6876d211e524cf6b8dbe4f0f026b77792c8ae3b728e1419f17d5679766603d21c057a7866c183794c814b914a9e4584e16fc501bec77af7e3472a34bd4d913
2019-05-17 16:47:52 -04:00
MarcoFalke
fa47330397
test: Speed up cache creation 2019-05-17 13:21:48 -04:00
MarcoFalke
fa6ad7a5ec
test: Bump MAX_NODES to 12 2019-05-17 12:19:27 -04:00
MarcoFalke
277abed604
Merge #15922: doc: Explain how to pass in non-fundamental types into functions
faede747b3 doc: Explain how to pass in non-fundamental types into functions (MarcoFalke)

Pull request description:

  There is a common misconception in C++ that one ampersand is better than no ampersand and two ampersands are better than one.

ACKs for commit faede7:
  practicalswift:
    ACK faede747b3
  jonasschnelli:
    ACK faede747b3

Tree-SHA512: be12c23287398e4525f16e13de30e51a42d9e38284644eed5b67fa23197b09436d75a3aa8db08555ee91a38a0f159d2722b8a9927ce0bc906e600d2a7976086b
2019-05-17 11:27:22 -04:00
practicalswift
9f85e9cb3d scripted-diff: Rename LockAnnotation to LockAssertion
-BEGIN VERIFY SCRIPT-
git grep -l LockAnnotation | xargs sed -i 's/LockAnnotation/LockAssertion/'
-END VERIFY SCRIPT-
2019-05-17 13:29:04 +02:00
practicalswift
de9b5dbca3 Make sure the compile-time locking promises given via LockAnnotation:s hold also in practice at runtime (ifdef DEBUG_LOCKORDER) 2019-05-17 13:29:04 +02:00
practicalswift
3a809446b3 Move LockAnnotation to make it reflect the truth 2019-05-17 13:29:04 +02:00
practicalswift
cc2588579c Move LockAnnotation from threadsafety.h (imported code) to sync.h (our code) 2019-05-17 13:29:04 +02:00
MarcoFalke
a822a0e4f6
Merge #15999: init: Remove dead code in LoadChainTip
fa86c8aec6 init: Remove dead code in LoadChainTip (MarcoFalke)

Pull request description:

  `LoadChainTip` sets `::ChainActive()` based on `pcoinsTip`'s best block. `LoadChainTip` is never called when that block is null, so we can remove all code from within that method that is only executed when that block is null.

  Fixes #15967  Inconsistent locking behavior in LoadChainTip

ACKs for commit fa86c8:
  promag:
    utACK fa86c8aec6.
  practicalswift:
    utACK fa86c8aec6
  Empact:
    utACK fa86c8aec6
  laanwj:
    utACK fa86c8aec6
  ryanofsky:
    utACK fa86c8aec6. LoadChainTip isn't called currently when pcoinsTip best block is null due to this line:
  jamesob:
    utACK fa86c8aec6

Tree-SHA512: 8961c0e579800a52038ac5655478468852faac055299b64d6cfdf0c213d3bf09669c4889467d09d93457f6c8b073967bb0475a137f77ddd3a3a3c03ad90001c4
2019-05-17 07:22:52 -04:00
MarcoFalke
f3d27d126b
Merge #16033: Hold cs_main when reading chainActive via getTipLocator(). Remove assumeLocked().
9402ef0739 Remove temporary method assumeLocked(). Remove LockingStateImpl. Remove redundant cs_main locks. (practicalswift)
593a8e8a2c wallet: Use chain.lock() instead of temporary chain.assumeLocked() (practicalswift)

Pull request description:

  Fixes #16028.

  Problem description:

  `LockAnnotation lock(::cs_main)` is a guarantee to the compiler thread analysis that `::cs_main` is locked (when it couldn't be determined otherwise).

  Despite being annotated with the locking guarantee ...

  65526fc866/src/interfaces/chain.cpp (L134-L138)

  ... `getTipLocator()` reads `chainActive` (via `::ChainActive()`) without holding `cs_main`.

  This can be verified by adding the following `AssertLockHeld(cs_main)`:

  ```
  $ git diff
  diff --git a/src/interfaces/chain.cpp b/src/interfaces/chain.cpp
  index 59623284d..9fc693a0f 100644
  --- a/src/interfaces/chain.cpp
  +++ b/src/interfaces/chain.cpp
  @@ -134,6 +134,7 @@ class LockImpl : public Chain::Lock
       CBlockLocator getTipLocator() override
       {
           LockAnnotation lock(::cs_main);
  +        AssertLockHeld(::cs_main);
           return ::ChainActive().GetLocator();
       }
       Optional<int> findLocatorFork(const CBlockLocator& locator) override
  $ make check
  ../build-aux/test-driver: line 107: 12881 Aborted                 "$@" > $log_file 2>&1
  FAIL: qt/test/test_bitcoin-qt
  ```

ACKs for commit 9402ef:
  MarcoFalke:
    utACK 9402ef0739
  ryanofsky:
    utACK 9402ef0739. Changes are consolidating commits and removing redundant lock2 cs_main calls

Tree-SHA512: 0a030bf0c07eb53194ecc246f973ef389dd42a0979f51932bf94bdf7e90c52473ae03be49718ee1629582b05dd8e0dc020b5a210318c93378ea4ace90c0f9f72
2019-05-17 07:17:41 -04:00
darosior
8a6810d0d2
Add a 'logpath' field to getrpcinfo 2019-05-16 23:01:00 +02:00
MarcoFalke
fa499b5f02
rpc: bugfix: Properly use iswitness in converttopsbt
Also explain the param in all RPCs
2019-05-16 15:56:04 -04:00
practicalswift
9402ef0739 Remove temporary method assumeLocked(). Remove LockingStateImpl. Remove redundant cs_main locks. 2019-05-16 21:43:22 +02:00
practicalswift
593a8e8a2c wallet: Use chain.lock() instead of temporary chain.assumeLocked() 2019-05-16 21:42:34 +02:00
Wladimir J. van der Laan
8f2f17f79a
Merge #15970: Utils and libraries: fix static_assert for macro HAVE_THREAD_LOCAL
41ab2a8924 fix static_assert for macro HAVE_THREAD_LOCAL (orient)

Pull request description:

  Utils and libraries: fix static_assert for macro HAVE_THREAD_LOCAL if define DEBUG_LOCKCONTENTION

ACKs for commit 41ab2a:
  laanwj:
    utACK 41ab2a8924

Tree-SHA512: 6c1d20375a70cbdef1140c544f443106d6bf6c34b1da2ddc66739f2b662a0d6b800288f48bf451a3d5937bac7e40b8ecda3a4effcc978d0093fc497410447ea7
2019-05-16 20:19:10 +02:00
MarcoFalke
fa5c5cd141
rpc: Switch touched RPCs to IsValidNumArgs 2019-05-16 14:15:40 -04:00
MarcoFalke
fd7d97decb
Merge #15820: docs: Add productivity notes for dummy rebases
01971da9bd docs: Add productivity notes for "dummy rebases" (Carl Dong)

Pull request description:

  When rebasing, we often want to do a "dummy rebase" whereby we are not rebasing over an updated master. This is because rebases can be confusing enough already, and we don't want to resolve upstream conflicts together with our local rebase conflicts due to fixup commits, commit rearrangements, and such. This productivity section details how to do such "dummy rebase"s.

ACKs for commit 01971d:

Tree-SHA512: 241a451cec01dc9a01a2286bdee1441cac6d28007f5b173345744d2abf436da916c3f2553ff0d1c5b3687055107b37872dda9529288645e4bae7b3cb46923b7e
2019-05-16 13:45:12 -04:00
Wladimir J. van der Laan
376638afcf
Merge #14047: Add HKDF_HMAC256_L32 and method to negate a private key
8794a4b3ae QA: add test for HKDF HMAC_SHA256 L32 (Jonas Schnelli)
551d489416 Add HKDF HMAC_SHA256 L=32 implementations (Jonas Schnelli)
3b64f852e4 QA: add test for CKey::Negate() (Jonas Schnelli)
463921bb64 CKey: add method to negate the key (Jonas Schnelli)

Pull request description:

  This adds a limited implementation of `HKDF` (defined by rfc5869) that supports only HMAC-SHA256  and length output of 32 bytes (will be required for v2 transport protocol).

  This PR also includes a method to negate a private key which is useful to enforce public keys starting with 0x02 (or 0x03) (a requirement for the v2 transport protocol). The new `CKey::Negate()` method is pretty much a wrapper around `secp256k1_ec_privkey_negate()`.

  Including tests.

  This is a subset of #14032 and a pre-requirement for the v2 transport protocol.

ACKs for commit 8794a4:

Tree-SHA512: 5341929dfa29f5da766ec3612784baec6a3ad69972f08b5a985a8aafdae4dae36f104a2b888d1f5d1f33561456bd111f960d7e32c2cc4fd18e48358468f26c1a
2019-05-16 19:24:52 +02:00
Wladimir J. van der Laan
df7addc4c6
Merge #15990: Add tests and documentation for blocksonly
fa8ced32a6 doc: Mention blocksonly in reduce-traffic.md, unhide option (MarcoFalke)
fa320de79f test: Add test for p2p_blocksonly (MarcoFalke)
fa3872e7b4 test: Format predicate source as multiline on error (MarcoFalke)
fa1dce7329 net: Rename ::fRelayTxes to ::g_relay_txes (MarcoFalke)

Pull request description:

  This is de-facto no longer hidden

ACKs for commit fa8ced:
  jamesob:
    utACK fa8ced32a6

Tree-SHA512: 474fbdee6cbd035ed9068a066b6056c1f909ec7520be0417820fcd1672ab3069b53f55c5147968978d9258fd3a3933fe1a9ef8e4f6e14fb6ebbd79701a0a1245
2019-05-16 19:05:24 +02:00