summaryrefslogtreecommitdiff
path: root/77/e26a8067acac8eba820727e0e7eaeeae56cfae
blob: 629849a8b5015340d5ffa0744bd43a0d041502bd (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
Return-Path: <pete@petertodd.org>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 5FA93360
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Sat, 18 Jul 2015 18:53:04 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-1.7.6
Received: from outmail149080.authsmtp.com (outmail149080.authsmtp.com
	[62.13.149.80])
	by smtp1.linuxfoundation.org (Postfix) with ESMTP id A7A4F103
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Sat, 18 Jul 2015 18:53:03 +0000 (UTC)
Received: from mail-c235.authsmtp.com (mail-c235.authsmtp.com [62.13.128.235])
	by punt17.authsmtp.com (8.14.2/8.14.2/) with ESMTP id t6IIr2NJ001883
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Sat, 18 Jul 2015 19:53:02 +0100 (BST)
Received: from muck (bas1-clarkson16-1177732471.dsl.bell.ca [70.50.197.119])
	(authenticated bits=128)
	by mail.authsmtp.com (8.14.2/8.14.2/) with ESMTP id t6IIqwsh098727
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO)
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Sat, 18 Jul 2015 19:53:01 +0100 (BST)
Date: Sun, 19 Jul 2015 03:52:59 +0900
From: Peter Todd <pete@petertodd.org>
To: bitcoin-dev@lists.linuxfoundation.org
Message-ID: <20150718185259.GA3477@muck>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="OgqxwSJOaUobr8KG"
Content-Disposition: inline
X-Server-Quench: 37089be1-2d7e-11e5-b397-002590a15da7
X-AuthReport-Spam: If SPAM / abuse - report it at:
	http://www.authsmtp.com/abuse
X-AuthRoute: OCd2Yg0TA1ZNQRgX IjsJECJaVQIpKltL GxAVJwpGK10IU0Fd
	P1hyKltILEZaQVBf Ri5dBBEKBAw1ADwr dVUTOktcalU0Gll1
	UkhIR0JTHQ9tAhYB B1AZUgd3dxtHcXlu ZEdrQXVTW1t7OwJ7
	OzcVUi5eZW5ob2IY HkVffwUacwRKdhYX P1FiVicKNHgGZy9l
	WgVobm90ZW0FdXUN S1hQIVtNV2oMViEx DwoPFDErDAUDSig/
	ZxVuL1MZBEEWNhJ6 cVUmQxoCPhsbG0VY GE1AG24x
X-Authentic-SMTP: 61633532353630.1023:706
X-AuthFastPath: 0 (Was 255)
X-AuthSMTP-Origin: 70.50.197.119/587
X-AuthVirus-Status: No virus detected - but ensure you scan with your own
	anti-virus system.
X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW
	autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
Subject: [bitcoin-dev] Do we really need a mempool? (for relay nodes)
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Development Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Sat, 18 Jul 2015 18:53:04 -0000


--OgqxwSJOaUobr8KG
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

As in, do relay nodes need to keep a record of the transactions they've
relayed? Strictly speaking, the answer is no: one a tx is relayed modulo
DoS concerns the entire thing can be discarded by the node. (unconfirmed
txs spending other unconfirmed txs can be handled by creating packages
of transactions, evaluated as a whole)

To mitigate DoS concerns, we of course have to have some per-UTXO limit
on bandwidth relayed, but that task can be accomplished by simply
maintaining some kind of per-UTXO record of bandwidth used. For instance
if the weighted fee and fee/KB were recorded, and forced to - say -
double for each additional tx relayed that spent a given UTXO you would
have a clear and simple upper limit of lifetime bandwidth. Equally it's
easy to limit bandwidth moment to moment by asking peers for highest
fee/KB transactions they advertise first, stopping when our bandwidth
limit is reached.

You probably could even remove IsStandard() pretty much entirely with
the right increasingly expensive "replacement" policy, relying on it
alone to provide anti-DoS. Obviously this would simplify some of the
debates around mining policy! This could even be re-used for scalable a
general-purpose messaging network paid by coin ownership if the UTXO set
is split up, and some kind of expiration over time policy is
implemented.

Miners of course would still want to have a mempool, but that codebase
may prove simpler if it doesn't have to work double-duty for relaying as
well.

--=20
'peter'[:-1]@petertodd.org
00000000000000000b675c4d825a10c278b8d63ee4df90a19393f3b6498fd073

--OgqxwSJOaUobr8KG
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----

iQGqBAEBCACVBQJVqqCIXhSAAAAAABUAQGJsb2NraGFzaEBiaXRjb2luLm9yZzAw
MDAwMDAwMDAwMDAwMDAwYjY3NWM0ZDgyNWExMGMyNzhiOGQ2M2VlNGRmOTBhMTkz
OTNmM2I2NDk4ZmQwNzMvFIAAAAAAFQARcGthLWFkZHJlc3NAZ251cGcub3JncGV0
ZUBwZXRlcnRvZC5vcmcACgkQwIXyHOf0udxaRQf4uNJANiE9GYAubmKRVsg70gfJ
gpuX7DMcgJ023AaXtpX43S9hAI9NvFTlEbBHySwwP0uwgV10bE+VJm3Plz7LNZ5k
uDaDxl8mpqcfWq0LneTt1zoMn9KChu8JB6zbL71Y1/P7oGtlcfazM4YZFWFB0U0q
vQntAK6GAILibtpe8wbI/cvvhRUp2/jML395GVnM+VwCL1KdHLs/QIZAwl9J/1bK
KgZr3BKjToEs+d0fyWOCsGSoCPXXnOyWWhaZlDKenLKhQIQBp1EDoVd8yTSJkuXG
IShKtNgPx7VGCqD8ZbW3BXcIbowEfdK5rLp1Jf8abyckhsv3M8yK3DURtwO8
=tBhq
-----END PGP SIGNATURE-----

--OgqxwSJOaUobr8KG--