Bitcoin full node and query server

Jan 7, 2025

View in context in the libbitcoin Slack #general mirror.

evoskuil18:48
The expandable-header table database primitives required for the new cache table is complete and tested. This is a new type array_map to complement the existing hash_map and simple_array types. The new table is indexed by a positional array, which provides an insertion sort capability with O(1). There is no search to create or to retrieve from the sorted table, with elements being inserted out of order. This is because the insertion code has knowledge of the ordinal position (height) when inserting. As all tables it is append only with a random access head. The main distinctions are that the head may expand, and there is no hash function or conflict lists (not a hashmap). The header indexes blobs of data by candidate block height, written out of order. This required the introduction of a second head type (hash_head and array_head) and a second map type (hashmap and arraymap) to produce a second table type (hash_map and array_map). The old array_map is renamed to array_simple as it was not actually a map. Test are complete and moving on to the creation of the new table/header instance via config and the store.