Bitcoin Forum

Bitcoin => Bitcoin Wallet for Android => Topic started by: Andreas Schildbach on February 24, 2013, 09:46:03 AM



Title: Bitcoin Wallet 2.41 released!
Post by: Andreas Schildbach on February 24, 2013, 09:46:03 AM
I'm proud to announce version 2.41 of Bitcoin Wallet.

The changes are mostly under the hood, but some of them are massive:

  • Seriously reduced bandwidth and CPU usage due to usage of bloom filters on peer connections
  • Faster connection setup to peers
  • Ability to spend your own change instantly, without waiting for confirmation
  • No need to manually disconnect any more for any of the preferences
  • Preference for showing the connectivity indicator
  • Shortcut to request coins by long tapping on QR code
  • Enhanced Peer monitor to show more info about peers, e.g. hostname
  • Fallback for fetching exchange rates (bitcoincharts first, then blockchain)
  • Lots of small improvements and bugfixes
  • Based on bitcoinj 0.7

The bloom filter feature depends on seeing at least one bitcoin-qt/bitcoind 0.8.0 (protocol version 70000+) to download blocks from. As of today, the chance for this is roughly 50% and will increase as the new version spreads. If you want to help, update your bitcoin-qt now.

Download/update from Google Play:
https://play.google.com/store/apps/details?id=de.schildbach.wallet

Direct download:
https://code.google.com/p/bitcoin-wallet/downloads/list

Source:
https://code.google.com/p/bitcoin-wallet/source/checkout


Thanks to everyone who contributed to Bitcoin Wallet and bitcoinj. Mike Hearn and Matt Corallo earn extra hugs for making bloom filters a reality!


Title: Re: Bitcoin Wallet 2.41 released!
Post by: wyodude on February 24, 2013, 07:51:42 PM
Updated, does seem to be noticeably faster. Thank you for your work.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: coqui33 on February 24, 2013, 10:17:41 PM
Is there any way to import a pre-existing private key?


Title: Re: Bitcoin Wallet 2.41 released!
Post by: wyodude on February 24, 2013, 10:28:42 PM
Is there any way to import a pre-existing private key?
+1


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Jouke on February 25, 2013, 12:22:53 AM
Yes there is, but it is not real easy.

Make a backup, decrypt that file, put your private key in, encrypt that file again, import it as a backup.

 https://bitcointalk.org/index.php?topic=4384.msg1287794#msg1287794


Title: Re: Bitcoin Wallet 2.41 released!
Post by: datafish on February 25, 2013, 02:22:04 PM
When I first ran v. 2.41, it gave me a warning about older versions of Android not being supported in the future and said that I should transfer my bitcoins out of the wallet.  However, when I try to send now, it crashes.  Is there any way to roll back to the previous version or import the private keys into another client?  Thanks.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: datafish on February 25, 2013, 03:52:20 PM
Ok,  I was able to download the apk for version 2.39 from google code, install it and transfer my coins out.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: coqui33 on February 25, 2013, 04:20:10 PM
Yes there is, but it is not real easy.

Make a backup, decrypt that file, put your private key in, encrypt that file again, import it as a backup.

 https://bitcointalk.org/index.php?topic=4384.msg1287794#msg1287794
Thank you. That was helpful. I saved the (encrypted) privkey from the Android wallet to a file, then moved the file to a windows machine, then downloaded OpenSSL for Windows (lite), then learned enough about OpenSSl to decrypt the file, then decrypted the file, then copied the exported decrypted privkey and pasted it into Blockchain.info in order to test it. Blockchain.info said that it was a "compressed" privkey and that i should sweep it, rather than load it (something about Android). At that point, I realized that I would have to learn how to use OpenSSL to re-compress and re-encrypt my pre-existing privkey before I could move the file back to Android in order to import it back into the Android wallet.

I decided that this process was too steep a learning curve for a one-time operation. So, for my cell-phone spending money, for now I am sticking with BitCoinSpinner.

This is a shame. I do not fully trust BitcoinSpinner because it does not use standard blockchain nodes, whereas I can set Bitcoin Wallet 2.41 to use my own personal trusted bitcoind 0.8 node (at pc.backintyme.com), as well as other nearby nodes. I shall check back now and then to see if perhaps the next release of Android wallet makes privkey management more straightforward.

Thanks again.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Mike Hearn on February 25, 2013, 05:44:03 PM
Why don't you just .... send the money from your desktop to your wallet?

Importing private keys is deliberately awkward because there are so many ways people can make mistakes and end up accidentally creating double spends. Perhaps in future having multiple devices all sharing the same wallet will be easier and safer but for now, you can just send the money.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: coqui33 on February 26, 2013, 12:05:47 AM
Why don't you just .... send the money from your desktop to your wallet?
Why don't I send the money from my desktop to my wallet? There is no easy way to answer that.

First, I do not keep any money in any desktop. I keep my savings in several privkeys, none of which is implemented in software anywhere. When I must spend money from savings, I temporarily import one of the privkeys into software (armory, blockchain.info, or the like), spend the money, and immediately delete the privkey from the software. I may have inadvertently misled when said that I run a bitcoin-d node on a server. But I do not keep any active privkeys there. I run it just to help the cause, since I must run the server 24/7 for other reasons.

Second, the little money that I must keep on hand (less than one btc), I keep in a privkey that is loaded into BitcoinSpinner both on my smartphone and also on my tablet (same privkey). That way, I can spend from the same privkey, no matter which Android device I happen to be holding.

I keep track of the balances in my several savings privkeys as well as in the petit-cash privkey with the "WalletBalance" Android app.

The reason that your question is hard to answer is that I do not see bitcoins the way many people do. Many people visualize their bitcoins as residing in this wallet or that, in one computer or another. And so the question "Why not move the money from this wallet to that wallet?" makes sense to them. To me, my bitcoins are in my privkeys, which are dispersed across all the nodes. Wallet software is merely a temporary tool for spending money out of a privkey. Again, with the exception of the petit cash that I carry in my phone and tablet, none of my bitcoins are in wallets anywhere. All are in privkeys in the cloud.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Mike Hearn on February 26, 2013, 09:43:10 AM
Yeah, for unusual use cases like yours right now the Bitcoin Wallet app might not be appropriate. It can support what you're doing, but it'll import private keys more slowly than an app like Spinner will. The flip side of course is that with apps like blockchain.info or spinner the server knows all your transaction history.

I think in future having the same keys shared by different apps will become more common. It's safe as long as none of the apps get out of sync with each other. The problem is if they do get out of sync, it's tough to recover right now. We probably need more code to check the timestamps on block headers vs some source of real time to avoid problems caused by the users clocks being set wrong, and forbid spending until the chain head is not too far away from real time.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: coqui33 on February 26, 2013, 04:37:45 PM
The flip side of course is that with apps like blockchain.info or spinner the server knows all your transaction history.
Correct. I wake up at 3 A.M. fretting over this... seriously... I am paranoid about anyone knowing what I have and where I keep it. Spinner and blockchain.info are merely temporary solutions until something more private comes along.
Quote
I think in future having the same keys shared by different apps will become more common. It's safe as long as none of the apps get out of sync with each other. The problem is if they do get out of sync, it's tough to recover right now.
I agree. As you say though, this should be soluble with some serious thought towards limiting clashes caused by time and recipient-address overlap. I guess we just have to be patient.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Jouke on February 27, 2013, 01:09:07 AM
Yes there is, but it is not real easy.

Make a backup, decrypt that file, put your private key in, encrypt that file again, import it as a backup.

 https://bitcointalk.org/index.php?topic=4384.msg1287794#msg1287794
Thank you. That was helpful. I saved the (encrypted) privkey from the Android wallet to a file, then moved the file to a windows machine, then downloaded OpenSSL for Windows (lite), then learned enough about OpenSSl to decrypt the file, then decrypted the file, then copied the exported decrypted privkey and pasted it into Blockchain.info in order to test it. Blockchain.info said that it was a "compressed" privkey and that i should sweep it, rather than load it (something about Android). At that point, I realized that I would have to learn how to use OpenSSL to re-compress and re-encrypt my pre-existing privkey before I could move the file back to Android in order to import it back into the Android wallet.

I decided that this process was too steep a learning curve for a one-time operation. So, for my cell-phone spending money, for now I am sticking with BitCoinSpinner.

This is a shame. I do not fully trust BitcoinSpinner because it does not use standard blockchain nodes, whereas I can set Bitcoin Wallet 2.41 to use my own personal trusted bitcoind 0.8 node (at pc.backintyme.com), as well as other nearby nodes. I shall check back now and then to see if perhaps the next release of Android wallet makes privkey management more straightforward.

Thanks again.


You were almost there! Encrypting the file is one option different as decrypting in openssl!

Information about your keys in different formats can be obtained at bitaddress.org


Title: Re: Bitcoin Wallet 2.41 released!
Post by: btcusr on March 01, 2013, 08:28:16 AM
Watch-only addresses please..


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Andreas Schildbach on March 02, 2013, 05:30:38 PM
When I first ran v. 2.41, it gave me a warning about older versions of Android not being supported in the future and said that I should transfer my bitcoins out of the wallet.  However, when I try to send now, it crashes.  Is there any way to roll back to the previous version or import the private keys into another client?  Thanks.

I'm sorry about this, it will be fixed in version 2.42 which will be most likely released tomorrow.

It was caused by some Java6 code creeping in, and your phone can only do Java5 unfortunately.

Don't worry, your phone will be supported long enough to move your coins out. And actually if you're happy with the current feature set, you will likely be able to use the app much longer.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: HostFat on March 02, 2013, 05:52:54 PM
Will you ever add a sync-on-wifi-only option?


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Andreas Schildbach on March 02, 2013, 05:53:53 PM
I keep my savings in several privkeys, none of which is implemented in software anywhere.

I wonder how you manage to transfer your private keys between devices without accidently leaking them.

If you send them by mail or instant message unencrypted, they are obviously leaked.
If you copy them to the clipboard (cut & paste), any application can steal them. I am sure there is already malware that monitors the clipboard.
If you copy them to external storage on Android unencrypted, again any app can steal them.
If you view and scan them using QR-codes, observers can snapshot them as well.

This is why I am extremely cautious regarding import and export of private keys and always require encryption. Note that MultiBit uses the same scheme, so you should be able to exchange keys without the openssl step inbetween. We have deliberately chosen this openssl standard, because it should be easy to implement by other applications as well.

Some months ago I have - in a private branch - implemented the ability to display private keys as QR and import them by scanning. I will not merge this as is, but if you want you can compile it yourself (and enhance perhaps, to make it more secure).

I'm thinking about the possibility to import private keys by sweeping. This would allow for redeeming vouchers / paper wallets, but its probably not what you want.

However, its all just a workaround. The most convenient and secure way to transfer money is signing a Bitcoin transaction.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Andreas Schildbach on March 02, 2013, 06:02:57 PM
Will you ever add a sync-on-wifi-only option?

The plan is to make the network so efficient that you don't care. As soon as bloom filtering is supported by virtually all nodes, it should be possible to stay within 2 MB per month with moderate use. Currently only one quarter of peers support bloom filtering, so make sure to update your bitcoin-qt or bitcoind to 0.8.0.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Syke on March 03, 2013, 03:30:42 AM
When I first ran v. 2.41, it gave me a warning about older versions of Android not being supported in the future and said that I should transfer my bitcoins out of the wallet.  However, when I try to send now, it crashes.  Is there any way to roll back to the previous version or import the private keys into another client?  Thanks.

I'm sorry about this, it will be fixed in version 2.42 which will be most likely released tomorrow.

It was caused by some Java6 code creeping in, and your phone can only do Java5 unfortunately.

My app crashes when trying to import a private key. Is this the same issue?


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Andreas Schildbach on March 03, 2013, 09:43:43 AM
My app crashes when trying to import a private key. Is this the same issue?

Depends on the crash. Have you sent a crash report? Which email address did you use (so that I can identify your report)?


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Syke on March 03, 2013, 03:22:32 PM
My app crashes when trying to import a private key. Is this the same issue?

Depends on the crash. Have you sent a crash report? Which email address did you use (so that I can identify your report)?

Just installed 2.42, still crashes. I'll send in another crash report.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: coqui33 on March 08, 2013, 12:58:53 AM
I keep my savings in several privkeys, none of which is implemented in software anywhere.
I wonder how you manage to transfer your private keys between devices without accidently leaking them.

Like I said, they are not on any devices. Never have been.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Dabs on March 08, 2013, 01:32:38 AM
You can't really hide your transactions. It's in the block chain. It has to be.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: coqui33 on March 08, 2013, 01:42:19 AM
You can't really hide your transactions. It's in the block chain. It has to be.

Of course, but we were talking about my privkeys. You cannot retrieve them from the blockchain.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Syke on March 09, 2013, 03:05:39 AM
I just want to say, Wow! With the new client and 0.8 servers, I'm doing a full blockchain download on my phone in about an hour.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Mike Hearn on March 09, 2013, 01:11:57 PM
Great to hear that Syke!

But we're not done yet. The next version has basically instant startup for new users. It will also sync much faster for people who reset the chain for some reason (but not instant).


Title: Re: Bitcoin Wallet 2.41 released!
Post by: qbits on March 31, 2013, 09:01:10 PM
Is there any way to import a pre-existing private key?
+1
+1 with QR code scanning please!!


Title: Re: Bitcoin Wallet 2.41 released!
Post by: qbits on March 31, 2013, 09:06:52 PM
Why don't you just .... send the money from your desktop to your wallet?
Why don't I send the money from my desktop to my wallet? There is no easy way to answer that.

First, I do not keep any money in any desktop. I keep my savings in several privkeys, none of which is implemented in software anywhere. When I must spend money from savings, I temporarily import one of the privkeys into software (armory, blockchain.info, or the like), spend the money, and immediately delete the privkey from the software. I may have inadvertently misled when said that I run a bitcoin-d node on a server. But I do not keep any active privkeys there. I run it just to help the cause, since I must run the server 24/7 for other reasons.

Second, the little money that I must keep on hand (less than one btc), I keep in a privkey that is loaded into BitcoinSpinner both on my smartphone and also on my tablet (same privkey). That way, I can spend from the same privkey, no matter which Android device I happen to be holding.

I keep track of the balances in my several savings privkeys as well as in the petit-cash privkey with the "WalletBalance" Android app.

The reason that your question is hard to answer is that I do not see bitcoins the way many people do. Many people visualize their bitcoins as residing in this wallet or that, in one computer or another. And so the question "Why not move the money from this wallet to that wallet?" makes sense to them. To me, my bitcoins are in my privkeys, which are dispersed across all the nodes. Wallet software is merely a temporary tool for spending money out of a privkey. Again, with the exception of the petit cash that I carry in my phone and tablet, none of my bitcoins are in wallets anywhere. All are in privkeys in the cloud.


+1 I agree 100% coins are not on a PC but rather in blockchain. access to blockchain is unlocked with a key. Personaly I use paper wallets. They are easy to copy and are therefore redundant and at the same time they are offline. Importing into a portable device via QR makes paperwallets real easy to use. and yes electrum client+webcam+qr software can achieve this on a PC. I wonder why you would not want that on an android client?


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Remember remember the 5th of November on April 07, 2013, 05:13:18 PM
Is this client a thin client or does it actually store the block chain? I'd imagine on the limited space on phones it likely does not store the whole blockchain.

Also, is it easily extendible to support other alt-coins?


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Andreas Schildbach on April 07, 2013, 06:26:58 PM
Is this client a thin client or does it actually store the block chain? I'd imagine on the limited space on phones it likely does not store the whole blockchain.

Also, is it easily extendible to support other alt-coins?

Its a so called SPV client (simple payment verification). That basically means full security for confirmed transactions and ok security for pending transactions. It does not store the blockchain, only the transactions that are relevant to your wallet.

That's probably the best you can get on a mobile (storage space limited) device.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Krellan on June 21, 2013, 11:04:12 PM
Will you ever add a sync-on-wifi-only option?

Yes, please!  I just tried the Android app and this is the biggest issue I have with it.  There seems to be no way to turn it on and off, other than force stopping it.

I would love to be able to tell it to only connect to peers and sync up when on Wi-Fi, or better yet, have an option there in the app to let me turn it on and off manually, so that I can have it sync up only if I really want to (and am willing to let it burn through my data plan).

Very nice app.  I'm also hoping I can move its data storage to the SD card, but it seems to have that option grayed out in the "App Info" screen of the application manager, unfortunately.  Is there a way to do this?


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Andreas Schildbach on June 21, 2013, 11:08:53 PM
Will you ever add a sync-on-wifi-only option?

Yes, please!  I just tried the Android app and this is the biggest issue I have with it.  There seems to be no way to turn it on and off, other than force stopping it.

I would love to be able to tell it to only connect to peers and sync up when on Wi-Fi, or better yet, have an option there in the app to let me turn it on and off manually, so that I can have it sync up only if I really want to (and am willing to let it burn through my data plan).

Very nice app.  I'm also hoping I can move its data storage to the SD card, but it seems to have that option grayed out in the "App Info" screen of the application manager, unfortunately.  Is there a way to do this?


Data usage of Bitcoin Wallet is negligible. If you want to spare your data plan, you should switch off mobile data and/or roaming in the Android settings.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Krellan on June 22, 2013, 12:28:41 AM
OK, thanks.  Relieved to learn it doesn't download the entire blockchain.

Is it possible to move the storage to a SD card?  I tried it on my phone, but the "Move To SD Card" option in Applications Manager was grayed out.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Mike Hearn on June 22, 2013, 11:09:38 AM
It should only be using a megabyte or two of data at most - is it really needed to move it to sdcard? How much data/storage do you see it using as reported by android?


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Syke on June 24, 2013, 08:56:19 PM
It should only be using a megabyte or two of data at most - is it really needed to move it to sdcard? How much data/storage do you see it using as reported by android?

Version 3.08

Total: 4.75MB
App: 3.72MB
Data: 1.03MB


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Mike Hearn on June 25, 2013, 03:31:05 PM
Yeah, so 1mb of data. Is that seriously a problem for you?


Title: Re: Bitcoin Wallet 2.41 released!
Post by: prof7bit on June 25, 2013, 05:07:13 PM
I like this wallet very much and I use it on a very low end device (Huawei Ideos X3) and its working like a charm but I have problems with my small display size and it has become much worse with the latest Version:

https://i.imgur.com/kEui47E.png

The bar at the bottom is extremely large (previous version didn't have this), scrolling through the transaction list is a much worse experience now with this little height left. Also in the previous version there was a display of the synchronization progress after app was started, now there is no indication anymore at all whether it is synched already, I always have to enter the network monitor via the menu and then swipe left to look at the date of the latest block just to determine whether its synched already because there is no other indication anymore, the previous version showed a small black status bar with progress that disappeared when done. This was **much** better.

Please revert the UI changes back to the previous version.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: elebit on June 25, 2013, 06:26:06 PM
Another UI question: How do I know that my client is synchronized with the block chain?

There used to be an indicator how many days of blockchain data was left to download, but at least for me that information has completely disappeared. I sometimes start the software to let it catch up but now I suddenly have no idea it it's done or not. Am I not supposed to do this? What did I miss?


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Mike Hearn on June 26, 2013, 08:48:49 AM
The indicator still appears if there's more than 7 days of activity to catch up on. We took out the indicator if there's less than 7 days to go because synchronization is nearly immediate then, and there's little point. By default there won't ever be more than 7 days because the app syncs in the background at night.

If you look in the network monitor then you'll notice that by the time you manage to open it, you're normally already caught up. So don't worry about it. You can just assume that whatever you're looking at is accurate.

With regards to the height issue, I agree, although reverting back to the old UI probably isn't the right solution. The bottom bar was added to make it clearer how to use the app for new users who might not figure out the unlabelled buttons in the top action bar.

I think a better approach is to just shrink the top area that's currently devoted to the address and the qrcode. There isn't really any point in showing your full address all the time - a few characters could be displayed and if you want to see the whole thing, just tap it to reveal the address book. The blockchain.info fork does this and I think it looks better. Andreas, what do you think?


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Andreas Schildbach on June 26, 2013, 12:17:52 PM
Pro7bit, thanks for your suggestions!

Regarding the send and request buttons, without labels they were not visible enough (even for experienced users). So for "normal" sized screens, I decided to move them to a bottom action bar so I can label them. On "small" screens I kept them in the top action bar for the exact reason you are showing in your screenshot. Now, the issue is that your phone is classified as "normal" sized rather than "small". This is something your device declares, the app has to rely on that information. If you have installed a custom ROM, you should probably change this - it affects other apps as well.

I planned to reduce the size of the wallet address part together with the introduction of HD wallets. The "from address" will also go away at the same time, its a concept that is not reliable (some even say it does not exist). Basically, with HD wallets I want to switch from "one address per wallet" to "one address per payment" (which is the original idea by Satoshi).

Regarding the blockchain progress, the idea of the changes is that you only should care if there is a problem. A blockchain not up to date is no problem, as long as its in the progress of catching up. So it only shows error states (no network, out of storage, ...). A special case is a replay, during which you cannot/should not send payments. Which is why during a replay, progress is shown.

Mike, there is no such thing as a "7 days" threshold. There is a one hour threshold though, everything below counts as fully up to date.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Mike Hearn on June 26, 2013, 12:22:16 PM
Oops, my mistake.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: elebit on June 26, 2013, 10:09:13 PM
Ok, so I don't need to sync it regularly then? It will do so every day, automatically?

Won't that be a problem for people with limited data plans? Doesn't Bitcoin Wallet need to download all transactions to find which ones are relevant to my wallet?


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Andreas Schildbach on June 27, 2013, 12:33:41 AM
Ok, so I don't need to sync it regularly then? It will do so every day, automatically?

Won't that be a problem for people with limited data plans? Doesn't Bitcoin Wallet need to download all transactions to find which ones are relevant to my wallet?

It synchs regularly, interval based on how long you did not use the app. It also triggers a synch when you plug in a a charger, which in many cases means you're also on WLAN.

If you don't send or receive coins, it basically just synchs the headers (12 kB per day plus some overhead). Plus transactions, if you have any (~500 bytes per tx).

If that's harmful to your data plan, you better disable mobile data entirely.


Title: Re: Bitcoin Wallet 2.41 released!
Post by: Mike Hearn on June 27, 2013, 01:13:00 PM
It used to download all transactions, but starting around February time it no longer does. It downloads the headers, relevant transactions (plus some false positives for privacy reasons) and the merkle branches that provably link them together.