Because the poll/select loop may pause for 100msec before actually doing a
send, and we have no way to force the loop awake, try sending from the calling
thread if the queue is empty.
Also, disable nagle as all sends should be either full messages or unfinished
sends.
This shaves an average of ~1 minute or so off of my accumulated runtime, and
10-15 seconds off of actual runtime.
0063d2c3d [tests] Make p2p-leaktests.py more robust (John Newbery)
Pull request description:
There has been an example of p2p-leaktests.py failing on travis in the new service bits test (introduced in #11001 . It appeared to me that the previous p2p connections had not been fully disconnected before attempting to add new p2p connections.
I've added a sleep and restarted the NetworkThread, but I don't know whether this will fix the problem, since I'm unable to reproduce the failure locally.
@MarcoFalke - not sure what you want to do here? I don't think this change could make things any worse.
Tree-SHA512: f5427c26267185a903c9b75bb3925bf153b8afce70c8e493bf8f585f57d809d20643b4ee69081300b211d22e960242aecc3d719f4ddd230aa08fdc5484b55055
fadd0c16b [qa] zapwallettxes: Wait up to 3s for mempool reload (MarcoFalke)
Pull request description:
There had been intermittent test failures on zapwallettxes, as no time was allotted to reload the mempool.
Tree-SHA512: 993254d2aaca6ea42fceefffed0cf90bdda91c64150179ef2a11337c3fe2cc6bf42b83ea9d9a1a575204fbde2676d7203443b00d053e8c2ed43e017c09d3ab11
fb1f32582 Add listwallets RPC test to multiwallet.py (Cristian Mircea Messel)
Pull request description:
Tree-SHA512: acf3377ac86fcc4e7fe36e3b97120f3e51b7bd94cb7136ce22e7e2043ce8ec5555c246c41f8501272aeb1e56ad16d05eb8c4eeb6acf3315a218c1ed4e5844871
fa4fad9d8 travis: Revert default datadir check (MarcoFalke)
Pull request description:
This still breaks builds. The default datadir check needs more work to stay in master.
Tree-SHA512: b930df4ff8cb76089030aedb2ebbbc1ecc26f9e3d1aba29c78f9f03d7611c6ecaa27afb15ee643690643439d78b98aef9c0c5b2657c7f2fe0c28a3076d6913c2
6d2aac8bb Travis: Test build against system libs (& Qt4) (Luke Dashjr)
8d82e1336 Travis: Remove bc tool from dependencies (Luke Dashjr)
Pull request description:
Also removes now-unnecessary `bc` dependency from other builds.
Tree-SHA512: 815215994eeba0acf27774f57cf3a0bf77bbc22834d3242a227e0d90b5948a05f8b5ef846eb384e3ee575bec60880ae215ccc3882f13b60004a62549d3b3a28f
5acd82de9 rpc: make estimatesmartfee argument naming consistent with documentation (Wladimir J. van der Laan)
24697c40e rpc: update cli for estimatefee argument rename (Wladimir J. van der Laan)
Pull request description:
The first argument of `estimaterawfee` was renamed from `nblocks` to `conf_target` in 06bcdb8da6. Update the client-side table as well.
This makes #10753 pass again.
Tree-SHA512: 107c0072a45e0f4e083dc803d534973e6bd4c005e62337a867815d7c98ab1c21d97b7a495c32763883975cbbb001b80003001a6709b7d9bdd81ce4d441b667be
8fdb6f912 [tests] fixup dbcrash interaction with add_nodes() (John Newbery)
Pull request description:
Another conflict with #11121. Apologies - this is entirely my fault. I didn't run the extended test suite after rebasing on master.
@MarcoFalke@sdaftuar
Tree-SHA512: eefce1d1c63dc4a63c5e030a541e046ad4832e8a709c0a8aad40ffdc4712b2065486778b406dfa57cfd34e66db86064278ee3fea8f2c2afd2390772875e6fa3e
b86a42077 when clearing addrman clear mapInfo and mapAddr (Gregory Sanders)
Pull request description:
Power failure on my machine resulted in a corrupted addrman that would hit bad assertions when trying to serialize the "cleared" addrman to disk: 6866b4912b/src/addrman.h (L320)
Tree-SHA512: 07ca8b6cbd88407e5f3f0dccb346ae31bd1392f4210b2d5c5647c853986bfec95cf70240b92bafdc61b90e452a5d8315962738d10c10c2b53fdabff10503d05a
6f703e9bf Add release notes describing blockmaxweight deprecation (Matt Corallo)
3dc263c9b Use a sensible default for blockmaxweight (Matt Corallo)
ba206d2c6 Deprecate confusing blockmaxsize, fix getmininginfo output (Matt Corallo)
Pull request description:
No sensible user will ever keep the default settings here, so not
having sensible defaults only serves to screw users who are
paying less attention, which makes for terrible defaults.
Additionally, support for block-size-limiting directly has been removed:
* This removes block-size-limiting code in favor of GBT clients
doing the limiting themselves (if at all).
* -blockmaxsize is deprecated and only used to calculate an implied
blockmaxweight, addressing confusion from multiple users.
* getmininginfo's currentblocksize return value was returning
garbage values, and has been removed, also removing a
GetSerializeSize call in some block generation inner loops and
potentially addressing some performance edge cases.
Tree-SHA512: 33010540faf5d6225ad575488b804e180a8d53a41be484ca2932a0485595e28da62f0ade4b279a6bf1c947c7ce389f51fde8651b2ba25deb25e766e0813b993c
No sensible user will ever keep the default settings here, so not
having sensible defaults only serves to screw users who are
paying less attention, which makes for terrible defaults.
* This removes block-size-limiting code in favor of GBT clients
doing the limiting themselves (if at all).
* -blockmaxsize is deprecated and only used to calculate an implied
blockmaxweight, addressing confusion from multiple users.
* getmininginfo's currentblocksize return value was returning
garbage values, and has been removed, also removing a
GetSerializeSize call in some block generation inner loops and
potentially addressing some performance edge cases.
f151f5f50 [macOS] remove Growl support, remove unused code (Jonas Schnelli)
Pull request description:
There is no longer a reason to support Growl.
A) It went to pay-ware since a couple of years
B) Since OSX 10.8, the operating system has its own modal notification options (Notification Center).
This PR removes support for Growl.
OSX notification centre is still supported after this PR.
Tree-SHA512: eee18098d7354c4e98f927bca9963d4843ff6bceee74795f73a66c27eed33efaac00ec2cabde8807efcbc936b16ab712249006fa13f5a3f55e4d44d163f5f9a0
b73628d5a Make sure ~/.bitcoin doesn't exist before build (MeshCollider)
Pull request description:
We've been getting some random travis failures since https://github.com/bitcoin/bitcoin/pull/11260 was merged, because the `~/.bitcoin` directory exists after tests are run. Not sure exactly what's causing it, but this PR ensures the directory doesn't exist before running the build and tests, to see if this fixes the issue.
Edit: travis has been run on this merge twice, and all tests passed both times, so either this fixes the issue or it just got lucky
Tree-SHA512: d48e594cfc19a16f4c6e360ec78956ff4274169e92fac4602ab0b980de32875c1e9d3cb24a40c708b5334dbbf8bf55a8003121591bdb5f3fdd256d63e1235aa8
91c39e38d Update CONTRIBUTRING.md to reduce unnecesarry review workload (Jonas Schnelli)
Pull request description:
The current workload for reviewing pull requests is relatively high and trivial, non-beneficial pull requests tend to slow down the overall development process.
We may want to directly close trivial, non-beneficially pull requests during time of high pull request load.
This PR would prepare for possible direct PR closing.
Tree-SHA512: 6a0fb0133e42a400133cc77e4830620c26af4fe5b69f6238e0e77e686d785bd984d85c681a942701e7719de836147e646091a6c492f1d1e2abb906129566082f
f38c05104 [depends] Don't build libevent sample code (fanquake)
Pull request description:
Noticed today while doing Windows depends builds.
Before and after libevent build on OS X.
```
Building libevent...
GEN include/event2/event-config.h
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
CC buffer.lo
CC bufferevent.lo
CC bufferevent_filter.lo
CC bufferevent_ratelim.lo
CC bufferevent_sock.lo
CC bufferevent_pair.lo
CC event.lo
CC evmap.lo
CC evthread.lo
CC evutil.lo
CC evutil_rand.lo
CC evutil_time.lo
CC listener.lo
CC log.lo
CC select.lo
CC poll.lo
CC kqueue.lo
CC signal.lo
CC evdns.lo
CC event_tagging.lo
CC evrpc.lo
CC http.lo
CC evthread_pthread.lo
CC sample/dns-example.o
CC sample/event-read-fifo.o
CC sample/hello-world.o
CC sample/http-server.o
CC sample/http-connect.o
CC sample/signal-test.o
CC sample/time-test.o
CCLD libevent_core.la
CCLD libevent_pthreads.la
CCLD libevent.la
CCLD libevent_extra.la
CCLD sample/event-read-fifo
CCLD sample/dns-example
CCLD sample/hello-world
CCLD sample/http-server
CCLD sample/http-connect
CCLD sample/signal-test
CCLD sample/time-test
Staging libevent...
```
```
Building libevent...
GEN include/event2/event-config.h
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
CC buffer.lo
CC bufferevent.lo
CC bufferevent_filter.lo
CC bufferevent_pair.lo
CC bufferevent_ratelim.lo
CC bufferevent_sock.lo
CC event.lo
CC evmap.lo
CC evthread.lo
CC evutil.lo
CC evutil_rand.lo
CC evutil_time.lo
CC listener.lo
CC log.lo
CC select.lo
CC poll.lo
CC kqueue.lo
CC signal.lo
CC evdns.lo
CC event_tagging.lo
CC evrpc.lo
CC http.lo
CC evthread_pthread.lo
CCLD libevent_core.la
CCLD libevent_pthreads.la
CCLD libevent.la
CCLD libevent_extra.la
Staging libevent...
```
Tree-SHA512: a82bde38e110a16f934c0f1e95d3ae66662c1b3c1367e4a6e7c4994f585ebeea4f5cbee4d98a8dc64a8e8936eb9f4bb0c55fb65e718f724d88e81cb8fa84be88
7d03418ae Add -usehd to excluded args in check-doc.py (MeshCollider)
Pull request description:
All Travis builds on master are currently failing due to contrib/devtools/check-doc.py picking up `-usehd` in `src/wallet/wallet.cpp#L3845` as an undocumented argument (removed in https://github.com/bitcoin/bitcoin/pull/11250). Just need to add it to the list of unsupported, deprecated and duplicate args in check-doc.py so that it's ignored. Otherwise all builds on top of https://github.com/bitcoin/bitcoin/pull/11250 will fail until this is merged.
Tree-SHA512: 205c9be759b04bc3b85ac2b53fd455b3c0e229320d8e2b7f7d0ef5d5bd8033594b38a2d948250894ee2f4451584aca698476cd4b5cdf82955925683e3068a67c
713a92073 Remove usehd option and warn when it is used (Andrew Chow)
d4c18f733 Bump wallet version number to 159900 (Andrew Chow)
Pull request description:
Bump the wallet version number to 159900 so that new wallets made without a default key will no longer work on previous versions at all. Also remove the `usehd` option to avoid weird interaction with wallet version numbers and HD-ness of wallets.
Tree-SHA512: dd7965505bfad6a926c79afd423236f509229a398a8398076f8d57d90a5974243f9459a61225c4daee560c796f427445c9e55a3ad528a3a97a9123ca6a1269ab
5d2a3995e [trivial] fixup comment for VerifyWallets() (John Newbery)
43b0e81d0 [wallet] Add StartWallets() function to wallet/init.cpp (John Newbery)
290f3c56d [wallet] Add RegisterWalletRPC() function to wallet/init.cpp (John Newbery)
062d63102 [wallet] Add CloseWallets() function to wallet/init.cpp (John Newbery)
77fe07c15 [wallet] Add StopWallets() function to wallet/init.cpp (John Newbery)
2da5eafa4 [wallet] Add FlushWallets() function to wallet/init.cpp (John Newbery)
1b9cee66e [wallet] Rename WalletVerify() to VerifyWallets() (John Newbery)
9c76ba18c [wallet] Rename InitLoadWallet() to OpenWallets() (John Newbery)
Pull request description:
Apologies for the mostly code move only PR. This is a pre-req for both #10740 and #10762
All wallet component initialization/destruction functions are now in their own `wallet/init.cpp` translation unit and are no longer static functions on the CWallet class. The bitcoin_server also no longer has any knowledge that there are multiple wallets in vpwallet.
There should be no changes in behavior from this PR.
Tree-SHA512: 7c260eb094f2fa1a88d803769ba60935810968a7309f731135e4b17623b97f18c03bbcd293c942093d1efce62c6c978f9ff484d54dc9a60bc2fcb5af2d160fcd
Rationale:
- this init function can now open multiple wallets (hence
Wallet->Wallets)
- This is named as the antonym to CloseWallets(), which carries out the
opposite action.
592404f03 Changing &vec[0] to vec.data(), what 9804 missed (MeshCollider)
Pull request description:
This just continues the work of https://github.com/bitcoin/bitcoin/pull/9804
Modifies a lot of `&vector[]`'s to `vector.data()`'s across all the files including tests, just the stuff that 9804 missed
Tree-SHA512: dd1a9dffb999dea4fba78dcc91fe02f90250db86f5c74948e1ff3e8b4036b2154b600555eaa04dece5368920aae3513bc36425dc96e4319ca1041b0928a6b656
2525b972a net: stop both net/net_processing before destroying them (Cory Fields)
80e2e9d0c net: drop unused connman param (Cory Fields)
8ad663c1f net: use an interface class rather than signals for message processing (Cory Fields)
28f11e940 net: pass CConnman via pointer rather than reference (Cory Fields)
Pull request description:
See individual commits.
Benefits:
- Allows us to begin moving stuff out of CNode and into CNodeState (after #10652 and follow-ups)
- Drops boost dependency and overhead
- Drops global signal registration
- Friendlier backtraces
Tree-SHA512: af2038c959dbec25f0c90c74c88dc6a630e6b9e984adf52aceadd6954aa463b6aadfccf979c2459a9f3354326b5077ee02048128eda2a649236fadb595b66ee3