Files
dragonx/src
Wladimir J. van der Laan afd64f76ea evhttpd implementation
- *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
2017-03-24 09:03:59 +13:00
..
2015-11-04 23:48:07 +01:00
2012-04-27 10:14:33 -04:00
2016-10-04 00:45:56 -07:00
2017-03-24 09:03:59 +13:00
2017-03-03 10:57:05 -08:00
2016-07-15 19:57:55 -07:00
2014-12-19 19:55:32 +01:00
2016-09-08 21:46:15 -07:00
2017-03-24 09:03:59 +13:00
2016-09-09 00:22:18 -06:00
2017-03-24 09:03:59 +13:00
2017-03-10 20:09:40 +13:00
2016-06-17 00:21:58 +12:00
2015-05-01 11:21:27 +00:00
2017-03-08 12:50:33 -08:00
2016-10-20 00:36:32 +01:00
2014-12-19 19:55:32 +01:00
2017-03-24 09:03:59 +13:00
2017-03-24 09:03:59 +13:00
2017-03-24 09:03:59 +13:00
2017-03-24 09:03:59 +13:00
2017-03-24 09:03:59 +13:00
2017-03-24 09:03:59 +13:00
2017-01-23 17:06:54 +01:00
2015-05-06 18:37:49 +02:00
2016-09-01 11:48:15 +12:00
2014-12-19 19:55:32 +01:00
2017-03-03 10:57:15 -08:00
2017-03-24 09:03:59 +13:00
2015-05-01 11:21:27 +00:00
2017-03-02 13:23:03 -08:00
2017-03-02 13:23:03 -08:00
2014-12-19 19:55:32 +01:00
2016-09-08 12:22:08 +12:00
2017-01-23 17:06:54 +01:00
2017-01-23 17:06:54 +01:00
2017-03-24 09:03:59 +13:00
2017-03-02 13:23:03 -08:00
2017-03-24 09:03:59 +13:00
2017-03-24 09:03:59 +13:00
2017-03-24 09:03:59 +13:00
2017-03-24 09:03:59 +13:00
2015-05-16 17:59:23 -04:00
2014-12-19 19:55:32 +01:00
2016-10-25 19:48:38 +01:00
2016-07-18 10:07:30 -06:00
2016-08-13 11:12:18 -04:00
2016-12-09 16:59:34 +13:00
2014-12-19 19:55:32 +01:00