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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
|
Delivery-date: Tue, 30 Sep 2025 16:02:46 -0700
Received: from mail-oa1-f60.google.com ([209.85.160.60])
by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
(Exim 4.94.2)
(envelope-from <bitcoindev+bncBC2JVH7GSAMBBCWD6HDAMGQEM2V435Q@googlegroups.com>)
id 1v3jMr-00040Z-Qm
for bitcoindev@gnusha.org; Tue, 30 Sep 2025 16:02:46 -0700
Received: by mail-oa1-f60.google.com with SMTP id 586e51a60fabf-35568e6088asf8623506fac.0
for <bitcoindev@gnusha.org>; Tue, 30 Sep 2025 16:02:45 -0700 (PDT)
ARC-Seal: i=2; a=rsa-sha256; t=1759273359; cv=pass;
d=google.com; s=arc-20240605;
b=Na6lcf0zzEm9qspqF+3McY2+5LMK+91/zNBNr5qoepzfmZ18sIKoCg+t2oGfLGBJH7
tKmY2e5eBPCUjC8/NqTfen75EJ/5FddyOBGOmGQg5RkK0N5ZVi1bSDRo0V0oRB7j/0SZ
JZU41jzveT/dgdd9gS8r99xyqeG0aPeIzTCHc9Qf/ufCK6vUq1Jla9qCHK7dV9PTW40Y
R2aQH593KbDMNOcNCuc3D3MRibrtYYKvsKmYb+3GH4v8FRUwNOyH1j0HNZvxx/lUd/8Y
maQl2wWtFIkbFc/W6IeLOlVk//nG2j8KmVf9x2UA8FTXhnXqEZbZd71E50S7qn+j+UvH
HvQg==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:reply-to:autocrypt
:content-transfer-encoding:mime-version:message-id:references
:in-reply-to:user-agent:subject:to:from:date:dkim-signature;
bh=ofyBlBMNsc/Zbv+Qap17sKAgWzi5iM8XL+f+WNuS77I=;
fh=oKjhHn2GpCdU/2O5tXg/LSBkKfr+CgOs81+sVKx5UxM=;
b=BZXFzQe0GY8g/c+HL77xW2XmWqoLibOoCx7KAmVmyGNi1/RnNDtVc3ivu7d3TH264N
RC4fb0GfL9X+pueDv3/LvuFUnCWisdeP7ZMT9pPpMcGByy898xsBzZ8VpZd0htEMCOaY
VeLr1Dnjkiyagmql3atWYTCpQzQcEP0EebItLuMW/AAyj4KG+uMwEaGurtr4eZKN/JF4
4j54EllzVdYetwTC5YezPU/ZqJ1aFxWEQzaux3Olbba3XfDx8ZlG3ahnzXfZufPx3P7D
JLeJMgXE7Rt6AOKsdOsXhU9v1Jv38lmwY2Nd9uWahR5mcixxWAiQYQAv/xH+vx2iR4p2
dJOw==;
darn=gnusha.org
ARC-Authentication-Results: i=2; gmr-mx.google.com;
dkim=pass header.i=@drbonez.dev header.s=default header.b="e2+dU0/r";
spf=pass (google.com: domain of me@drbonez.dev designates 198.54.127.69 as permitted sender) smtp.mailfrom=me@drbonez.dev;
dmarc=pass (p=REJECT sp=QUARANTINE dis=NONE) header.from=drbonez.dev
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=googlegroups.com; s=20230601; t=1759273359; x=1759878159; darn=gnusha.org;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:reply-to
:x-original-authentication-results:x-original-sender:autocrypt
:content-transfer-encoding:mime-version:message-id:references
:in-reply-to:user-agent:subject:to:from:date:from:to:cc:subject:date
:message-id:reply-to;
bh=ofyBlBMNsc/Zbv+Qap17sKAgWzi5iM8XL+f+WNuS77I=;
b=lq5RBSJm4ThQSZLmxABTTE5QOs2PSz5tGj7zjRjwNcncZtkV0Jb57A5dlTlQGLeFyt
+WBbQ1lrHoIsgOKeC0R83NNG4oV73I8YP5pV2zrYNSOCdSGzyQf68tlbtV4LYTwRTBEo
KE4vYHSZoVIbwt8bQV+/2y1w/a9Zh8Wjd99eT+kG1z4BQieJ3fBRfwAPgw9gP7hwLN4f
O2pjFeK254xEuD2HY63IBpanumUq2s6GRSSLjTYtZHttfkKBuxSWprxGgczGjqpDl29c
R90yMT/K/sXdjjLxylIC+yJpiRaNebsqgGFlNDJZgScZ6jXJi+FC69tXM+NlWuotahaE
X2KA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1759273359; x=1759878159;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:reply-to
:x-original-authentication-results:x-original-sender:autocrypt
:content-transfer-encoding:mime-version:message-id:references
:in-reply-to:user-agent:subject:to:from:date:x-beenthere
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=ofyBlBMNsc/Zbv+Qap17sKAgWzi5iM8XL+f+WNuS77I=;
b=f4KVpg2qfyORWv83UD9GiDyP8M3Pv+lbkqgCSEV0Xp5lsktqYDNmCgeUF5mjzqpSHB
z8EtgLPv29KWgEY3rMq5BhcYKDEpespG/5eOWNJtKKHwMovRI6E2Oz+Sj/4xKWM+Y3tf
yajfW4UwRFCerR3ANrPXRUKo0PiIhtKqNO7+RSWmE2XkIfq8787p7xwtGY+KasTq+qsh
jjxkbATGt9+8oHQSRKeufWY1OEq1KKbQzMkBwY0baYOtHhIP/s65JnkDwG2P5xErSxIR
k9CfDIMKHnWGJ7Pk7wcMnN0j/AHQ7rk/hK0XkZ3zB9vcFjWgIfGkMnAXnTrcrpDUC6ps
b/ug==
X-Forwarded-Encrypted: i=2; AJvYcCUaebJHscSyKDO0Y0FVZmlhN2FJyYBCy5nfA+ZkV4G8AWBh9FGm1m5jb+zm5sguo4ByFu4WuupsFd59@gnusha.org
X-Gm-Message-State: AOJu0Yxuloh85tTcXLFnHQS/a2CcIGdrBAqPJVrKCruY5FV86Db0jAQP
1703cfEoe/1jB8fT49kO1AHL6vwu40tMHxoW5dBQZ/QvrKwg57fDJZRu
X-Google-Smtp-Source: AGHT+IHjwGD+2Qca55aGwnMp0uwgZ7qK/OdJRQkQbpc4qSL1ETghwDO8sxi/JKKTgHLY0faqC53pQw==
X-Received: by 2002:a05:6870:65a2:b0:36c:abe0:83d3 with SMTP id 586e51a60fabf-39bb2ec3134mr792432fac.39.1759273358915;
Tue, 30 Sep 2025 16:02:38 -0700 (PDT)
X-BeenThere: bitcoindev@googlegroups.com; h="ARHlJd5kBBVNHvZfKlTNqCRRxRetGq2eYvjejohW2BEOtu+I2w=="
Received: by 2002:a05:6870:5593:b0:35a:ce0a:d0a3 with SMTP id
586e51a60fabf-35ebc17c4a5ls5212285fac.0.-pod-prod-08-us; Tue, 30 Sep 2025
16:02:34 -0700 (PDT)
X-Forwarded-Encrypted: i=2; AJvYcCXjKnDpnGiaLtYhkyy1v9i4wyFlw/ouGmNBnUHeSP9sVAhxX7JW541f8SvhdowtHqqDHbDI1Q8CxFqZ@googlegroups.com
X-Received: by 2002:a05:6808:1b23:b0:43f:5e96:f01e with SMTP id 5614622812f47-43fa4331778mr761865b6e.50.1759273354108;
Tue, 30 Sep 2025 16:02:34 -0700 (PDT)
Received: by 2002:a05:620a:5306:b0:80d:5a8b:a44e with SMTP id af79cd13be357-873b4be879ams85a;
Tue, 30 Sep 2025 15:45:06 -0700 (PDT)
X-Forwarded-Encrypted: i=2; AJvYcCVf0J9xKWCd/8avUpAKkq8S6rmn1PudeG/k2mre7Ih/uv+5zAG87CQbz2H2pjwj7CluCP4ykrqQz4rx@googlegroups.com
X-Received: by 2002:a05:6102:38ca:b0:525:471f:de14 with SMTP id ada2fe7eead31-5d3fe5358a2mr604645137.13.1759272305640;
Tue, 30 Sep 2025 15:45:05 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1759272305; cv=none;
d=google.com; s=arc-20240605;
b=IrkPk884dMqDFMg1R8cgBXp+qOGA3zw+AtUG3qptQAyLFKGhF6tBpcfowZTDhTXRFq
jmga/LPPH5sDVSSYtoHyRkUWvm/pHWVKTjhRdB0ymTGc7JS13+b6q+r3FNLFmVw2tz22
LmfQgpNoQvubFEcLN72EEwZkO/95YJiguf+6baVWSIzstEUoRta7gLlx67/qTNNqpfvc
me/7XercEZ2FwPnR7VK/ObEJVjy4D50GOEfBwFbGk8UwCu3dYWF/T/kpdNpGz7uUGZnx
qwBHMNcNhZzdJoDXdHqd0ZoV8G2B7RKr98vn0uaIO8RbqgpNmH9/tGJQdQxcC4XSdjMm
QG5Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
h=autocrypt:content-transfer-encoding:mime-version:message-id
:references:in-reply-to:user-agent:subject:to:from:date
:dkim-signature;
bh=Enf4wWnZjmocIpMCNtM6NTuPK7BdFQB0gfdM1wKOCAU=;
fh=3yCfg7a5juTAINdBObOMumTn11XLNsMOkCWQuhv0OsQ=;
b=YHTrrt4T9jqAlZUhLn664bmday3sixReDFd0N0h2mAYjUnSEKcPLZs1PU6OcnRlqye
MlLnUj47itAmlG3UoYEf5PoGi681bf0e14nc0C9Pm8enPjL8h9v6yvIc/8J9ZPchfolX
9cNEQ6JyK59vwAAwvoaM6Slebn6zH6HkFCSm6LQQ4th8GZzEq8tL9I5XwJptX2976aFZ
by0Hz6OB9NAnL0rxmGcRoPHA1cfWoZhq/IKS6L7LYQ/vF+eoR48b+jCmqJF0TY0WIzDK
VFSgZWoCgCCE6UesBiDvP1O4HNbhjevgQzqVz3mxyAN+kNxvk4Kv2tocRloRUlPJJ05n
YBOg==;
dara=google.com
ARC-Authentication-Results: i=1; gmr-mx.google.com;
dkim=pass header.i=@drbonez.dev header.s=default header.b="e2+dU0/r";
spf=pass (google.com: domain of me@drbonez.dev designates 198.54.127.69 as permitted sender) smtp.mailfrom=me@drbonez.dev;
dmarc=pass (p=REJECT sp=QUARANTINE dis=NONE) header.from=drbonez.dev
Received: from out-09.pe-a.jellyfish.systems (out-09.pe-a.jellyfish.systems. [198.54.127.69])
by gmr-mx.google.com with ESMTPS id ada2fe7eead31-5ae3333204dsi717403137.2.2025.09.30.15.45.05
for <bitcoindev@googlegroups.com>
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Tue, 30 Sep 2025 15:45:05 -0700 (PDT)
Received-SPF: pass (google.com: domain of me@drbonez.dev designates 198.54.127.69 as permitted sender) client-ip=198.54.127.69;
Received: from MTA-11-1.privateemail.com (unknown [10.50.14.23])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (2048 bits))
(No client certificate requested)
by NEW-01-3.privateemail.com (Postfix) with ESMTPS id 4cbtRc3Fzsz2SdSL;
Tue, 30 Sep 2025 18:45:00 -0400 (EDT)
Received: from mta-11.privateemail.com (localhost [127.0.0.1])
by mta-11.privateemail.com (Postfix) with ESMTP id 4cbtRc1zh9z3hhTp;
Tue, 30 Sep 2025 18:45:00 -0400 (EDT)
Received: from ehlo.thunderbird.net (unknown [76.8.195.86])
by mta-11.privateemail.com (Postfix) with ESMTPA;
Tue, 30 Sep 2025 18:44:58 -0400 (EDT)
Date: Tue, 30 Sep 2025 16:44:41 -0600
From: "'Aiden McClelland' via Bitcoin Development Mailing List" <bitcoindev@googlegroups.com>
To: bitcoindev@googlegroups.com, jeremy <jeremy.l.rubin@gmail.com>,
Bitcoin Development Mailing List <bitcoindev@googlegroups.com>
Subject: Re: [bitcoindev] [BIP Proposal] Mempool Validation and Relay Policies
via User-Defined Scripts
User-Agent: K-9 Mail for Android
In-Reply-To: <8c6bb024-437f-4122-8ae0-f8ed9b9c23e4n@googlegroups.com>
References: <cbdab6fa-93bc-44c9-80f0-6c68c6554f56n@googlegroups.com> <CALiT-ZqFhMV8VfgOdNyamG4oLgyCL5E7W8s3F9gB_k0ihyUAgA@mail.gmail.com> <E0178F1A-F2D7-4787-BF52-FA75BFC43EE7@drbonez.dev> <8c6bb024-437f-4122-8ae0-f8ed9b9c23e4n@googlegroups.com>
Message-ID: <1A33D206-444A-49E7-B1F1-E9FE5F4E32FB@drbonez.dev>
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary=----GQ46LS9W4CLNE7XRFW0LH0J7UGTMCE
Content-Transfer-Encoding: 7bit
Autocrypt: addr=me@drbonez.dev; prefer-encrypt=mutual; keydata=
mDMEaNcksxYJKwYBBAHaRw8BAQdAgpcI3hOExv1njCt+zJoYBartdyk4SKiqSIy3+9tcpOK0IUFp
ZGVuIE1jQ2xlbGxhbmQgPG1lQGRyYm9uZXouZGV2PoiJBBMWCAAxFiEEtBbA5nud8/FxhICufP/a
QcpmBWoFAmjXJLMCGwMECwkIBwUVCAkKCwUWAgMBAAAKCRB8/9pBymYFamtoAQDebf0jXVUtKKur
70LUB5+dmHndsIeGpVgGEs5rDGhelwD7BTgcermFsaPWXg6p7RjQ9cSCaGdDIp/87QVAy0lMeAy4
OARo1ySzEgorBgEEAZdVAQUBAQdATE1CS5FypyXAJdO+9a1LYQR1rgfuEgeChUcYSOUme3oDAQgH
iHgEGBYIACAWIQS0FsDme53z8XGEgK58/9pBymYFagUCaNckswIbDAAKCRB8/9pBymYFavYZAP95
dgwYia0VN0Cy75K4+pxiuaG4UpEGdY0v+bgN7zbLVQEA28muMHpEW/b3gtR+W6MaONTQuGFy61Sk
QaHWmrqyNg8=
X-Virus-Scanned: ClamAV using ClamSMTP
X-Original-Sender: me@drbonez.dev
X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass
header.i=@drbonez.dev header.s=default header.b="e2+dU0/r"; spf=pass
(google.com: domain of me@drbonez.dev designates 198.54.127.69 as permitted
sender) smtp.mailfrom=me@drbonez.dev; dmarc=pass (p=REJECT
sp=QUARANTINE dis=NONE) header.from=drbonez.dev
X-Original-From: Aiden McClelland <me@drbonez.dev>
Reply-To: Aiden McClelland <me@drbonez.dev>
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 (-)
------GQ46LS9W4CLNE7XRFW0LH0J7UGTMCE
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Jeremy,=20
That's actually really clever. I had wanted the scripts to be able to manag=
e mempool size, and handle prioritization of higher feerate transactions (h=
ence the evict() fn and minFeerate part of the api), which I don't think co=
uld be done with script, and I'm not sure we'd want to add opcodes to make =
that possible, given that it only makes sense in this context. But maybe th=
at part doesn't need to be part of the dynamic scripts? Definitely gives me=
a lot to think about.=20
Thanks,=20
Aiden McClelland=20
On September 30, 2025 3:09:15 PM MDT, jeremy <jeremy.l.rubin@gmail.com> wro=
te:
>Bitcoin already has a built in user defined script language: Bitcoin Scrip=
t.
>
>If you add a couple conditionally verified opcodes (the same ones necessar=
y=20
>for covenants), you could write whatever filter you like, and we'd learn=
=20
>more about what the best opcodes are for writing covenants.
>
>You would execute the script "pretending" to be input 0.
>
>We would then at least learn something about covenants.
>On Tuesday, September 30, 2025 at 2:22:10=E2=80=AFAM UTC-4 Aiden McClellan=
d wrote:
>
>> /dev/fd0,
>>
>> I appreciate the comments. A txnotify solution could work, although it=
=20
>> loses a lot of the modularity and sandboxing of what I'm proposing. It=
=20
>> would probably result in a single external binary, running all of the=20
>> policy validation logic, rather than a bundle of scripts you can mix and=
=20
>> match. And it might encourage solutions that involve fetching relay=20
>> policies over the internet, which is probably not ideal. Ideally, updati=
ng=20
>> policy should require user action.=20
>>
>> Thanks,=20
>> Aiden McClelland
>>
>>
>>
>> On September 27, 2025 7:22:28 PM MDT, /dev /fd0 <alice...@gmail.com>=20
>> wrote:
>>
>>> Hi Aiden,
>>>
>>> There is an easy solution based on my understanding of [transaction=20
>>> validation][0] although I have not tested it:
>>>
>>> 1. Add a config option `txnotify` similar to `blocknotify` that execute=
s=20
>>> commands or script when a new transaction is received from a peer.
>>> 2. Add a function `ExecuteTxNotify()` that will run the script provided=
=20
>>> by the user in step 1. Script should either return 'accept' for 'reject=
'=20
>>> and function would return true/false accordingly.
>>> 3. Call `ExecuteTxNotify()` in ` AcceptToMemoryPool()` so that rejected=
=20
>>> transactions do not enter the mempool.
>>>
>>> [0]: https://bitcoincore.academy/transaction-validation.html
>>>
>>> /dev/fd0
>>> floppy disk guy
>>>
>>> On Thu, Sep 25, 2025 at 12:00=E2=80=AFAM Aiden McClelland <m...@drbonez=
.dev>=20
>>> wrote:
>>>
>>>> Hi all,
>>>>
>>>> I'd like to share for discussion a draft BIP to allow for a modular=20
>>>> mempool/relay policy: https://github.com/bitcoin/bips/pull/1985
>>>>
>>>> I think it could potentially reduce conflict within the community arou=
nd=20
>>>> relay policy, as an alternative to running lots of different node=20
>>>> implementations/forks when there are disagreements.
>>>>
>>>> I am working on a reference implementation using Bellard's QuickJS, bu=
t=20
>>>> it has been almost a decade since I've written C++, so it's slow going=
and=20
>>>> I'm sure doesn't follow best-practices. Once it's working, it can be=
=20
>>>> cleaned up.
>>>>
>>>> Thanks,
>>>> Aiden McClelland
>>>>
>>>> --=20
>>>> You received this message because you are subscribed to the Google=20
>>>> Groups "Bitcoin Development Mailing List" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send=
=20
>>>> an email to bitcoindev+...@googlegroups.com.
>>>> To view this discussion visit=20
>>>> https://groups.google.com/d/msgid/bitcoindev/cbdab6fa-93bc-44c9-80f0-6=
c68c6554f56n%40googlegroups.com=20
>>>> <https://groups.google.com/d/msgid/bitcoindev/cbdab6fa-93bc-44c9-80f0-=
6c68c6554f56n%40googlegroups.com?utm_medium=3Demail&utm_source=3Dfooter>
>>>> .
>>>>
>>>
>
>--=20
>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 visit https://groups.google.com/d/msgid/bitcoindev=
/8c6bb024-437f-4122-8ae0-f8ed9b9c23e4n%40googlegroups.com.
--=20
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 e=
mail to bitcoindev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/=
1A33D206-444A-49E7-B1F1-E9FE5F4E32FB%40drbonez.dev.
------GQ46LS9W4CLNE7XRFW0LH0J7UGTMCE
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<html><head></head><body><div dir=3D"auto">Jeremy, <br><br>That's actually =
really clever. I had wanted the scripts to be able to manage mempool size, =
and handle prioritization of higher feerate transactions (hence the evict()=
fn and minFeerate part of the api), which I don't think could be done with=
script, and I'm not sure we'd want to add opcodes to make that possible, g=
iven that it only makes sense in this context. But maybe that part doesn't =
need to be part of the dynamic scripts? Definitely gives me a lot to think =
about. <br><br>Thanks, <br>Aiden McClelland </div><br><br><div class=3D"gma=
il_quote"><div dir=3D"auto">On September 30, 2025 3:09:15 PM MDT, jeremy &l=
t;jeremy.l.rubin@gmail.com> wrote:</div><blockquote class=3D"gmail_quote=
" style=3D"margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, =
204); padding-left: 1ex;">
Bitcoin already has a built in user defined script language: Bitcoin Script=
.<div><br></div><div>If you add a couple conditionally verified opcodes (th=
e same ones necessary for covenants), you could write whatever filter you l=
ike, and we'd learn more about what the best opcodes are for writing covena=
nts.</div><div><br></div><div>You would execute the script "pretending" to =
be input 0.</div><div><br></div><div>We would then at least learn something=
about covenants.</div><div class=3D"gmail_quote"><div dir=3D"auto" class=
=3D"gmail_attr">On Tuesday, September 30, 2025 at 2:22:10=E2=80=AFAM UTC-4 =
Aiden McClelland wrote:<br></div><blockquote class=3D"gmail_quote" style=3D=
"margin: 0 0 0 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-le=
ft: 1ex;"><div><div dir=3D"auto">/dev/fd0,<br><br>I appreciate the comments=
. A txnotify solution could work, although it loses a lot of the modularity=
and sandboxing of what I'm proposing. It would probably result in a single=
external binary, running all of the policy validation logic, rather than a=
bundle of scripts you can mix and match. And it might encourage solutions =
that involve fetching relay policies over the internet, which is probably n=
ot ideal. Ideally, updating policy should require user action. <br><br>Than=
ks, <br>Aiden McClelland<br><br></div></div><div><br><br><div class=3D"gmai=
l_quote"><div dir=3D"auto">On September 27, 2025 7:22:28 PM MDT, /dev /fd0 =
<<a href data-email-masked rel=3D"nofollow">alice...@gmail.com</a>> w=
rote:</div><blockquote class=3D"gmail_quote" style=3D"margin:0pt 0pt 0pt 0.=
8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir=3D"ltr">Hi Aiden,<div><br></div><div>There is an easy solution bas=
ed on my understanding of [transaction validation][0] although I have not t=
ested it:<br><br>1. Add a config option `txnotify` similar to `blocknotify`=
that executes commands or script when a new transaction is received from a=
peer.</div><div>2. Add a function `ExecuteTxNotify()` that will run the sc=
ript provided by the user in step 1. Script should either return 'accept' f=
or 'reject' and function would return true/false accordingly.</div><div>3. =
Call `ExecuteTxNotify()` in `
AcceptToMemoryPool()` so that rejected transactions do not enter the mempoo=
l.</div><div><br></div><div>[0]: <a href=3D"https://bitcoincore.academ=
y/transaction-validation.html" target=3D"_blank" rel=3D"nofollow" data-safe=
redirecturl=3D"https://www.google.com/url?hl=3Den&q=3Dhttps://bitcoinco=
re.academy/transaction-validation.html&source=3Dgmail&ust=3D1759352=
727483000&usg=3DAOvVaw2ubDqvrsY4bNuqy6Xb67ZK">https://bitcoincore.acade=
my/transaction-validation.html</a><br><br>/dev/fd0<br>floppy disk guy</div>=
</div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">=
On Thu, Sep 25, 2025 at 12:00=E2=80=AFAM Aiden McClelland <<a href data-=
email-masked rel=3D"nofollow">m...@drbonez.dev</a>> wrote:<br></div><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left=
:1px solid rgb(204,204,204);padding-left:1ex"><div>Hi all,</div><div><br></=
div><div>I'd like to share for discussion a draft BIP to allow for a modula=
r mempool/relay policy: <a href=3D"https://github.com/bitcoin/bips/pull/198=
5" target=3D"_blank" rel=3D"nofollow" data-saferedirecturl=3D"https://www.g=
oogle.com/url?hl=3Den&q=3Dhttps://github.com/bitcoin/bips/pull/1985&=
;source=3Dgmail&ust=3D1759352727483000&usg=3DAOvVaw3Psffw6fUb80db2g=
nmRsfy">https://github.com/bitcoin/bips/pull/1985</a><br><br></div><div>I t=
hink it could potentially reduce conflict within the community around relay=
policy, as an alternative to running lots of different node implementation=
s/forks when there are disagreements.</div><div><br></div><div>I am working=
on a reference implementation using Bellard's QuickJS, but it has been alm=
ost a decade since I've written C++, so it's slow going and I'm sure doesn'=
t follow best-practices. Once it's working, it can be cleaned up.</div><div=
><br></div><div>Thanks,</div><div>Aiden McClelland<br></div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups "=
Bitcoin Development Mailing List" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href data-email-masked rel=3D"nofollow">bitcoindev+...@googlegro=
ups.com</a>.<br>
To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/=
bitcoindev/cbdab6fa-93bc-44c9-80f0-6c68c6554f56n%40googlegroups.com?utm_med=
ium=3Demail&utm_source=3Dfooter" target=3D"_blank" rel=3D"nofollow" dat=
a-saferedirecturl=3D"https://www.google.com/url?hl=3Den&q=3Dhttps://gro=
ups.google.com/d/msgid/bitcoindev/cbdab6fa-93bc-44c9-80f0-6c68c6554f56n%254=
0googlegroups.com?utm_medium%3Demail%26utm_source%3Dfooter&source=3Dgma=
il&ust=3D1759352727483000&usg=3DAOvVaw3JlkfL-EBEFYoF-juV1sBs">https=
://groups.google.com/d/msgid/bitcoindev/cbdab6fa-93bc-44c9-80f0-6c68c6554f5=
6n%40googlegroups.com</a>.<br>
</blockquote></div>
</blockquote></div></div></blockquote></div>
<p></p></blockquote></div></body></html>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;Bitcoin Development Mailing List" 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 visit <a href=3D"https://groups.google.com/d/msgid/=
bitcoindev/1A33D206-444A-49E7-B1F1-E9FE5F4E32FB%40drbonez.dev?utm_medium=3D=
email&utm_source=3Dfooter">https://groups.google.com/d/msgid/bitcoindev/1A3=
3D206-444A-49E7-B1F1-E9FE5F4E32FB%40drbonez.dev</a>.<br />
------GQ46LS9W4CLNE7XRFW0LH0J7UGTMCE--
|