Bitcoin full node and query server

Mar 24, 2025

View in context in the libbitcoin Slack #general mirror.

evoskuil18:47
This produces the following matrix:
using screen_t = std_array<uin32_t, 16>;
using matrix_t = std_array<screen_t, 16>;
constexpr matrix_t matrix
{
    screen_t
    {
        // 1
        0b0000'1111111111111111111111111111
    },
    {
        // 2
        0b0000'1111111111111100000000000000,
        0b0000'0000000000000011111111111111
    },
    {
        // 3
        0b0000'1111111111000000000000000000,
        0b0000'0000000000000011111111100000,
        0b0000'0000000000111100000000011111
    },
    {
        // 4
        0b0000'1111111000000000000000000000,
        0b0000'0000000000000011111110000000,
        0b0000'0000000000111100000000011100,
        0b0000'0000000111000000000001100011
    },
    {
        // 5
        0b0000'1111110000000000000000000000,
        0b0000'0000000000000011111100000000,
        0b0000'0000000000111100000000011000,
        0b0000'0000000111000000000001100000,
        0b0000'0000001000000000000010000111
    },
    {
        // 6
        0b0000'1111100000000000000000000000,
        0b0000'0000000000000011111000000000,
        0b0000'0000000000111100000000010000,
        0b0000'0000000111000000000001100000,
        0b0000'0000001000000000000010000110,
        0b0000'0000010000000000000100001001
    },
    {
        // 7
        0b0000'1111000000000000000000000000,
        0b0000'0000000000000011110000000000,
        0b0000'0000000000111100000000000000,
        0b0000'0000000111000000000001000000,
        0b0000'0000001000000000000010000110,
        0b0000'0000010000000000000100001001,
        0b0000'0000100000000000001000110000
    },
    {
        // 8
        0b0000'1111000000000000000000000000,
        0b0000'0000000000000011110000000000,
        0b0000'0000000000111100000000000000,
        0b0000'0000000111000000000001000000,
        0b0000'0000001000000000000010000100,
        0b0000'0000010000000000000100001000,
        0b0000'0000100000000000001000100000,
        0b0000'0000000000000000000000010011
    },
    {
        // 9
        0b0000'1111000000000000000000000000,
        0b0000'0000000000000011100000000000,
        0b0000'0000000000111000000000000000,
        0b0000'0000000111000000000000000000,
        0b0000'0000001000000000000010000100,
        0b0000'0000010000000000000100001000,
        0b0000'0000100000000000001000100000,
        0b0000'0000000000000000000000010011,
        0b0000'0000000000000100010001000000
    },
    {
        // 10
        0b0000'1110000000000000000000000000,
        0b0000'0000000000000011100000000000,
        0b0000'0000000000111000000000000000,
        0b0000'0000000111000000000000000000,
        0b0000'0000001000000000000010000100,
        0b0000'0000010000000000000100001000,
        0b0000'0000100000000000001000100000,
        0b0000'0000000000000000000000010011,
        0b0000'0000000000000100010000000000,
        0b0000'0001000000000000000001000000
    },
    {
        // 11
        0b0000'1110000000000000000000000000,
        0b0000'0000000000000011100000000000,
        0b0000'0000000000111000000000000000,
        0b0000'0000000111000000000000000000,
        0b0000'0000001000000000000010000100,
        0b0000'0000010000000000000100001000,
        0b0000'0000100000000000001000000000,
        0b0000'0000000000000000000000010010,
        0b0000'0000000000000100010000000000,
        0b0000'0001000000000000000001000000,
        0b0000'0000000000000000000000100001
    },
    {
        // 12
        0b0000'1110000000000000000000000000,
        0b0000'0000000000000011100000000000,
        0b0000'0000000000111000000000000000,
        0b0000'0000000111000000000000000000,
        0b0000'0000001000000000000010000000,
        0b0000'0000010000000000000100000000,
        0b0000'0000100000000000001000000000,
        0b0000'0000000000000000000000010010,
        0b0000'0000000000000100010000000000,
        0b0000'0001000000000000000001000000,
        0b0000'0000000000000000000000100001,
        0b0000'0000000000000000000000001100
    },
    {
        // 13
        0b0000'1110000000000000000000000000,
        0b0000'0000000000000011100000000000,
        0b0000'0000000000110000000000000000,
        0b0000'0000000110000000000000000000,
        0b0000'0000001000000000000010000000,
        0b0000'0000010000000000000100000000,
        0b0000'0000100000000000001000000000,
        0b0000'0000000000000000000000010010,
        0b0000'0000000000000100010000000000,
        0b0000'0001000000000000000001000000,
        0b0000'0000000000000000000000100001,
        0b0000'0000000000000000000000001100,
        0b0000'0000000001001000000000000000
    },
    {
        // 14
        0b0000'1100000000000000000000000000,
        0b0000'0000000000000011000000000000,
        0b0000'0000000000110000000000000000,
        0b0000'0000000110000000000000000000,
        0b0000'0000001000000000000010000000,
        0b0000'0000010000000000000100000000,
        0b0000'0000100000000000001000000000,
        0b0000'0000000000000000000000010010,
        0b0000'0000000000000100010000000000,
        0b0000'0001000000000000000001000000,
        0b0000'0000000000000000000000100001,
        0b0000'0000000000000000000000001100,
        0b0000'0000000001001000000000000000,
        0b0000'0010000000000000100000000000
    },
    {
        // 15
        0b0000'1100000000000000000000000000,
        0b0000'0000000000000011000000000000,
        0b0000'0000000000110000000000000000,
        0b0000'0000000110000000000000000000,
        0b0000'0000001000000000000010000000,
        0b0000'0000010000000000000100000000,
        0b0000'0000100000000000001000000000,
        0b0000'0000000000000000000000010010,
        0b0000'0000000000000100010000000000,
        0b0000'0001000000000000000001000000,
        0b0000'0000000000000000000000100001,
        0b0000'0000000000000000000000001100,
        0b0000'0000000001001000000000000000,
        0b0000'0010000000000000000000000000,
        0b0000'0000000000000000100000000000
    },
    {
        // 16
        0b0000'1100000000000000000000000000,
        0b0000'0000000000000011000000000000,
        0b0000'0000000000110000000000000000,
        0b0000'0000000110000000000000000000,
        0b0000'0000001000000000000010000000,
        0b0000'0000010000000000000100000000,
        0b0000'0000100000000000001000000000,
        0b0000'0000000000000000000000010010,
        0b0000'0000000000000100010000000000,
        0b0000'0001000000000000000001000000,
        0b0000'0000000000000000000000100001,
        0b0000'0000000000000000000000001100,
        0b0000'0000000001000000000000000000,
        0b0000'0010000000000000000000000000,
        0b0000'0000000000000000100000000000,
        0b0000'0000000000001000000000000000
    }
};