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
|
Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193]
helo=mx.sourceforge.net)
by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
(envelope-from <jgarzik@bitpay.com>) id 1XEk6E-0002Rt-B9
for bitcoin-development@lists.sourceforge.net;
Tue, 05 Aug 2014 19:08:42 +0000
Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of bitpay.com
designates 209.85.213.179 as permitted sender)
client-ip=209.85.213.179; envelope-from=jgarzik@bitpay.com;
helo=mail-ig0-f179.google.com;
Received: from mail-ig0-f179.google.com ([209.85.213.179])
by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
(Exim 4.76) id 1XEk6D-0001sJ-Bo
for bitcoin-development@lists.sourceforge.net;
Tue, 05 Aug 2014 19:08:42 +0000
Received: by mail-ig0-f179.google.com with SMTP id h18so1671644igc.12
for <bitcoin-development@lists.sourceforge.net>;
Tue, 05 Aug 2014 12:08:36 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20130820;
h=x-gm-message-state:mime-version:in-reply-to:references:from:date
:message-id:subject:to:cc:content-type;
bh=ZPgqVMfo3RTSt4LEXeQmV1xZYLDmb4Mrla6hWs6o5Xg=;
b=J8CzchLzxk53Atk4gYXdDU+SefdhG7qFqjYB7sUzcqCU+Wico3dwe+OWR7dzE77QEe
TI8bRC3MrZ/Va4lPZHEeyrKajJe87c7EeIH76lv6IHpXvseagUcl/WEYbD7E2hXAaOGJ
Elu/iM5pyTUmKev4x6itAkdBWBINURUOT7JL7QBm1GYj4YK3IjlZH6BW++Q7dSzcvF32
3bBNPbURVmQ7JiWcs0M5wmIFM4GEgZUGeko872u3EtWUHr6kXHH5qvjRE9esW4yz7qoJ
aATmFd1T/rxmw8ufh6HwsMised7jHUdHeOw6984l5AK51rHdEJ67vV78X9zchQU1q7Cm
8ezQ==
X-Gm-Message-State: ALoCoQl7IyGKm5QSE/piMuRPR+8Giy7qG/nd12ocKzK+7ElJw+2RInw9WyfId8ZJqBUctgqdJzEr
X-Received: by 10.50.80.116 with SMTP id q20mr51604246igx.22.1407265714403;
Tue, 05 Aug 2014 12:08:34 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.10.78 with HTTP; Tue, 5 Aug 2014 12:08:14 -0700 (PDT)
In-Reply-To: <CANEZrP0AXvF5EYvsdpYxGUi5yV9eD_8qUge80XCoaeyekfd67Q@mail.gmail.com>
References: <CA+iPb=HkxeVPF0SynxCPgUkq4msrdfayFrVNFjzg29rFwqXv1w@mail.gmail.com>
<CAJHLa0O2wFq2Vs5Bes_8x1q_j0VC+U4DQkx=6GqT8w5e8Lh5Qg@mail.gmail.com>
<CANEZrP0AXvF5EYvsdpYxGUi5yV9eD_8qUge80XCoaeyekfd67Q@mail.gmail.com>
From: Jeff Garzik <jgarzik@bitpay.com>
Date: Tue, 5 Aug 2014 15:08:14 -0400
Message-ID: <CAJHLa0PTCRZL5PzrQYehRKG5G_D1i9zRdoqy4EN2ooMf7rh_8A@mail.gmail.com>
To: Mike Hearn <mike@plan99.net>
Content-Type: multipart/alternative; boundary=089e0153668207b86504ffe695da
X-Spam-Score: -0.6 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
See http://spamassassin.org/tag/ for more details.
-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
sender-domain
-0.0 SPF_PASS SPF: sender matches SPF record
1.0 HTML_MESSAGE BODY: HTML included in message
-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
author's domain
0.1 DKIM_SIGNED Message has a DKIM or DK signature,
not necessarily valid
-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
X-Headers-End: 1XEk6D-0001sJ-Bo
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] deterministic transaction expiration
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Tue, 05 Aug 2014 19:08:42 -0000
--089e0153668207b86504ffe695da
Content-Type: text/plain; charset=UTF-8
I feel like a lot of this will be driven by implementation, and costs of
changing the implementation. Additional look-backs are of course doable,
but they incur some disk I/O costs. The fields available in memory for
each mempool TX are
uint256 tx_hash; // hash of next field
CTransaction tx;
int64_t nFee; // Cached to avoid expensive parent-transaction lookups
size_t nTxSize; // ... and avoid recomputing tx size
int64_t nTime; // Local time when entering the mempool
double dPriority; // Priority when entering the mempool
unsigned int nHeight; // Chain height when entering the mempool
As a first pass, we may prune the mempool without additional db lookups
quite easily based on time criteria. Or, additional in-memory indexes may
be constructed to maintain hashes ordered by priority/fees.
Those techniques seem likely to be attempted before resorting to looking
back two or three TXs deep at coin age -- which I admit is an interesting
metric.
--
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc. https://bitpay.com/
--089e0153668207b86504ffe695da
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div><div>I feel like a lot of this will be driven by impl=
ementation, and costs of changing the implementation.=C2=A0 Additional look=
-backs are of course doable, but they incur some disk I/O costs.=C2=A0 The =
fields available in memory for each mempool TX are<br>
<br></div><div>=C2=A0=C2=A0=C2=A0 uint256 tx_hash; // hash of next field<br=
></div><div>=C2=A0=C2=A0=C2=A0 CTransaction tx;<br>=C2=A0=C2=A0=C2=A0 int64=
_t nFee; // Cached to avoid expensive parent-transaction lookups<br>=C2=A0=
=C2=A0=C2=A0 size_t nTxSize; // ... and avoid recomputing tx size<br>
=C2=A0=C2=A0=C2=A0 int64_t nTime; // Local time when entering the mempool<b=
r>=C2=A0=C2=A0=C2=A0 double dPriority; // Priority when entering the mempoo=
l<br>=C2=A0=C2=A0=C2=A0 unsigned int nHeight; // Chain height when entering=
the mempool<br><br></div>As a first pass, we may prune the mempool without=
additional db lookups quite easily based on time criteria.=C2=A0 Or, addit=
ional in-memory indexes may be constructed to maintain hashes ordered by pr=
iority/fees.<br>
<br></div><div>Those techniques seem likely to be attempted before resortin=
g to looking back two or three TXs deep at coin age -- which I admit is an =
interesting metric.<br></div><div><div><div><div class=3D"gmail_extra"><br>
-- <br>Jeff Garzik<br>Bitcoin core developer and open source evangelist<br>=
BitPay, Inc. =C2=A0 =C2=A0 =C2=A0<a href=3D"https://bitpay.com/" target=3D"=
_blank">https://bitpay.com/</a>
</div></div></div></div></div>
--089e0153668207b86504ffe695da--
|