Return-Path: Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 2CF9FC0029 for ; Wed, 21 Jun 2023 08:14:19 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id F2D0A81A8E for ; Wed, 21 Jun 2023 08:14:18 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org F2D0A81A8E Authentication-Results: smtp1.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=VtRbC8MM X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -2.098 X-Spam-Level: X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Js4rbjZXkXnC for ; Wed, 21 Jun 2023 08:14:17 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org A880D81A58 Received: from mail-il1-x135.google.com (mail-il1-x135.google.com [IPv6:2607:f8b0:4864:20::135]) by smtp1.osuosl.org (Postfix) with ESMTPS id A880D81A58 for ; Wed, 21 Jun 2023 08:14:17 +0000 (UTC) Received: by mail-il1-x135.google.com with SMTP id e9e14a558f8ab-3422d37d316so16254255ab.3 for ; Wed, 21 Jun 2023 01:14:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687335256; x=1689927256; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=vPiZrcYGprJcMRyoXjjAarRsaqI4FAi/By5d+E9daws=; b=VtRbC8MMNrenctoWZiCNjig2SBtLiPmw+HVAGnEGAyeKyPJrqoP+Fg7JJNOS0OAuVc UXivKVn6UgQYwYhRsCSlkFMfYdXY9x8XtvvfZO2+8yjxPhO9q7larN/x2Hh7emFzZNda K/c4LSeRvF+dJG6udknkyd+PuU6kMKBEWKSgA7LeDaI88a0yMV3N2H7li5SwQyyu6aU1 iqbFfjEm2W+LcVPcVwXUgxfJA5qcS23XpxX2c09p5/XkDmHIMUlyRusgKm6vkIxHO18m PeAXnU4NbOTR8X6QcXLqMK8ycGPC24MeI7Hao3YKTmYeAnSV8rmPcF8pBRpbdJdstyBa rz/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687335256; x=1689927256; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=vPiZrcYGprJcMRyoXjjAarRsaqI4FAi/By5d+E9daws=; b=fn0HaiRc4FZugE9aPN1XxumNgiaF0XAF76UFUik7uzH2zpMUU8OMJ5E8FcEtcd+esT BmGSzoCQprpVION+gP7cUMoaWuLLp64riYO0VbLVN6gjTcdBrG0bDEhJhoHzpVLOseLG gM35j+dn7azg8kuYCu3PoG9Tpz3vfGbHsOZbSQNEcfy6PetbFsBwYdOSjKR7abWLDxOd 9kVeJ7TbZjFqEabVltun3iFSPP/k4Kocg9Nka9fatHlVj1MoXNyLo0dY8w6M4kklqSMN JN/OUA9JtFZ+JqW6VI0WbiZIldQ4rw6HXK43zqU2Dpo0MLDz2Y+F1ROrVnBYujUYz4e9 OkXw== X-Gm-Message-State: AC+VfDycl2B+JyCWfXNQ7zUNbt9Sj9u9kxtIkEALX9PxJ2p5t9anlsB2 nREW6sWwu+FR+HdiFrIoI/5eQ0Xt1rkU6t2uzAeTSQ4MVk8= X-Google-Smtp-Source: ACHHUZ5MirX8ZrUQKHH6xVO3MuL/cpydoaMo3FgtPzEPc2Mk0WHGCbM2bnZB7UZYusquq6F1q5vT6CzlItTN6f8356g= X-Received: by 2002:a92:cc4d:0:b0:33e:7244:3c91 with SMTP id t13-20020a92cc4d000000b0033e72443c91mr11155044ilq.29.1687335256247; Wed, 21 Jun 2023 01:14:16 -0700 (PDT) MIME-Version: 1.0 From: Antoine Riard Date: Wed, 21 Jun 2023 09:14:05 +0100 Message-ID: To: Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary="00000000000090d5e605fe9f5ada" X-Mailman-Approved-At: Wed, 21 Jun 2023 09:02:30 +0000 Subject: [bitcoin-dev] CivKit Node v0.0.1 release - "Sic itur ad astra" X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2023 08:14:19 -0000 --00000000000090d5e605fe9f5ada Content-Type: text/plain; charset="UTF-8" Hi Bitcoin Devs, Proud to announce the first release of CivKit Node, a basic Nostr relay with additional features to have a functional peer-to-peer market board, written in Rust [0]. This is a very raw release as since we published the paper back in April, we've been reached out by a bunch of folks asking how they could contribute by code, or start to integrate CivKit in their Nostr and Lightning peer-to-peer market clients [1]. Current release is CLI-only, just implementing basic NIP 01 support and is full of bugs and todos, has not been tested on a lot of platforms and still works as a local host for a lot of things [2]. There is a sample Nostr client binary joined for deployment and testing purposes and an utility binary to manage the node with a gRPC interface. Such an interface should lay the groundwork to build one or more GUI applications on top, as it's a recurring and consistent request from the community. There is an experimental integration with BOLT8 Noise transport (thanks to LDK), where one can connect to another CivKit Node has a peer, Idea is to unify the communication infrastructure between Nostr and Lightning, and as such have a single market of p2p service providers (watchtower, state backup, boards) benefiting from network law effect. Beyond sharing all the work between Lightning and Nostr ecosystem in terms of spamming mitigations, careful crypto engineering (e.g onion routing) and privacy-preserving monetary credentials [3]. With this released out, I think we'll go for sound onion routing support, BOLT12 offers, the set of fundamental NIPs like NIP-09, NIP-16, NIP-33 and others, and integration with a notary protocol (e.g Mainstay). Still, we would like to listen to our users and we'll plumber features in the function of relevant feedback collected from the community. One key lesson from years contributing on LDK, we do not want to stay in a "purist developer" ivory tower to avoid hard-to-integrate APIs, and make the "product management" of the project owned by the community to ensure we're building for the real-world of unstable and constrained mobile clients. Once we have communication infrastructure and hopefully credentials framework working, I think we'll start to have more serious development of the CivKit functionaries services themselves (e.g market bulletin boards, rank proof servers and moderation oracles in the paper parlance). Though again, if folks want to start more custom services on top of CivKit Node, we'll see what we can do, there is a brave new world to explore with Nostr and Lightning maturation. For the historical note, peer-to-peer market features were present in Bitcoin Core circa 2010 (in fact before the ref client was dubbed Core). Those features were removed by commit 5253d1ab "strip out unfinished product, review and market stuff" by Satoshi [4]. Retrospectively, it was a good insight as Core has evolved as a complex beast enough and careful layerization is one of the best learning from the 50 years of Internet history. Still, censorship-resistant and large-scale peer-to-peer markets sounds still one of the missing blocks of the Bitcoin protocol stack. Looking forward to growing the Bitcoin and Lightning internal economies by an order of magnitude or two with the CivKit Node, if the kharma is with us. All works are released under MIT/Apache licenses and we aim to bind to the best open-source development standards as set by Bitcoin Core and the Linux kernel communities and we're welcoming anyone strongly willing to build with passion and love. I think for the future, we'll do the announcement on its own communication channel, whatever a new mailing list, or something experimental on top of Nostr groups, Still, if we innove in terms of cryptography we're aiming to have things standardized under BIPs. "Sic itur ad astra" - Block 000000000000000000053fd09a45f48e747f281122021edc2f7e97efcdd66248 Cheers, Antoine [0] https://github.com/civkit/civkit-node [1] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-April/021556.html [2] Of course, there are gazillins of things to implement, please open an issue on the repository directly rather to yell something doesn't work. [3] https://lists.linuxfoundation.org/pipermail/lightning-dev/2023-May/003964.html [4] https://github.com/bitcoin/bitcoin/commit/5253d1ab --00000000000090d5e605fe9f5ada Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Bitcoin Devs,

Proud to announce the= =C2=A0first release of CivKit Node, a basic=C2=A0Nostr relay with additiona= l features to have a functional peer-to-peer market=C2=A0board, written in = Rust [0]. This is a very raw release as since we published the paper back i= n April, we've been reached out by a bunch of folks asking how they cou= ld contribute by code, or start to integrate CivKit in their Nostr and Ligh= tning peer-to-peer market clients [1].

Current rel= ease is CLI-only, just implementing basic NIP 01 support and is full of bug= s and todos, has not been tested on a lot of platforms and still works as a= local host for a lot of things [2]. There is a sample Nostr client binary = joined for deployment and testing purposes and an utility binary to manage = the node with a gRPC interface. Such an interface should lay the groundwork= to build one or more GUI applications on top, as it's a recurring and = consistent request from the community.

There is an= experimental integration with BOLT8 Noise transport (thanks to LDK), where= one can connect to another CivKit Node has a peer, Idea is to unify the co= mmunication infrastructure between Nostr and Lightning, and as such have a = single market of p2p service providers (watchtower, state backup, boards) b= enefiting from network law effect. Beyond sharing all the work between Ligh= tning and Nostr ecosystem in terms of spamming mitigations, careful crypto = engineering=C2=A0(e.g onion routing) and privacy-preserving monetary creden= tials [3].

With this released out, I think we'= ll go for sound onion routing support, BOLT12 offers, the set of fundamenta= l NIPs like NIP-09, NIP-16, NIP-33 and others, and integration with a notar= y protocol (e.g Mainstay). Still, we would like to listen to our users and = we'll plumber features in the function of relevant feedback collected f= rom the community. One key lesson from years contributing on LDK, we do not= want to stay in a "purist developer" ivory tower to avoid hard-t= o-integrate APIs, and make the "product management" of the projec= t owned by the community to ensure we're building for the real-world of= unstable and constrained mobile clients.

Once we = have communication infrastructure and hopefully credentials framework worki= ng, I think we'll start to have more serious development of the CivKit = functionaries services themselves (e.g market bulletin boards, rank proof s= ervers and moderation oracles in the paper parlance). Though again, if folk= s want to start more custom services on top of CivKit Node, we'll see w= hat we can do, there is a brave new world to explore with Nostr and Lightni= ng maturation.

For the historical note, peer-to-pe= er market features were present in Bitcoin Core circa 2010 (in fact before = the ref client was dubbed Core). Those features were removed by commit 5253= d1ab "strip out unfinished product, review and market stuff" by S= atoshi [4]. Retrospectively, it was a good insight as Core has evolved as a= complex beast enough and careful layerization is one of the best learning = from the 50 years of Internet history. Still, censorship-resistant and larg= e-scale peer-to-peer markets sounds still one of the missing blocks of the = Bitcoin protocol stack.

Looking forward to growing= the Bitcoin and Lightning internal economies by an order of magnitude or t= wo with the CivKit Node, if the kharma is with us.

All works are released under MIT/Apache licenses and we aim to bind to the= best open-source development standards as set by Bitcoin Core and the Linu= x kernel communities and we're welcoming anyone strongly willing to bui= ld with passion and love.

I think for the future, = we'll do the announcement on its own communication channel, whatever a = new mailing list, or something experimental on top of Nostr groups, Still, = if we innove in terms of cryptography we're aiming to have things stand= ardized under BIPs.

"Sic itur ad astra" = - Block=C2=A0000000000000000000053fd09a45f48e747f281122021edc2f7e97efcdd662= 48

Cheers,
Antoine

<= div>[0]=C2=A0https://gith= ub.com/civkit/civkit-node
[1]=C2=A0https://li= sts.linuxfoundation.org/pipermail/bitcoin-dev/2023-April/021556.html
[2] Of course, there are gazillins of things to implement, please o= pen an issue on the repository directly rather to yell something=C2=A0doesn= 't work.
--00000000000090d5e605fe9f5ada--