summaryrefslogtreecommitdiff
path: root/f7/a7a06cbab8c84e1e65dab964af7101567b2503
blob: a40928bb4019a536fde6a28b7d96e6f4e4ebb22c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
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 <bitcoindev+bncBD4KZD6R7IARBXVCR64AMGQEJGFZJ2A@googlegroups.com>)
	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 <bitcoindev@gnusha.org>; 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" <bitcoindev@googlegroups.com>
To: Bitcoin Development Mailing List <bitcoindev@googlegroups.com>
Message-Id: <c8a0717f-4576-4fb7-ac5c-a2a1ab7a2eden@googlegroups.com>
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" <toximaxi@proton.me>
Reply-To: "Dr. Craig S. Wrong" <toximaxi@proton.me>
Precedence: list
Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com
List-ID: <bitcoindev.googlegroups.com>
X-Google-Group-Id: 786775582512
List-Post: <https://groups.google.com/group/bitcoindev/post>, <mailto:bitcoindev@googlegroups.com>
List-Help: <https://groups.google.com/support/>, <mailto:bitcoindev+help@googlegroups.com>
List-Archive: <https://groups.google.com/group/bitcoindev
List-Subscribe: <https://groups.google.com/group/bitcoindev/subscribe>, <mailto:bitcoindev+subscribe@googlegroups.com>
List-Unsubscribe: <mailto:googlegroups-manage+786775582512+unsubscribe@googlegroups.com>,
 <https://groups.google.com/group/bitcoindev/subscribe>
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!<div><br /></div><div>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)</div><div><br /></div><div>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.</div><div><br /></div><div>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).</div><div><br /></div><div>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.</div><div><br /></div><div>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.</div><div><br /></div><div>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.</div><div><br /></div><div>Aside from that let =
me know what you think. Could an experimental/educational project like this=
 one evolve into something useful for others?</div><div><br /></div><div>Th=
anks everyone for taking the time.</div><div><br /></div><div>Cheers!</div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;Bitcoin Development Mailing List&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:bitcoindev+unsubscribe@googlegroups.com">bitcoind=
ev+unsubscribe@googlegroups.com</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/d/msgid/bitcoindev/c8a0717f-4576-4fb7-ac5c-a2a1ab7a2eden%40googlegroups.=
com?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.com/d/msg=
id/bitcoindev/c8a0717f-4576-4fb7-ac5c-a2a1ab7a2eden%40googlegroups.com</a>.=
<br />

------=_Part_322155_1104646991.1728303369600--

------=_Part_322154_1547947587.1728303369600--