bitcoind stops responding



Summary:

In an email chain on October 4th, 2013, Gavin Andresen stated that the RPC code in Bitcoin should be smarter and suggested a simple patch which would make the last rpc thread ignore keepalive and always disconnect. Currently, the HTTP server code paths use blocking I/O which means that all connections and operations are blocking. RPC was multi-threaded to work around this issue. Jeff Garzik tried a multi-threaded approach writing an entire boost::asio skeleton JSON-RPC HTTP server. Despite it being working tested code that uses boost::asio properly, it's messy and requires more lines of code per boost async action. The goal is to make the code truly async I/O, and Jeff believes that a single thread with async I/O is likely sufficient for even heavy uses of RPC, since today it all goes through a big lock anyway.


Updated on: 2023-06-07T17:10:54.693499+00:00