[Bitcoin-development] Bitcoind-in-background mode for SPV wallets

Thomas Voegtlin thomasv1 at gmx.de
Wed Apr 9 16:09:06 UTC 2014

Le 09/04/2014 17:54, Gregory Maxwell a écrit :

> Sadly today Electrum requires more than a full node, it requires a
> number of large additional indexes over what a full node has and
> pruning is precluded. I don't think that increasing the resource
> utilization of the node is a good way to go there for the purposes
> expressed here. (not that electrum couldn't be used here, but not
> unmodified without the resource usage increasing route)

Electrum uses two large indexes:

     address -> utxo

(patricia tree, aka "ultimate blockchain compression", see thread 
started by Alan Reiner in the bitcointalk forum)

     address -> spent history

The first index is not going to grow larger than what bitcoind already 
needs to store, because bitcoind will always need to store utxos.

The second index threatens to become large. However, Electrum servers do 
not keep the full histories, they prune older entries. Without adapting 
Electrum clients, it would even be possible to keep only one bit per 
address (to know whether that address has been used or not), and that 
information is only used to restore wallets from seed, not during normal 

If the first index (patricia tree) was implemented in bitcoind, that 
would obviously be a big relief for electrum servers.

>> and that it might be an easier way to support
>> SPV clients than creating a new API in bitcoind for it since Stratum
>> itself already relies on bitcoind to provide it's services.
> Bitcoin's own P2P protocol is already the API for a ordinary SPV
> client. So I don't believe any new API would be require, except
> perhaps for some process management stuff (which also isn't provided
> for Electrum).
> ------------------------------------------------------------------------------
> Put Bad Developers to Shame
> Dominate Development with Jenkins Continuous Integration
> Continuously Automate Build, Test & Deployment
> Start a new project now. Try Jenkins in the cloud.
> http://p.sf.net/sfu/13600_Cloudbees
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development

More information about the bitcoin-dev mailing list