Delivery-date: Mon, 07 Oct 2024 05:17:43 -0700 Received: from mail-yw1-f183.google.com ([209.85.128.183]) by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sxmgI-0003zZ-L9 for bitcoindev@gnusha.org; Mon, 07 Oct 2024 05:17:43 -0700 Received: by mail-yw1-f183.google.com with SMTP id 00721157ae682-6dbbeee08f0sf72798027b3.0 for ; Mon, 07 Oct 2024 05:17:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1728303456; x=1728908256; darn=gnusha.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:x-original-sender :mime-version:subject:message-id:to:from:date:from:to:cc:subject :date:message-id:reply-to; bh=Sp5I3xpSQwI0G2P2SdlcZYXQAt0K90BLpPnKYiKsFLk=; b=o8IBloJp3MkeNpE2SImcKlH17CEFgDTfA6BnokhkwFXDArV4GUxSFw/AMQvvPedHE0 hqtCstTkXQgbbU4P6RfydSqJOdLG3lBh8iCComJ2UzSm19GztKwd7LlKY9n1hO0OFTq+ /pWBd96ZkUmPGEqJ09Wu8fClc/8IA7rKFsHsV8uTn4vaWjl0t9u21uj18hxuWvXzGmST DiNMvmd0cVt6I+ksB9fybFwayl8IfJCFrWxlnA0gVvGq9JqmY7hi0lhuS2Z4qnoVZqr2 ueulATW044cElPFIl5bjglSExTNfsKHw6ou5BU00hUyCbrxKH8IZn7WlDioltg2KEbiu x0dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728303456; x=1728908256; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:x-original-sender :mime-version:subject:message-id:to:from:date:x-beenthere :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Sp5I3xpSQwI0G2P2SdlcZYXQAt0K90BLpPnKYiKsFLk=; b=Y1meEYvXcYRObthaBSPAIxiQb1mODYv7xwE7QVg3kiLXebItyBiLR/eiu2Yb4pSqzV y+zQjIczU+KD8Aq4RKhhCFwZwao8rw0z+ni5xdo2U7JvWJeOJf05zcrUuyHmBiCbd7NB F/fNhjiyzSDZx6kQOCN0UAKqxCMctYzqCF5Y5zb6x7n1sxQPhGLJThsaPXLURI8I4Vl5 9B5mujnTohmQGvKieVpqP1pMzv37ibPPvbky1ntUpUuFBOePnDQAoWj4pZrdTlLyRvCp 0glNDm6I1fyRwgwMwyrQtj2YFwG1S+Z84+E7lP15CjIwFQAEKffuPsyZclcmMgTFgY2x Eq8g== X-Forwarded-Encrypted: i=1; AJvYcCWdec3tWWP31CsHYOOyG/qQLcvEjK7Xq9x+yaAg9zKvM3sNLJCzbxyBSI7zuA8y/ojuYoVW6f23YQaU@gnusha.org X-Gm-Message-State: AOJu0YyaD7mpQiuib6Nkk2vvzrtUc1LeCIbGKntNjlrPntTyGubLoigt vLKINLTxPkUFeucb/sGi83/kHRjXleH9LkTZd9AdOVQIhlP/gYvX X-Google-Smtp-Source: AGHT+IFzsBCBQF/2AbNnc4UQTjUGAoebKyj+qkwynnUSTb0g8Gc3KrEHoiuYkZd0LzE0kutrnHH/cA== X-Received: by 2002:a05:6902:160d:b0:e26:181d:d5ed with SMTP id 3f1490d57ef6-e2892fd9a74mr8016106276.4.1728303456406; Mon, 07 Oct 2024 05:17:36 -0700 (PDT) X-BeenThere: bitcoindev@googlegroups.com Received: by 2002:a05:6902:102d:b0:e24:9060:cbf8 with SMTP id 3f1490d57ef6-e286fabf777ls361935276.2.-pod-prod-00-us; Mon, 07 Oct 2024 05:17:34 -0700 (PDT) X-Received: by 2002:a05:690c:7008:b0:6e2:a561:246d with SMTP id 00721157ae682-6e2b534c690mr105042707b3.9.1728303454188; Mon, 07 Oct 2024 05:17:34 -0700 (PDT) Received: by 2002:a81:ed07:0:b0:6d6:77c4:ed15 with SMTP id 00721157ae682-6e2c689fb24ms7b3; Mon, 7 Oct 2024 05:16:10 -0700 (PDT) X-Received: by 2002:a05:690c:d07:b0:6e2:448c:cbb with SMTP id 00721157ae682-6e2c72be9f2mr83712137b3.45.1728303370033; Mon, 07 Oct 2024 05:16:10 -0700 (PDT) Date: Mon, 7 Oct 2024 05:16:09 -0700 (PDT) From: "'Dr. Craig S. Wrong' via Bitcoin Development Mailing List" To: Bitcoin Development Mailing List Message-Id: Subject: [bitcoindev] Pure Swift Bitcoin Protocol implementation (largely experimental) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_322154_1547947587.1728303369600" X-Original-Sender: toximaxi@proton.me X-Original-From: "Dr. Craig S. Wrong" Reply-To: "Dr. Craig S. Wrong" Precedence: list Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com List-ID: X-Google-Group-Id: 786775582512 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Score: -1.0 (-) ------=_Part_322154_1547947587.1728303369600 Content-Type: multipart/alternative; boundary="----=_Part_322155_1104646991.1728303369600" ------=_Part_322155_1104646991.1728303369600 Content-Type: text/plain; charset="UTF-8" Hello there! I wanted to share with y'all a project that I've been working on for more than two years called Swift Bitcoin (https://github.com/swift-bitcoin/swift-bitcoin / https://swift-bitcoin.github.io) It started as a way for me to test my own knowledge about the way Bitcoin works internally and externally. I first took a stab at implementing the various BIPs including with their respective test vectors in my favorite language Swift. I then started porting over additional unit tests from the Bitcoin Core project which helped me understand a lot of what happens under the hood. While far from complete, today the package offers a comprehensive set of idiomatic Swift APIs which covers ECC and Bitcoin cryptography (uses libsecp256k1), hash functions, codecs, a full SCRIPT interpreter, transaction composition, signature verification, wallet functionality (addresses, key derivation, mnemonic, transaction input signing), blockchain, mining, RPC and P2P transport (WIP). About some the advantages of using Swift I can mention the use of actors for isolation of mutable state and structured concurrency which guarantees data race safety. These are particularly noticeable at the wire protocol level where I'm leveraging the SwiftNIO library for non-blocking I/O. The code does not rely on third party dependencies and produces a very fast and small binary which could eventually be suitable for embedded systems (coming soon). For Apple platform of course this library fits right in but everything is developed and tested on Linux. Also with C / C++ interoperability it can also be integrated into any CMake-based project. Anyway if anyone is interested in knowing more or becoming a contributor please reach out to me at toximaxi (at) proton.me. I'm not a protocols guy so progress in that area has been slow and I could use some help in that particular area as well as many others. Aside from that let me know what you think. Could an experimental/educational project like this one evolve into something useful for others? Thanks everyone for taking the time. Cheers! -- You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group. To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/bitcoindev/c8a0717f-4576-4fb7-ac5c-a2a1ab7a2eden%40googlegroups.com. ------=_Part_322155_1104646991.1728303369600 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello there!

I wanted to share with y'all a project th= at I've been working on for more than two years called Swift Bitcoin (https= ://github.com/swift-bitcoin/swift-bitcoin /=C2=A0https://swift-bitcoin.gith= ub.io)

It started as a way for me to test my own= knowledge about the way Bitcoin works internally and externally. I first t= ook a stab at implementing the various BIPs including with their respective= test vectors in my favorite language Swift. I then started porting over ad= ditional unit tests from the Bitcoin Core project which helped me understan= d a lot of what happens under the hood.

While fa= r from complete, today the package offers a comprehensive set of idiomatic = Swift APIs which covers ECC and Bitcoin cryptography (uses libsecp256k1), h= ash functions, codecs, a full SCRIPT interpreter, transaction composition, = signature verification, wallet functionality (addresses, key derivation, mn= emonic, transaction input signing), blockchain, mining, RPC and P2P transpo= rt (WIP).

About some the advantages of using Swi= ft I can mention the use of actors for isolation of mutable state and struc= tured concurrency which guarantees data race safety. These are particularly= noticeable at the wire protocol level where I'm leveraging the SwiftNIO li= brary for non-blocking I/O.

The code does not re= ly on third party dependencies and produces a very fast and small binary wh= ich could eventually be suitable for embedded systems (coming soon). For Ap= ple platform of course this library fits right in but everything is develop= ed and tested on Linux. Also with C / C++ interoperability it can also be i= ntegrated into any CMake-based project.

Anyway i= f anyone is interested in knowing more or becoming a contributor please rea= ch out to me at toximaxi (at) proton.me. I'm not a protocols guy so progres= s in that area has been slow and I could use some help in that particular a= rea as well as many others.

Aside from that let = me know what you think. Could an experimental/educational project like this= one evolve into something useful for others?

Th= anks everyone for taking the time.

Cheers!

--
You received this message because you are subscribed to the Google Groups &= quot;Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoind= ev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg= id/bitcoindev/c8a0717f-4576-4fb7-ac5c-a2a1ab7a2eden%40googlegroups.com.=
------=_Part_322155_1104646991.1728303369600-- ------=_Part_322154_1547947587.1728303369600--