Bitcoin full node and query server

Apr 26, 2023

View in context in the libbitcoin Slack #general mirror.

evoskuil00:28
Over the past week I've split out the spend index from the input table. This is intended to reduce the amount of bytes paged in iterating all possibly-confirmed spenders of an output. The input table is 3/5 of the entire store, and the conflict lists are incorporated into the table body, as conflict lists independent of bodies would significantly increase store size. So moving this index to an independent table was expected to reduce the cost of the double spend query by not having to page over 350gb of data just for this simple query. The change of hash function (described above) from djb2 to "no-hash" was a material improvement generally, but not enough to mitigate this issue. So at this point the implementation of the spender table split from the input table is complete, I've performed a couple of full syncs, and run some queries to measure the change...