Age | Commit message (Collapse) | Author |
|
Add libevent, change usage of libssl from "secure communication" to
"crypto" that's more accurate after RPC SSL support removed.
|
|
|
|
Make it possible to reuse sockets.
This is necessary to make the RPC tests work in WINE.
|
|
Split StartHTTPServer into InitHTTPServer and StartHTTPServer to give
clients a window to register their handlers without race conditions.
Thanks @ajweiss for figuring this out.
|
|
|
|
Implement RPCTimerHandler for Qt RPC console, so that `walletpassphrase`
works with GUI and `-server=0`.
Also simplify HTTPEvent-related code by using boost::function directly.
|
|
|
|
- *Replace usage of boost::asio with [libevent2](http://libevent.org/)*.
boost::asio is not part of C++11, so unlike other boost there is no
forwards-compatibility reason to stick with it. Together with #4738 (convert
json_spirit to UniValue), this rids Bitcoin Core of the worst offenders with
regard to compile-time slowness.
- *Replace spit-and-duct-tape http server with evhttp*. Front-end http handling
is handled by libevent, a work queue (with configurable depth and parallelism)
is used to handle application requests.
- *Wrap HTTP request in C++ class*; this makes the application code mostly
HTTP-server-neutral
- *Refactor RPC to move all http-specific code to a separate file*.
Theoreticaly this can allow building without HTTP server but with another RPC
backend, e.g. Qt's debug console (currently not implemented) or future RPC
mechanisms people may want to use.
- *HTTP dispatch mechanism*; services (e.g., RPC, REST) register which URL
paths they want to handle.
By using a proven, high-performance asynchronous networking library (also used
by Tor) and HTTP server, problems such as #5674, #5655, #344 should be avoided.
What works? bitcoind, bitcoin-cli, bitcoin-qt. Unit tests and RPC/REST tests
pass. The aim for now is everything but SSL support.
Configuration options:
- `-rpcthreads`: repurposed as "number of work handler threads". Still
defaults to 4.
- `-rpcworkqueue`: maximum depth of work queue. When this is reached, new
requests will return a 500 Internal Error.
- `-rpctimeout`: inactivity time, in seconds, after which to disconnect a
client.
- `-debug=http`: low-level http activity logging
|
|
Sending a request body with GET request is not valid in HTTP spec, and
not compatible with evhttpd.
|
|
Now that boost no longer automatically initializes openssl, we have to
do it ourselves.
|
|
|
|
|
|
Dropping all use of boost::asio.
|
|
This option was a temporary workaround, and is no longer necessary
with the new web server.
|
|
|
|
10e469a travis: bump wine to 1.7 (Cory Fields)
|
|
|
|
bfadae3 travis: for travis generating an extra build (Cory Fields)
|
|
|
|
060058e Enable python tests for Native Windows (ptschip)
|
|
9f3e48e add support for miniupnpc api version 14 (Pavel Vasin)
|
|
9bebf60 Make sure LogPrint strings are line-terminated (J Ross Nicoll)
|
|
|
|
1) Multiplatorm support for devnull
2) Fixed a bug in the handling of cache files
3) Deleted run-bitcoin-cli as no longer needed
|
|
c33c11e Improve addrman Select() performance when buckets are nearly empty (Pieter Wuille)
|
|
bd30c3d rpc-tests: re-enable rpc-tests for Windows (Cory Fields)
a193387 net: Set SO_REUSEADDR for Windows too (Cory Fields)
|
|
|
|
|
|
When running the rpc tests in Wine, nodes often fail to listen on localhost
due to a stale socket from a previous run. This aligns the behavior with other
platforms.
|
|
e938122 Stop parsing JSON after first finished construct. (Daniel Kraft)
|
|
0ce7398 Add p2p-fullblocktest.py (Casey Rodarmor)
|
|
The value of new arg ttl is set to 2 as it's recommended default.
|
|
|
|
e0862c0 Reformat validateaddress help, add missing iswatchonly description. (Pavel Janík)
|
|
17221bf chainparams: don't use std namespace (Cory Fields)
f0deec5 chainparams: move CCheckpointData into chainparams.h (Cory Fields)
|
|
8be371d Do not store more than 200 timedata samples. (Pavel Janík)
|
|
1123cdb add unit test for CNetAddr::GetGroup. (Alex Morcos)
bba3db1 Fix masking of irrelevant bits in address groups. (Alex Morcos)
|
|
1d1073c consensus: cache the openssl EC_GROUP to avoid a race condition for each CECKey instantiation (Cory Fields)
|
|
Fix https://github.com/bitcoin/bitcoin/issues/6558. In particular, stop
parsing JSON after the first object or array is finished. Check that no
other garbage follows, and fail the parser if it does.
|
|
|
|
CECKey instantiation
|
|
c5c1edf Fix spelling mistake in -> if. (Mark Friedenbach)
e846b2a Correct a possibly intentional pun that is nevertheless hard to read: "two times of nLockTime." What is meant is that there are two kinds, or categories of nLockTime. (Mark Friedenbach)
|
|
9f68ed6 typofixes (found by misspell_fixer) (Veres Lajos)
|
|
fb08d92 Make sure we re-acquire lock if a task throws (Casey Rodarmor)
|
|
7bd57bb Add limitedmap test (Casey Rodarmor)
8b06894 Disallow unlimited limited maps (Casey Rodarmor)
fd2d862 Make limited map actually respect max size (Casey Rodarmor)
|
|
2016576 Fix crash when mining with empty keypool. (Daniel Kraft)
|
|
|
|
Since the introduction of the ScriptForMining callback, the mining
functions (setgenerate and generate) crash with an assertion failure
(due to a NULL pointer script returned) if the keypool is empty. Fix
this by giving a proper error.
|
|
|
|
|