Tree:
fa2ecc48fb
0.10
0.13
0.14
0.15
0.16
0.16.3-insta
0.8
add-dnsseed-keva-one
add-kex-keva-one-dns
cn
cn_merge
cn_mining
fix-qt-dpi-warning
idb-fix
inlude-qpainterpath
issue_19
jw-dev
keva-gui
kevaview
kvazar
main
master
mz_test
rx
update-boost-1-74
validate-key-value-lenght
views
wsl
zmq
0.16.6.0-rc1
0.8.3.7-cc
kvazar-1.0.0
kvazar-1.0.1
kvazar-1.1.0
kvazar-1.1.1
v0.1.5
v0.1.6test1
v0.10-mark12
v0.10.0
v0.10.0.2
v0.10.0rc1
v0.10.0rc2
v0.10.0rc3
v0.10.0rc4
v0.10.1
v0.10.1.1
v0.10.1.2
v0.10.1.2-osxsign3
v0.10.1.3
v0.10.1rc1
v0.10.1rc2
v0.10.1rc3
v0.10.2
v0.10.2.1
v0.10.2.2
v0.10.2rc1
v0.10.3.0rc1
v0.10.3rc1
v0.10.4.0
v0.10.4.0rc1
v0.13.2
v0.13.2.1
v0.13.2rc1
v0.13.2rc2
v0.13.2rc3
v0.13.3
v0.13.3rc1
v0.13.3rc2
v0.14.2
v0.14.2rc1
v0.14.2rc2
v0.15.0.1rc1
v0.15.1
v0.15.1rc1
v0.16.0
v0.16.0rc1
v0.16.2
v0.16.2rc1
v0.16.3
v0.16.3-rc1
v0.16.3-rc2
v0.16.3-rc3
v0.16.3-rc7
v0.16.3-rc8
v0.16.3.1
v0.16.4
v0.16.5
v0.16.5.1
v0.16.5.2
v0.16.5.3
v0.16.6.0
v0.16.7.0
v0.16.8.0
v0.2.0
v0.2.10
v0.2.11
v0.2.12
v0.2.13
v0.2.2
v0.2.4
v0.2.5
v0.2.6
v0.2.7
v0.2.8
v0.2.9
v0.2rc2
v0.3.0
v0.3.1
v0.3.10
v0.3.11_notexact
v0.3.12
v0.3.13
v0.3.14
v0.3.15
v0.3.17
v0.3.18
v0.3.19
v0.3.1rc1
v0.3.2
v0.3.20
v0.3.20.01_closest
v0.3.20.2_closest
v0.3.21
v0.3.21rc
v0.3.22
v0.3.22rc1
v0.3.22rc2
v0.3.22rc3
v0.3.22rc4
v0.3.22rc5
v0.3.22rc6
v0.3.23
v0.3.23rc1
v0.3.24
v0.3.24rc1
v0.3.24rc2
v0.3.24rc3
v0.3.3
v0.3.6
v0.3.7
v0.3.8
v0.3rc1
v0.3rc2
v0.3rc4
v0.4.0
v0.4.00rc1
v0.4.00rc2
v0.5.0
v0.5.0rc1
v0.5.0rc2
v0.5.0rc3
v0.5.0rc4
v0.5.0rc5
v0.5.0rc6
v0.5.0rc7
v0.5.1
v0.5.1rc1
v0.5.1rc2
v0.5.2
v0.5.3
v0.5.3rc4
v0.6.0
v0.6.0rc1
v0.6.0rc2
v0.6.0rc3
v0.6.0rc4
v0.6.0rc5
v0.6.0rc6
v0.6.1
v0.6.1rc1
v0.6.1rc2
v0.6.2
v0.6.2.1
v0.6.2.2
v0.6.3
v0.6.3a
v0.6.3b
v0.6.3c
v0.6.3rc1
v0.6.9
v0.6.9.1
v0.6.9.2
v0.7.0
v0.7.0rc1
v0.7.0rc2
v0.7.0rc3
v0.7.1
v0.7.1rc1
v0.7.2
v0.7.2rc2
v0.8.0
v0.8.0rc1
v0.8.1
v0.8.2
v0.8.2.3
v0.8.2rc1
v0.8.2rc2
v0.8.2rc3
v0.8.3
v0.8.3.1
v0.8.3.2
v0.8.3.3
v0.8.3.4
v0.8.3.5
v0.8.3.6
v0.8.3.7
v0.8.3.7-cc
v0.8.3.7-ccsec
v0.8.4
v0.8.4.1
v0.8.4.1-cc
v0.8.4.1-ccsec
v0.8.4.1-omg1
v0.8.4.1-sse2test
v0.8.4rc1
v0.8.4rc2
v0.8.5
v0.8.5-nodebloom
v0.8.5.1
v0.8.5.1-macosx
v0.8.5.1-omg1
v0.8.5.1-omg2
v0.8.5.1-omgscrypt
v0.8.5.2-rc1
v0.8.5.2-rc2
v0.8.5.2-rc3
v0.8.5.2-rc4
v0.8.5.2-rc4-detect
v0.8.5.2-rc5
v0.8.5.2-rc6
v0.8.5.2rc1
v0.8.5.3-rc1
v0.8.5.3-rc2
v0.8.5.3-rc3
v0.8.5.3-rc4
v0.8.5.3-rc4-no-mmap
v0.8.5.3-rc5
v0.8.5.3-rc6
v0.8.5.3-rc7
v0.8.5.3-rc8
v0.8.6.1
v0.8.6.2
v0.8.6.3-mark2
v0.8.6.9
v0.8.7.1
v0.8.7.2
v0.8.7.3
v0.8.7.4
v0.8.7.5
v0.9.0rc1
v0.9.0rc2
v0.9.2
v0.9.2.1
v0.9.2rc1
v0.9.2rc2
v0.9.3
v0.9.3-preview4
v0.9.3-preview5
v0.9.3rc1
v0.9.3rc2
v0.9.4
${ noResults }
1 Commits (fa2ecc48fb84f5d74807acb162b46ccece6f4caa)
Author | SHA1 | Message | Date |
---|---|---|---|
Wladimir J. van der Laan | 40b556d374 |
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 |
9 years ago |