Bitcoin full node and query server

Oct 28, 2025

View in context in the libbitcoin Slack #general mirror.

evoskuil19:59
Regarding json parse/serialize, as I mentioned a few days ago, the custom streaming json-rpc parser was completed, and very efficient. No allocations until moving completed pieces, no intermediate copying. Streaming SAX parser, one char at a time. This was about 6 days work, and another day for the custom serializer. The serializer is not streaming however. I also implemented both using boost::json parse/serialization, which is a DOM model, not SAX. This is a highly efficient library, and easy to use, however the DOM model results in a full copy of the object in/out of an intermediate state. Additionally I didn't believe that there was an associated streaming parser. Turns out that there is, both parse and serialize can be streamed on an individual char boundary (so a benefit on the serialization side). After discovering this I took another look at the tradeoffs between the existing custom implementation and a boost::json based impl.