Bitcoin full node and query server

July 2022

Archive of the libbitcoin Slack #general channel.

Tuesday, July 5, 2022

fpelliccioni06:57
Hey guys! One question: in general terms, what is the difference between libbitcoin v2 and v3?
another question, what is the recommended way to build libbitcoin?
pmienk22:06
Recommended mechanism of building since they've been introduced are the install.sh scripts for macos/linux systems and msbuild of the solution files for Visual Studio.
pmienk22:12
As for differences between v2 and v3, v2 is old enough that I don't recall ever supporting it in Travis, let alone github actions CI systems. I'm relatively sure there were protocol changes between v2 and v3 within the libbitcoin server protocol that were breaking, but I don't recall specifics without investigation. The v2 codebase has only experienced README changes since 2016.
1 reply · fpelliccioni · last Jul 08, 2022
fpelliccioni12:16
Thank you

Thursday, July 7, 2022

pmienk19:40
Topic: Dev Weekly Status Time: Jul 7, 2022 01:00 PM Pacific Time (US and Canada) Join Zoom Meeting https://us05web.zoom.us/j/85232961954?pwd=ME5jenh0YWlqUFJlcXptMndxYml4QT09 Meeting ID: 852 3296 1954 Passcode: Et0zKR

Thursday, July 14, 2022

pmienk19:30
Topic: Dev Weekly Status Time: Jul 14, 2022 01:00 PM Pacific Time (US and Canada) Join Zoom Meeting https://us05web.zoom.us/j/85232961954?pwd=ME5jenh0YWlqUFJlcXptMndxYml4QT09 Meeting ID: 852 3296 1954 Passcode: Et0zKR

Thursday, July 21, 2022

pmienk20:01
Topic: Dev Weekly Status Time: Jul 21, 2022 01:00 PM Pacific Time (US and Canada) Join Zoom Meeting https://us05web.zoom.us/j/87630165758?pwd=dFZOMUNoT1lXYTMxQlQvVnkzSWREQT09 Meeting ID: 876 3016 5758 Passcode: TR9wXQ
evoskuil20:58
template <typename Functor>
struct for_each
{
    template <size_t Index = zero, typename... Args,
        if_lesser<Index, array_count<argument<zero, Args...>>> = true>
    static constexpr void unroll(Args&... args) noexcept
    {
        static_assert(!is_zero(array_count<argument<zero, Args...>>));

        Functor::fn(args[Index]...);

        if constexpr (Index != sub1(array_count<argument<zero, Args...>>))
        {
            unroll<add1(Index)>(args...);
        }
    }
};

struct xor2
{
    static constexpr void fn(auto& x, auto y) noexcept
    {
        x ^= y;
    }
};

// static_assert helper.
template <size_t Offset = zero>
constexpr auto zeroize2(auto a) noexcept
{
    auto copy{ a };
    for_each<xor2>::unroll<Offset>(copy, a);
    return copy;
}

static_assert(zeroize2(set3{ 1, 2, 3 }) == set3{ 0, 0, 0 });
static_assert(zeroize2<0>(set3{ 1, 2, 3 }) == set3{ 0, 0, 0 });
static_assert(zeroize2<1>(set3{ 1, 2, 3 }) == set3{ 1, 0, 0 });
static_assert(zeroize2<2>(set3{ 1, 2, 3 }) == set3{ 1, 2, 0 });
static_assert(zeroize2<3>(set3{ 1, 2, 3 }) == set3{ 1, 2, 3 });

Thursday, July 28, 2022

pmienk19:50
Topic: Dev Weekly Status Time: July 28, 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