<p>That wallet is using bitcoinj as its client which implements a "simplified payment verification" mode.</p>

<p>Here's what the client does in this implementation:</p>

<ul>
<li>Connects to a trusted node.</li>
<li>Downloads only the block headers.</li>
<li>Validates the headers. 
<ul>
<li>Do they chain back to genesis block? </li>
<li>Is difficulty high enough?</li>
<li>Do I trust this node enough?</li>
</ul></li>
<li>Downloads only the transactions that yield ownership to your addresses.</li>
<li>Sufficiently deep block headers are thrown away.</li>
</ul>

<p>Resource usage in this implementation just depends on your own sent/received transactions.</p>

<blockquote>
  <p>As of October 2012 (block 203258) there have been 7,979,231 transactions, however the size of the unspent output set is less than 100MiB, which is small enough to easily fit in RAM for even quite old computers. </p>
</blockquote>

<p>In other words, almost 8 million txns in Oct2012 could be consolidated to 100MiB just by throwing out txns that had no spendable outputs.</p>

<p>So you can imagine how little space it takes just to store transactions relevant to your addresses.</p>

<hr>

<ul>
<li><a href="https://code.google.com/p/bitcoin-wallet/" rel="nofollow">https://code.google.com/p/bitcoin-wallet/</a></li>
<li><a href="http://code.google.com/p/bitcoinj/source/browse/core/src/main/java/com/google/bitcoin/core/BlockChain.java#26" rel="nofollow">http://code.google.com/p/bitcoinj/source/browse/core/src/main/java/com/google/bitcoin/core/BlockChain.java#26</a></li>
<li><a href="https://en.bitcoin.it/wiki/Scalability#Storage" rel="nofollow">https://en.bitcoin.it/wiki/Scalability#Storage</a></li>
<li><a href="https://en.bitcoin.it/wiki/Scalability#Simplified_payment_verification" rel="nofollow">https://en.bitcoin.it/wiki/Scalability#Simplified_payment_verification</a></li>
</ul>

CC BY-SA 3.0
2013-04-18T09:21:58.950Z
2013-04-18T09:27:54.170Z
2013-04-18T09:27:54.170Z
danneu
<p>I know that satoshi's client doesn't prune, because we need to store all the transactions so that we can send them to other nodes.  But does <a href="https://play.google.com/store/apps/details?id=de.schildbach.wallet&amp;hl=en" rel="nofollow">this android bitcoin wallet</a> from de.schildbach prune?  Space on a smartphone is at a higher premium so it seems like a good place to prune.</p>

<p>And how much space would pruning save?  Has it ever been checked?</p>

CC BY-SA 3.0
2013-04-10T17:20:18.887Z
Which [android bitcoin client](https://en.bitcoin.it/wiki/Software#Android)?
Nick ODell
CC BY-SA 3.0
2013-04-10T17:33:25.643Z
https://play.google.com/store/apps/details?id=de.schildbach.wallet&hl=en
Eyal
<client><merkle-tree><bitcoin-wallet-app><pruning>
Is pruning of the merkle tree implemented in the bitcoin android wallet?
Eyal
# Is pruning of the merkle tree implemented in the bitcoin android wallet?

(Asked by: username_0 on 2013-04-10)

I know that satoshi's client doesn't prune, because we need to store all the transactions so that we can send them to other nodes. But does [this android bitcoin wallet](https://play.google.com/store/apps/details?id=de.schildbach.wallet&hl=en) from de.schildbach prune? Space on a smartphone is at a higher premium so it seems like a good place to prune.

And how much space would pruning save? Has it ever been checked?

**Tags:** client, merkle-tree, bitcoin-wallet-app, pruning

> **Comments:**
> **username_1**: Which [android bitcoin client](https://en.bitcoin.it/wiki/Software#Android)?  
> **username_0**: https://play.google.com/store/apps/details?id=de.schildbach.wallet&hl=en  

---

## 1 answers

### Answer by username_2 on 2013-04-18. Score: 2 | Accepted answer

That wallet is using bitcoinj as its client which implements a "simplified payment verification" mode.

Here's what the client does in this implementation:

* Connects to a trusted node.
* Downloads only the block headers.
* Validates the headers.
  + Do they chain back to genesis block?
  + Is difficulty high enough?
  + Do I trust this node enough?
* Downloads only the transactions that yield ownership to your addresses.
* Sufficiently deep block headers are thrown away.

Resource usage in this implementation just depends on your own sent/received transactions.

> As of October 2012 (block 203258) there have been 7,979,231 transactions, however the size of the unspent output set is less than 100MiB, which is small enough to easily fit in RAM for even quite old computers.

In other words, almost 8 million txns in Oct2012 could be consolidated to 100MiB just by throwing out txns that had no spendable outputs.

So you can imagine how little space it takes just to store transactions relevant to your addresses.

---

* <https://code.google.com/p/bitcoin-wallet/>
* <http://code.google.com/p/bitcoinj/source/browse/core/src/main/java/com/google/bitcoin/core/BlockChain.java#26>
* <https://en.bitcoin.it/wiki/Scalability#Storage>
* <https://en.bitcoin.it/wiki/Scalability#Simplified_payment_verification>


---

