Bitcoin full node and query server

May 5, 2026

View in context in the libbitcoin Slack #general mirror.

evoskuil19:03
With the network generalizations complete we can support ws/s messaging on any http/s channel, so I'm going to now add subscription and notification to our native endpoint for emission of high speed node events:
/// Reporting events.
enum events : uint8_t
{
    /// Candidate chain.
    header_archived,     // header checked, accepted
    header_organized,    // header pushed (previously archived)
    header_reorganized,  // header popped

    /// Blocks.
    block_archived,      // block checked
    block_buffered,      // block buffered for validation
    block_validated,     // block checked, accepted, connected
    block_confirmed,     // block checked, accepted, connected, confirmable
    block_unconfirmable, // block invalid (after headers-first archive)
    validate_bypassed,   // block checked, accepted [assumed]
    confirm_bypassed,    // block checked, accepted, connected [assumed]

    /// Transactions.
    tx_archived,         // unassociated tx checked, accepted, connected
    tx_validated,        // associated tx checked, accepted, connected
    tx_invalidated,      // associated tx invalid (after headers-first archive)

    /// Confirmed chain.
    block_organized,     // block pushed (previously confirmable)
    block_reorganized,   // block popped

    /// Mining.
    template_issued,      // block template issued for mining

    /// Timespans.
    snapshot_secs,        // snapshot timespan in seconds.
    prune_msecs,          // prune timespan in milliseconds.
    reload_msecs,         // store reload timespan in milliseconds.
    block_usecs,          // getblock timespan in microseconds.
    ancestry_msecs,       // getancestry timespan in milliseconds.
    filter_msecs,         // getfilter timespan in milliseconds.
    filterhashes_msecs,   // getfilterhashes timespan in milliseconds.
    filterchecks_msecs    // getcfcheckpt timespan in milliseconds.
};