[bitcoin-dev] Using a storage engine without UTXO-index
tomas at tomasvdw.nl
Fri Apr 7 16:02:35 UTC 2017
The benches are running in Google Cloud Engine; currently on 8 vCPU
32gb, but I tend to switch hardware regularly.
Roughly, the results are better for Bitcrust with high end hardware and
the difference for total block validations is mostly diminished at 2
vCPU, 7,5 gb.
Note that the spend-tree optimization primarily aims to improve peak
load order validation; when a block with pre-synced transactions comes
in, but this is tricky to accurately bench with Core using this simple
method of comparison by logs.
I will upgrade to, and show the results against 0.14 in the next weeks.
On Fri, Apr 7, 2017, at 16:14, Greg Sanders wrote:
> Interesting work.
> I was wondering if you could tellank us what specs for the machine
> being used as preliminary benchmark is here:
> https://bitcrust.org/results ?
> I'd be interested to also see comparisons with 0.14 which has some
> improvements for script validation with more cores.
> On Fri, Apr 7, 2017 at 4:47 AM, Tomas via bitcoin-dev <bitcoin-
> dev at lists.linuxfoundation.org> wrote:
>> Thank you Marcos,
>> Though written in Rust, bitcrust-db is definitely usable as
>> module as its interface will be roughly some queries, add_tx and
>> add_block with blobs and flags. (Bitcrust internally uses a
>> deserialize-only model, keeping references to the blobs with the
>> However, from Core's side I believe network and storage are
>> rather tightly coupled, which will make this far from trivial.
>> Regardless, I am also hoping (with funding & a team) to build a
>> networking component as well to bring a strong competitor to the
>> On Fri, Apr 7, 2017, at 09:55, Marcos mayorga wrote:
>> > Hi Tomas,
>> > I've read it and think it is an excellent work, I'd like to see it
>> > integrated into bitcoin-core as a 'kernel module'.
>> > I see there are a lot of proof of concepts out there, IMO
>> > every one
>> > deserve a room in the bitcoin client as a selectable feature, to
>> > make the
>> > software more flexible and less dictatorial, an user could easily
>> > select
>> > which features she wants to run.
>> > Best regards,
>> > Marcos
>> > > I have been working on a bitcoin implementation that uses a
>> > > different
>> > > approach to indexing for verifying the order of transactions.
>> > > Instead of
>> > > using an index of unspent outputs, double spends are verified by
>> > > using a
>> > > spend-tree where spends are scanned against spent outputs
>> > > instead of
>> > > unspent outputs.
>> > >
>> > > This allows for much better concurrency, as not only blocks, but
>> > > also
>> > > individual inputs can be verified fully in parallel.
>> > >
>> > > I explain the approach at https://bitcrust.org, source code is
>> > > available
>> > > at https://github.com/tomasvdw/bitcrust
>> > >
>> > > I am sharing this not only to ask for your feedback, but also to
>> > > call
>> > > for a clear separation of protocol and implementations: As this
>> > > solution, reversing the costs of outputs and inputs, seems to
>> > > have
>> > > excellent performance characteristics (as shown in the test
>> > > results),
>> > > updates to the protocol addressing the UTXO growth, might not be
>> > > worth
>> > > considering *protocol improvements* and it might be best to
>> > > address
>> > > these concerns as implementation details.
>> > >
>> > > Kind regards,
>> > > Tomas van der Wansem
>> > > tomas at bitcrust.org
>> > > Bitcrust
>> > > _______________________________________________
>> > > bitcoin-dev mailing list
>> > > bitcoin-dev at lists.linuxfoundation.org
>> > > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>> > >
>> bitcoin-dev mailing list
>> bitcoin-dev at lists.linuxfoundation.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the bitcoin-dev