Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[0.13] Various backports #8679

Merged
merged 12 commits into from
Sep 9, 2016
Merged

[0.13] Various backports #8679

merged 12 commits into from
Sep 9, 2016

Conversation

sipa
Copy link
Member

@sipa sipa commented Sep 7, 2016

This includes backports of #8520 #8540 #8282 #7579 #8624 #8604 #8291 #8524 #8612 #8651 #8606 #8594.

laanwj and others added 12 commits September 7, 2016 16:16
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.
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.
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.
- 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.
- 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.
Also, remove check which is always true
Original version by Nicolas Dorier. Precomputing version by Pieter Wuille.
This makes sure that cs_filter is never held while taking cs_main
or CNode::cs_vSend.
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.
@maflcko
Copy link
Member

maflcko commented Sep 7, 2016

Thanks for going through all the tagged pulls. Could you also include #8646 and close it afterward?

@gmaxwell
Copy link
Contributor

gmaxwell commented Sep 8, 2016

ACK.

@btcdrak
Copy link
Contributor

btcdrak commented Sep 8, 2016

ACK ab295bb

1 similar comment
@fanquake
Copy link
Member

fanquake commented Sep 9, 2016

ACK ab295bb

@laanwj laanwj merged commit ab295bb into bitcoin:0.13 Sep 9, 2016
laanwj added a commit that referenced this pull request Sep 9, 2016
ab295bb Do not add random inbound peers to addrman. (Gregory Maxwell)
bbf379b Fix some locks (Pieter Wuille)
2215c22 Check for compatibility with download in FindNextBlocksToDownload (Pieter Wuille)
b8c79a0 Precompute sighashes (Pieter Wuille)
a987431 [util] CopyrightHolders: Check for untranslated substitution (MarcoFalke)
32d75a7 doc: Update build-openbsd for 0.13.0+ and OpenBSD 5.9 (Wladimir J. van der Laan)
b09e13c build: Updates for OpenBSD (Wladimir J. van der Laan)
0e6d753 [doc] build: Mention curl (MarcoFalke)
f1c0d78 [Qt] show network/chain errors in the GUI (Jonas Schnelli)
2611ad7 Added feeler connections increasing good addrs in the tried table. (Ethan Heilman)
1db3352 qt: Fix random segfault when closing "Choose data directory" dialog (Wladimir J. van der Laan)
75f2065 build: Remove check for `openssl/ec.h` (Wladimir J. van der Laan)
@laanwj
Copy link
Member

laanwj commented Sep 9, 2016

utACK ab295bb - removed need backport tags from all referred pull requests

@maflcko
Copy link
Member

maflcko commented Sep 9, 2016

removed need backport tags from all referred pull requests

I think you missed some, but they are now removed.

@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants