Bitcoin Forum
April 20, 2014, 01:25:51 PM *
News: Due to the OpenSSL heartbleed bug, changing your forum password is recommended.
 
   Home   Help Search Donate Login Register  
Pages: [1] 2  All
  Print  
Author Topic: Next Steps and Testers wanted  (Read 5066 times)
Andreas Schildbach
Moderator
Sr. Member
*
Offline Offline

Activity: 424



View Profile WWW

Ignore
February 06, 2013, 12:03:27 PM
 #1

I thought I'd give you a quick update on the progress lately.

I'm working on the next version of Bitcoin Wallet which will not have a lot of user-facing features but rather focusses on much more efficient network usage.

For that to happen, Matt Corallo and Mike Hearn have implemented Bloom Filters into the soon to be released bitcoin-qt 0.8 and bitcoinj (will go into 0.7).

With Bloom Filters, only the data relevant to your wallet will be transferred, plus some more for anonymity purposes. This saves network, CPU resources and at the end of the day your battery will last longer.

You can help testing this. Get a preview from:

http://code.google.com/p/bitcoin-wallet/downloads/list

Use the trusted peer prefs for connecting to a Bloom enabled node. Since Bitcoin 0.8 is not released yet you either need to compile and run your own node or you can use Mike's riker.plan99.net.

I'd be especially interested in comments from people who suffered from high usage of their network data plan.

Bitcoin Wallet for Android: Your own Bitcoins, in your own pocket!
https://play.google.com/store/apps/details?id=de.schildbach.wallet
1398000351
Hero Member
*
Offline Offline

Posts: 1398000351

View Profile Personal Message (Offline)

Ignore
1398000351
Reply with quote  #2

1398000351
Report to moderator
Unbeatable Service & Product Support
Grab Your Miners at GAWMiners.com
Order Before April 25th to receive
Double your Hashing Power for 1 week!

Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1398000351
Hero Member
*
Offline Offline

Posts: 1398000351

View Profile Personal Message (Offline)

Ignore
1398000351
Reply with quote  #2

1398000351
Report to moderator
1398000351
Hero Member
*
Offline Offline

Posts: 1398000351

View Profile Personal Message (Offline)

Ignore
1398000351
Reply with quote  #2

1398000351
Report to moderator
1398000351
Hero Member
*
Offline Offline

Posts: 1398000351

View Profile Personal Message (Offline)

Ignore
1398000351
Reply with quote  #2

1398000351
Report to moderator
1398000351
Hero Member
*
Offline Offline

Posts: 1398000351

View Profile Personal Message (Offline)

Ignore
1398000351
Reply with quote  #2

1398000351
Report to moderator
DeathAndTaxes
Donator
Hero Member
*
Offline Offline

Activity: 966



View Profile WWW

Ignore
February 06, 2013, 02:22:29 PM
 #2

Are there any docs on how the bloom filter works?

Gerald Davis  CEO, Tangible Cryptography Inc.
BitSimple. A simpler way to buy and sell bitcoins
Andreas Schildbach
Moderator
Sr. Member
*
Offline Offline

Activity: 424



View Profile WWW

Ignore
February 06, 2013, 02:32:36 PM
 #3

Are there any docs on how the bloom filter works?

The specification can be found here:
https://en.bitcoin.it/wiki/BIP_0037

And there is a general description of bloom filters here:
http://en.wikipedia.org/wiki/Bloom_filter

Bitcoin Wallet for Android: Your own Bitcoins, in your own pocket!
https://play.google.com/store/apps/details?id=de.schildbach.wallet
Mike Hearn
Hero Member
*****
Offline Offline

Activity: 1232


View Profile

Ignore
February 06, 2013, 04:41:30 PM
 #4

Here is a 10 second explanation.

Currently SPV (lightweight p2p) clients must download all transactions from the entire Bitcoin system, even though they do not verify them or check signatures. Instead they're downloaded, checked to see if they send money to or from your wallet, and if not the data is just thrown away.

This is wasteful, slow and doesn't scale because it means as more people use Bitcoin syncing the chain gets ever slower. Also, it pushes people towards clients like Electrum and BitcoinSpinner which use custom protocols which do all the work on dedicated servers.

Bloom filtering solves this. When it connects, the client creates a data structure (the filter) that represents the keys in the users wallet and sends it to the remote peers. They then only send the transactions that match the filter across the network.

The system we have chosen has desirable properties:

  • When transactions are sent to the client, they are accompanied by proofs that they were included in the block chain (merkle branches). Remote nodes cannot send you fake money unless they are willing to mine fake chains, which is hard. (note: they can try and omit transactions, but because you can use any Bitcoin node they are unlikely to get away with it)
  • The Bloom filters are probabilistic. They can have false positives, but no false negatives. That means the remote peer receives a noisy view of your wallet - it'll end up sending you transactions that aren't actually involving your keys (which get thrown away of course) and can't tell which are really yours and which are not. You can choose the false positive rate to trade off bandwidth vs privacy.

In this way, we can take a step closer to having Electrum/BCSpinner levels of performance but with strong privacy, no central points of failure and using Satoshis original vision of a purely peer to peer network.

12LMm82ZgAzf7yNDpPydEYxEr4Ap7XtSSK
streblo
Full Member
***
Offline Offline

Activity: 165


View Profile

Ignore
February 06, 2013, 06:52:34 PM
 #5

Wow, thank you for the excellent explanation!  Shocked
stan.distortion
Hero Member
*****
Offline Offline

Activity: 602



View Profile

Ignore
February 06, 2013, 07:09:16 PM
 #6

Have an issue with the peer monitor in this version (bitcoin-wallet-2.39_bitcoinj0.7.apk, submitted an issue on the project page). Bringing up the peer monitor shortly after opening shows no connections (icon in top left of screen shows connections). They will come up after a while (about 1 min) but the phone stays stuck on the peer monitor screen. Could only get out of this by killing the app.

Anyone know where there's a copy of bitcoin 0.8? Can't find it on Gavin's page anymore.

­aminorex: "there are no good arguments for regulation, merely bad arguments in a good suit."
Andreas Schildbach
Moderator
Sr. Member
*
Offline Offline

Activity: 424



View Profile WWW

Ignore
February 06, 2013, 08:56:00 PM
 #7

Anyone know where there's a copy of bitcoin 0.8? Can't find it on Gavin's page anymore.

I believe there is no binary yet.

You can clone the bitcoin repository and build your own copy:

https://github.com/bitcoin/bitcoin

(as long as 0.8 is not tagged, just use the master branch)

Update: rc1 has been tagged as v0.8.0rc1

Bitcoin Wallet for Android: Your own Bitcoins, in your own pocket!
https://play.google.com/store/apps/details?id=de.schildbach.wallet
Andreas Schildbach
Moderator
Sr. Member
*
Offline Offline

Activity: 424



View Profile WWW

Ignore
February 06, 2013, 10:47:47 PM
 #8

I believe there is no binary yet.

Sometimes things change quicker than expected. Binaries have been uploaded to

http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.0/test/

Bitcoin Wallet for Android: Your own Bitcoins, in your own pocket!
https://play.google.com/store/apps/details?id=de.schildbach.wallet
stan.distortion
Hero Member
*****
Offline Offline

Activity: 602



View Profile

Ignore
February 06, 2013, 11:12:09 PM
 #9

Nice one, thanks Smiley

EDIT: http://www.alloscomp.com/bitcoin/portStatus.php is showing I have port 8333 blocked over both 3g and wifi. I get only 1 connected peer with plan99.net as trusted peer on both 3g and wifi, same with my internal desktop ip with wifi.

­aminorex: "there are no good arguments for regulation, merely bad arguments in a good suit."
slothbag
Sr. Member
****
Offline Offline

Activity: 333



View Profile

Ignore
February 07, 2013, 05:55:22 AM
 #10

Just upgraded from one of the 0.8 turbo builds.. Renamed database folders, syncing from very start again.. Argh, last time I went through this it was a week long process. Sad

Downloading bootstrap again Sad
cardinalG
SCAMMER
Jr. Member
*****
Offline Offline

Activity: 56


View Profile

Ignore
February 07, 2013, 06:33:55 AM
 #11

Here is a 10 second explanation.

Currently SPV (lightweight p2p) clients must download all transactions from the entire Bitcoin system, even though they do not verify them or check signatures. Instead they're downloaded, checked to see if they send money to or from your wallet, and if not the data is just thrown away.

This is wasteful, slow and doesn't scale because it means as more people use Bitcoin syncing the chain gets ever slower. Also, it pushes people towards clients like Electrum and BitcoinSpinner which use custom protocols which do all the work on dedicated servers.

Bloom filtering solves this. When it connects, the client creates a data structure (the filter) that represents the keys in the users wallet and sends it to the remote peers. They then only send the transactions that match the filter across the network.

The system we have chosen has desirable properties:

  • When transactions are sent to the client, they are accompanied by proofs that they were included in the block chain (merkle branches). Remote nodes cannot send you fake money unless they are willing to mine fake chains, which is hard. (note: they can try and omit transactions, but because you can use any Bitcoin node they are unlikely to get away with it)
  • The Bloom filters are probabilistic. They can have false positives, but no false negatives. That means the remote peer receives a noisy view of your wallet - it'll end up sending you transactions that aren't actually involving your keys (which get thrown away of course) and can't tell which are really yours and which are not. You can choose the false positive rate to trade off bandwidth vs privacy.

In this way, we can take a step closer to having Electrum/BCSpinner levels of performance but with strong privacy, no central points of failure and using Satoshis original vision of a purely peer to peer network.

Huh
Andreas Schildbach
Moderator
Sr. Member
*
Offline Offline

Activity: 424



View Profile WWW

Ignore
February 07, 2013, 09:39:34 AM
 #12

I get only 1 connected peer with plan99.net as trusted peer on both 3g and wifi, same with my internal desktop ip with wifi.

This is expected. If you configure a trusted peer, Bitcoin Wallet only connects to that peer. Just don't forget to remove the trusted peer after finishing your testing.

Bitcoin Wallet for Android: Your own Bitcoins, in your own pocket!
https://play.google.com/store/apps/details?id=de.schildbach.wallet
stan.distortion
Hero Member
*****
Offline Offline

Activity: 602



View Profile

Ignore
February 08, 2013, 06:13:36 PM
 #13

Have port 8333 open now, 0.8 seems to be causing some network lag in other apps (noticeable in online games) not had a look what's going on yet, maybe its just the extra connections.

Something strange, when I put my desktop internal ip as a trusted peer I just have that 1 connection. If I shut down bitcoin-qt and re-open it later Bitcoin Wallet doesn't seem to re-connect to it, sync is stalled on 1 hour atm. Don't think its an issue with my wifi, its been weak but constant the whole time.

­aminorex: "there are no good arguments for regulation, merely bad arguments in a good suit."
Andreas Schildbach
Moderator
Sr. Member
*
Offline Offline

Activity: 424



View Profile WWW

Ignore
February 08, 2013, 08:07:59 PM
 #14

Have port 8333 open now, 0.8 seems to be causing some network lag in other apps (noticeable in online games) not had a look what's going on yet, maybe its just the extra connections.

You can address that to the core bitcoin team. Either open a ticket on their bugtracker or post in the forum.

Quote
Something strange, when I put my desktop internal ip as a trusted peer I just have that 1 connection. If I shut down bitcoin-qt and re-open it later Bitcoin Wallet doesn't seem to re-connect to it, sync is stalled on 1 hour atm. Don't think its an issue with my wifi, its been weak but constant the whole time.

Thanks for catching this.

Well, trusted peers are not sticky like any other peer. So if they cannot be connected to or disconnect, they'll be thrown away. You can deliberately disconnect (see action bar overflow menu) and reconnect by opening the app again.

I'll open a ticket for bitcoinj so addresses can be marked as sticky.

Bitcoin Wallet for Android: Your own Bitcoins, in your own pocket!
https://play.google.com/store/apps/details?id=de.schildbach.wallet
stan.distortion
Hero Member
*****
Offline Offline

Activity: 602



View Profile

Ignore
February 09, 2013, 02:04:00 AM
 #15

Thanks. It was easy enough to close and re-open the app so it was more an irritation than an issue but progress is nice Smiley Also had some sort of issue with QR codes earlier, it wouldn't recognise any from the desktop. I re-installed the older version and that worked ok, went back to the newer one and it worked fine. No idea what might have caused it, I'll see if I can re-produce it.

I'll have a better look at bitcoin-qt before reporting it, I have a lot of other stuff running that may have been the cause or it could have just been lag on the game server.

­aminorex: "there are no good arguments for regulation, merely bad arguments in a good suit."
Mike Hearn
Hero Member
*****
Offline Offline

Activity: 1232


View Profile

Ignore
February 09, 2013, 10:17:10 AM
 #16

Huh

OK, let me try again. It makes things fast and cheap (bandwidth wise).

12LMm82ZgAzf7yNDpPydEYxEr4Ap7XtSSK
Mike Hearn
Hero Member
*****
Offline Offline

Activity: 1232


View Profile

Ignore
February 09, 2013, 10:18:22 AM
 #17

If your Bitcoin-Qt is still syncing then it's expected to put heavy load on the system. Generally Bitcoin is an intensive app and will only get moreso. Running it along side performance sensitive apps like games is a recipe for problems.

12LMm82ZgAzf7yNDpPydEYxEr4Ap7XtSSK
stan.distortion
Hero Member
*****
Offline Offline

Activity: 602



View Profile

Ignore
February 09, 2013, 12:28:27 PM
 #18

Thanks Mike, I've not tried to see what's happening yet but something seems unusual. Commenting on the 0.8 bounty thread for now as I'm kind of derailing this one with it:
https://bitcointalk.org/index.php?topic=135567.0

Nothing more on android Bitcoin Wallet yet, re-installed and its syncing atm, will get some figures for MB/hour when that's done.

­aminorex: "there are no good arguments for regulation, merely bad arguments in a good suit."
Andreas Schildbach
Moderator
Sr. Member
*
Offline Offline

Activity: 424



View Profile WWW

Ignore
February 12, 2013, 07:49:12 AM
 #19

Mike's test node (running bitcoind 0.8) moved to

riker.plan99.net

Bitcoin Wallet for Android: Your own Bitcoins, in your own pocket!
https://play.google.com/store/apps/details?id=de.schildbach.wallet
secp256k1
Newbie
*
Offline Offline

Activity: 9



View Profile

Ignore
February 12, 2013, 08:16:49 PM
 #20

Testing just uploaded: bitcoin-wallet-2.39_bitcoinj0.7_spendpolicies-test.apk

'Trusted Peer' set to: riker.plan99.net
'Skip Regular Peer discovery': set

The 'Peer Monitor' shows 'No peers connected'. Is riker.plan99.net alive?

Will install http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.0/test/ and try connect to it.
Pages: [1] 2  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!