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
|
Return-Path: <tomas@tomasvdw.nl>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
[172.17.192.35])
by mail.linuxfoundation.org (Postfix) with ESMTPS id 5B74E95E
for <bitcoin-dev@lists.linuxfoundation.org>;
Sat, 8 Apr 2017 19:56:20 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-1.7.6
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com
[66.111.4.25])
by smtp1.linuxfoundation.org (Postfix) with ESMTPS id B1A23124
for <bitcoin-dev@lists.linuxfoundation.org>;
Sat, 8 Apr 2017 19:56:19 +0000 (UTC)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42])
by mailout.nyi.internal (Postfix) with ESMTP id 06811206B7;
Sat, 8 Apr 2017 15:56:19 -0400 (EDT)
Received: from web3 ([10.202.2.213])
by compute2.internal (MEProxy); Sat, 08 Apr 2017 15:56:19 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
messagingengine.com; h=cc:content-transfer-encoding:content-type
:date:from:in-reply-to:message-id:mime-version:references
:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=TwZIpR
ulemFkCiyZ797jS9+92h+iKyHom3SZRpJKhNM=; b=EvN9TSpUlEv3crPyQlcd+U
KKst52EYec5g47qzmCjKrUHcj88iVLyhOGqdOKWJc7oPXbxuSc2Z4Oj50QuzLFw3
j/1Vrcph2C4b1P7rMpHFYkwpQZl3OaAz7U2+4CgCFJ2dPNEczjwkGr2Q+dLVXeWv
RCpks0yTXjRU9EEBpYK9EEuyHV/FND7FdDlXKYhJEoTDeqFh9vuxvaNA8V/rlZyE
Wn4dcYGEJBfc+ffJt19Syh/RnEG5RfJFyhnHQzvFqbo2HkHzJVt/GBkeh656yrCD
TjL+UTbZpVpHqEhsxf+5qHnnoJW/Kd9k36r+DHWWcCTtLb1YIPuy58+NIdSznRXw
==
X-ME-Sender: <xms:YkDpWOCtD97U3at9Rtsp8C7eZUtUEfTs7_xPsnN3abK3bXNGfTmjDg>
Received: by mailuser.nyi.internal (Postfix, from userid 99)
id CEA699EC4C; Sat, 8 Apr 2017 15:56:18 -0400 (EDT)
Message-Id: <1491681378.2454247.938587616.7199D633@webmail.messagingengine.com>
From: Tomas <tomas@tomasvdw.nl>
To: Johnson Lau <jl2012@xbt.hk>,
"bitcoin-dev" <bitcoin-dev@lists.linuxfoundation.org>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="utf-8"
X-Mailer: MessagingEngine.com Webmail Interface - ajax-7c174d5d
In-Reply-To: <6F1E6FB6-1342-4BD6-BF83-A160C1A7CD34@xbt.hk>
Date: Sat, 08 Apr 2017 21:56:18 +0200
References: <1491516747.3791700.936828232.69F82904@webmail.messagingengine.com>
<CAAS2fgTJ8xOj8zCmBq1LN9OdMV-tDfSjVUPhLpO98cR1w-QAoA@mail.gmail.com>
<CA+KqGko0cDY29bhznMxJJ7yAUTuB6GaDDNGBRwzssJUxM_53xQ@mail.gmail.com>
<1491599691.1245876.937920664.6EBA20DC@webmail.messagingengine.com>
<CAAS2fgTWyX5M-xcELC2vDvGfs01tbGYkpZJCSeNbvn_p4Ecjqg@mail.gmail.com>
<1491636528.2474173.938219072.54C44183@webmail.messagingengine.com>
<6F1E6FB6-1342-4BD6-BF83-A160C1A7CD34@xbt.hk>
X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,
DKIM_VALID,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
X-Mailman-Approved-At: Sat, 08 Apr 2017 20:00:33 +0000
Subject: Re: [bitcoin-dev] Using a storage engine without UTXO-index
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Protocol 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, 08 Apr 2017 19:56:20 -0000
> I don=E2=80=99t fully understand your storage engine. So the following de=
duction
> is just based on common sense.
>=20
> a) It is possible to make unlimited number of 1-in-100-out txs
>=20
> b) The maximum number of 100-in-1-out txs is limited by the number of
> previous 1-in-100-out txs
>=20
> c) Since bitcrust performs not good with 100-in-1-out txs, for anti-DoS
> purpose you should limit the number of previous 1-in-100-out txs.=20
>=20
> d) Limit 1-in-100-out txs =3D=3D Limit UTXO growth
>=20
> I=E2=80=99m not surprised that you find an model more efficient than Core=
. But I
> don=E2=80=99t believe one could find a model that doesn=E2=80=99t become =
more efficient
> with UTXO growth limitation.
My efficiency claims are *only* with regards to order validation. If we
assume all transactions are already pre-synced and verified, bitcrust's
order validation is very fast, and (only slightly) negatively effected
by input-counts.
Most total time is spend during base load script validation, and UTXO
growth is the definitely the limiting factor there, as the model here
isn't all that different from Core's.
> Maybe you could try an experiment with regtest? Make a lot 1-in-100-out
> txs with many blocks, then spend all the UTXOs with 100-in-1-out txs.
> Compare the performance of bitcrust with core. Then repeat with
> 1-in-1-out chained txs (so the UTXO set is always almost empty)
>=20
Again, this really depends on whether we focus on full block validation,
in which case the 100-1, 1-100 distinction will be the similar to Core,
or only regard order validation, in which case Bitcrust will have this
odd reversal.=20
> One more question: what is the absolute minimum disk and memory usage in
> bitcrust, compared with the pruning mode in Core?
As bitcrust doesn't support this yet, I cannot give accurate numbers,
but I've provided some numbers estimates earlier in the thread.
Rereading my post and these comments, I may have stepped on some toes
with regards to SegWit's model. I like SegWit (though I may have a
slight preference for BIP140), and I understand the reasons for the
"discount", so this was not my intention. I just think that the reversal
of costs during peak load order validation is a rather interesting
feature of using spend-tree based validation.=20
Tomas
|