Bitcoin full node and query server

Apr 28, 2025

View in context in the libbitcoin Slack #general mirror.

evoskuil01:26
Generally speaking all of our tables are allocated, written, and then linked. Linkage is either from another table, or from the table head. We manage the creation of these records so that no element is accessible (linked) until it has been allocated and written. Given that head updates are atomic, this is fully thread safe. However I realized the two height indexes are never actually linked, they are just immediately public once allocated. This is problematic given that the write (of the header link) to the element follows the allocation. This can lead to a read conflicting with a write, resulting in an invalid read result.