We should learn about new peers via address messages.
An inbound peer connecting to us tells us nothing about
its ability to accept incoming connections from us, so
we shouldn't assume that we can connect to it based on
this.
The vast majority of nodes on the network do not accept
incoming connections, adding them will only slow down
the process of making a successful connection in the
future.
Nodes which have configured themselves to not announce would prefer we
not violate their privacy by announcing them in GETADDR responses.
- Python 3 now supported.
- Bump boost version to 1.61 - one boost patch no longer needed.
- All checked with OpenBSD 5.9, except for the clang part, I left this
as-is for someone adventurous.
- Mention overriding resource limits, OpenBSD's default ulimit does not
suffice for building Bitcoin Core with gcc 4.9.3.
- LevelDB platform was not guessed correctly (it ended up defining
`-DOS_OPENBSD59` instead of `-DOS_OPENBSD`)
- On OpenBSD there is no convenience link from `python3.5` to `python3`:
add detection for other python interpreter names.
- If it has to guess the LevelDB OS, print a autoconf warning so that
the user can check.
Tests if addresses are online or offline by briefly connecting to them. These short lived connections are referred to as feeler connections. Feeler connections are designed to increase the number of fresh online addresses in tried by selecting and connecting to addresses in new. One feeler connection is attempted on average once every two minutes.
This change was suggested as Countermeasure 4 in
Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, Ethan Heilman,
Alison Kendler, Aviv Zohar, Sharon Goldberg. ePrint Archive Report
2015/263. March 2015.
The `pickDataDirectory()` function was calling `exit(0)` to quit
the application when the user closes the dialog without choosing
a data directory.
This is a bad idea because a background thread is created (to
check free space on the drive of the currently selected datadir).
The thread is not stopped and unwound properly, resulting in a potential
race condition somewhere deep in Qt.
So replace the `exit()` by a boolean return value, and let the
stack unwind normally.
We don't use any elliptic curves from OpenSSL anymore, nor include this
header anywhere but optionally in the tests of secp256k1 (which has
its own autoconf setup).
Reported by sinetek on IRC.
2f58589 Mention dump/import support for HD wallets (Pieter Wuille)
fe20b83 Remove refactors from list of changes (Pieter Wuille)
7f84015 Inline mempool RPCs and feefilter into misc sections (Pieter Wuille)
- Ignore GETBLOCKTXN requests for unknown blocks
Don't disconnect peers, or else we leak information that could be
used for fingerprinting.
- Ignore CMPCTBLOCK messages for pruned blocks
Also ignores CMPCTBLOCK announcements that have too little work. This is to
prevent disk-exhaustion DoS.
Github-Pull: #8408
Rebased-From: 1de2a466321d06e49834
de45c06 [Wallet] Add CKeyMetadata record for HDMasterKey(s), factor out HD key generation (Jonas Schnelli)
f142c11 [0.13] Create a new HD seed after encrypting the wallet (Jonas Schnelli)