# Add-on Block Fixed storage which stores an immutable binary-search tree of items. Each item consists of a pair of pointers to binary data of arbitrary length. These two pointers are interpreted as a `key` and a `value`. Since items contain only pointers, multiple instances of data are stored just once. Block contains 3 logical parts: a) header (256 bytes) b) binary-search tree (variable size) c) item data (variable size) ## Header | offset | length | name | description | |-------:|---------:|--------------|--------------| | 0x0000 | 4 | magic | magic `TRAB` | | 0x0004 | 64 | sig | signature of the whole blob (except magic and sig) | | 0x0044 | 4 | tree_count | number of elements in the tree | | 0x0048 | 4 | items_size | length of the item section | | 0x004A | 182 | reserved | - | ## Binary-Search Tree Each node of the tree has the following structure: | offset | length | name | description | |-------:|---------:|--------------|--------------| | ... | 2 | key_offset | key offset (divided by 4) | | ... | 2 | value_offset | value offset (divided by 4) | # Item Data Each item has the following structure: | offset | length | name | description | |-------:|---------:|--------------|--------------| | ... | 2 | item_len | item (key or value) length | | ... | 2 | item_flags | item (key or value) flags | | ... | item_len | item_data | item (key or value) data (padded to multiple of 4) |