Bitcoin full node and query server

December 2022

Archive of the libbitcoin Slack #general channel.

Thursday, December 1, 2022

pmienk18:30
Topic: Dev Weekly Status Time: December 1, 2022 01:00pm Pacific Time (US and Canada) Join Zoom Meeting https://us05web.zoom.us/j/87666370902?pwd=bEZDUlJ0MGJ5V3dVMUhVdHl5QzdFdz09 Meeting ID: 876 6637 0902 Passcode: 85U0bF

Saturday, December 3, 2022

evoskuil06:36
Just finished query and test for this set of tables and relation (the full archive set):
image.png
    bool set_tx(const transaction& tx) NOEXCEPT;
    bool set_header(const header& header, const context& ctx) NOEXCEPT;
    bool set_block(const block& block, const context& ctx) NOEXCEPT;
    bool set_txs(const hash_digest& key, const system::hashes& hashes) NOEXCEPT;

    input::cptr get_spender(const hash_digest& tx_hash, uint32_t index) NOEXCEPT;
    input::cptr get_input(const hash_digest& tx_hash, uint32_t index) NOEXCEPT;
    output::cptr get_output(const hash_digest& tx_hash, uint32_t index) NOEXCEPT;
    output::cptr get_output(const point& prevout) NOEXCEPT;
    transaction::cptr get_tx(const hash_digest& key) NOEXCEPT;
    header::cptr get_header(const hash_digest& key) NOEXCEPT;
    block::cptr get_block(const hash_digest& key) NOEXCEPT;
    system::hashes get_txs(const hash_digest& key) NOEXCEPT;
The implementation of runtime checkpointing and fault detection/recovery from snapshot is implemented/test. Additionally the query design over mmap is fully read/write concurrent and materially more efficient than v3. Moving on now to index tables and related query.
💥 1🔥 1🎉 1

Sunday, December 4, 2022

evoskuil05:23
Finished implementing the remaining tables (5 indexes and 5 caches), plus the 7 archive tables). Testing for the new 10 tomorrow, which is pretty simple/repetitive. Then on to adding query interface support and test for the anticipated queries against the new tables. After this the store is complete. Current test coverage about 96% by line.
(edited)
Considering setting up a test run to populate the entire blockchain from some source. This should give sizing and provide an opportunity to run performance and concurrency tests. Any ideas on sourcing this? If we have binary blocks in wire format we can deserialize straight into the store.
7 replies · jungly, evoskuil, neillm · last Dec 04, 2022
jungly09:51
There's a tool by rusty that dumps the chain in various formats
evoskuil11:15
Ha, that reads the bitcoind store. Getting the store is the issue, not reading it.
jungly12:44
Ah. Gotcha. I thought you just wanted something that already existed to read the store
neillm20:29
I have v3 table snapshots if it helps
neillm20:29
mainnet/testnet
neillm20:31
There was a time early v4 had the getblock api working, which might work, but that time is probably long gone(?)
neillm20:36
Heads up that at some point this month, I'd like to rebuild the v3 community servers (mainnet/testnet), as they've been in various states of sub-optimal for some time. At the very least, they need more disk space, so swapping out the SSDs is in order. I'll likely update the OS as well (debian)
👍🏻 1

Tuesday, December 6, 2022

evoskuil06:32
Cache and index tables fully tested now, that's the full store. Now on to writing and testing the queries for cache and index, and the store will be complete.
🎉 1💯 1

Thursday, December 15, 2022

pmienk20:10
Topic: Dev Weekly Status Time: December 15, 2022 01:00pm Pacific Time (US and Canada) Join Zoom Meeting https://us05web.zoom.us/j/87666370902?pwd=bEZDUlJ0MGJ5V3dVMUhVdHl5QzdFdz09 Meeting ID: 876 6637 0902 Passcode: 85U0bF

Saturday, December 17, 2022

evoskuil23:33
Store query interface for all anticipated node/server scenarios. Now to finish its testing. 93 public (and 5 protected) methods.
(edited)
🎉 2

Sunday, December 25, 2022

neillm04:17
Merry Christmas, all! 🎄 🤶 🎅 With any luck I'll upgrade the servers next week ... 😅
🎉 2

Thursday, December 29, 2022

pmienk20:30
Topic: Dev Weekly Status Time: December 29, 2022 01:00pm Pacific Time (US and Canada) Join Zoom Meeting https://us05web.zoom.us/j/87666370902?pwd=bEZDUlJ0MGJ5V3dVMUhVdHl5QzdFdz09 Meeting ID: 876 6637 0902 Passcode: 85U0bF