Bitcoin Forum
December 04, 2016, 10:28:27 PM *
News: Latest stable version of Bitcoin Core: 0.13.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: « 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 »
  Print  
Author Topic: Bitcoin Wallet for Android  (Read 114968 times)
BTC1472
Newbie
*
Offline Offline

Activity: 3


View Profile
June 27, 2011, 01:34:24 PM
 #21

Based on bitcoinj, I've created and uploaded a first, experimental Bitcoin wallet implementation for Android:

http://market.android.com/details?id=de.schildbach.wallet

You can send money just by scanning a QR code the app displays. You need to install one of the QR code scanning apps for this to work (e.g. "Goggle").

The app currently only works for testnet. Because testnet is very slow in transaction processing, it currently takes ages to update the wallet. Unfortunately, I can't switch to prodnet, because Android apps only got 4 MB of heap memory and that's not enough for the blockchain. You can use the emulator and assign a max heap size of 32 MB though.

GPLv3'ed source available here: http://code.google.com/p/bitcoin-wallet/

Comments anyone?

Regards,

Andreas


Hi Goonie,

I'd be interested in contributing to your project. Do you have a backlog of tasks that need doing? What is preventing you from using the app on prodnet? Is it still the block chain memory issue?

Regards

BTC1472
1480890507
Hero Member
*
Offline Offline

Posts: 1480890507

View Profile Personal Message (Offline)

Ignore
1480890507
Reply with quote  #2

1480890507
Report to moderator
1480890507
Hero Member
*
Offline Offline

Posts: 1480890507

View Profile Personal Message (Offline)

Ignore
1480890507
Reply with quote  #2

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

Posts: 1480890507

View Profile Personal Message (Offline)

Ignore
1480890507
Reply with quote  #2

1480890507
Report to moderator
1480890507
Hero Member
*
Offline Offline

Posts: 1480890507

View Profile Personal Message (Offline)

Ignore
1480890507
Reply with quote  #2

1480890507
Report to moderator
cjp
Full Member
***
Offline Offline

Activity: 210



View Profile WWW
June 29, 2011, 09:13:36 PM
 #22

Hi,

I've downloaded the source of this app and I'm going to try it out in detail soon.

I just wanted to let you know that I have a Google Nexus S, and I'd like to help adding NFC capabilities to this Bitcoin client.

Is there something like a list of current features, and a roadmap for future features for this software? And maybe some software design diagrams for the current version and some future version?

Is there consensus on how to make transactions fast (say, less than 3 seconds), and how to reduce the memory footprint? Is it a good idea to have a full-featured client on your telephone, or is it possible to move part of the work to an (untrusted) 'cloud' service? In the second case, the app on the phone just needs to be able to check the work of the cloud service, and preferably somehow keep the private keys stored locally.

Donate to: 1KNgGhVJx4yKupWicMenyg6SLoS68nA6S8
http://cornwarecjp.github.io/amiko-pay/
TierNolan
Legendary
*
Online Online

Activity: 1036


View Profile
July 01, 2011, 09:25:13 AM
 #23

Yes the blockchain handling in BitCoinJ needs a lot of work. It's not just storage. It's handling of chain splits (reorgs). I'm working on reorgs first before storage because the chance of encountering a reorg gets much higher when you're keeping a permanent record of the chain.

What you could do is just set one of the blocks in the chain as a new "genesis" block and just store that hash for that block, its index and the headers from that block to the head of the chain.

If the genesis block header is more than 2000 blocks from the end of the chain, you could move the fake-genesis block forward until it is 1500 blocks from the head.

It is unlikely that there would ever be a fork point that is more than 1500 blocks long.

1LxbG5cKXzTwZg9mjL3gaRE835uNQEteWF
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526


View Profile
July 01, 2011, 11:08:17 AM
 #24

Actually I implemented re-orgs and a fix for the memory problem some time ago.

The next thing we need to fix for an independent Android client is initialization time for the first launch, when you have a fresh wallet. Right now you still have to download and (lightly) verify the entire chain, even though it's guaranteed that for a new user there won't be any transactions of interest there. It can be speeded up significantly by only fetching the headers for that section of chain.

Before I can implement that, we need unit tests for the Peer class though. It's under-tested right now.
netrin
Sr. Member
****
Offline Offline

Activity: 322


FirstBits: 168Bc


View Profile
July 01, 2011, 11:57:38 AM
 #25

That has been called 'pruning' by others.  It was intended by design for a future 'lightweight' client that could still stand alone, without the need to trust a remote server.

I'm all for a light weight block chain, but really, do we want our mobile devices negotiating the block chain at all? I'd be willing to pay .1 a year to subscribe (or 0.001 per inquiry) to a secured 'server', not as a bank, just as a block chain repository that I may query (and inject transactional sends). Perhaps I'd subscribe to multiple.

All I would want my mobile device doing is requesting the status/confirmations/balance of a small set of addresses (only when I open my applet, make a transaction, or explicitly ask for any new receives) and let me send. Nothing more.

Greenlandic tupilak. Hand carved, traditional cursed bone figures. Sorry, polar bear, walrus and human remains not available for export.
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526


View Profile
July 01, 2011, 12:49:16 PM
 #26

Yes, if you're OK with relying on a third party server you might prefer the WebCoin approach.

Managing the block chain on a phone isn't such a big deal, really. Once all the relevant optimizations are done it can be quite efficient. It has the advantage that you can choose your level of privacy and independence, but the disadvantage of being more complex and heavier. With the server approach that organization always knows your balance and which transactions are yours.
netrin
Sr. Member
****
Offline Offline

Activity: 322


FirstBits: 168Bc


View Profile
July 01, 2011, 08:00:15 PM
 #27

With the server approach that organization always knows your balance and which transactions are yours.

No, I want my private keys. Sure, one of the servers could know my "sends" but not necessarily my "receives" and I could use multiple servers. And I would like to see onion wrapping like TOR or nym/cipherpunk remailing.

Greenlandic tupilak. Hand carved, traditional cursed bone figures. Sorry, polar bear, walrus and human remains not available for export.
MoonShadow
Legendary
*
Offline Offline

Activity: 1666



View Profile
July 01, 2011, 08:17:10 PM
 #28

With the server approach that organization always knows your balance and which transactions are yours.

No, I want my private keys. Sure, one of the servers could know my "sends" but not necessarily my "receives" and I could use multiple servers. And I would like to see onion wrapping like TOR or nym/cipherpunk remailing.

I'm pretty sure that there is an effort to develop a two part wallet for this kind of scenario, wherein the marginally trusted server has a copy of your public keys, but not your private keys, and produces the entire transaction before sending it to your device to be signed and sent back.  This could be onion wrapped by setting up the server as a hidden service, and using orbot on android to handle the proxy connection.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
netrin
Sr. Member
****
Offline Offline

Activity: 322


FirstBits: 168Bc


View Profile
July 02, 2011, 02:22:03 AM
 #29

I'm pretty sure that there is an effort to develop a two part wallet for this kind of scenario, wherein the marginally trusted server has a copy of your public keys, but not your private keys, and produces the entire transaction before sending it to your device to be signed and sent back.  This could be onion wrapped by setting up the server as a hidden service, and using orbot on android to handle the proxy connection.

I don't believe it has to be so complicated and certainly not stateful. I only need a server (or a decoupling locally) to actively keep the up to date with respect to the block chain, should i wish not to store the block chain locally.

I know my addresses. If I want to know my balance I can query the server for the balance of each address (I can do this today with blockexplorer.com without it knowing anything about me). If I want to send, I just sign the transaction locally and send it to the network (either to my server or to other nodes).

I must trust the server not to lie to me about the block chain. We already trust dozens of bitcoin services and their 'notion' of the longest block chain.

Incidentally, exact what I'm talking about has already been proposed to decouple the backend from the UI. I just want to move the backend to a remote location.

Greenlandic tupilak. Hand carved, traditional cursed bone figures. Sorry, polar bear, walrus and human remains not available for export.
MoonShadow
Legendary
*
Offline Offline

Activity: 1666



View Profile
July 02, 2011, 02:52:56 AM
 #30


Incidentally, exact what I'm talking about has already been proposed to decouple the backend from the UI. I just want to move the backend to a remote location.

Yes, I was describing an alternative solution.  A full client could still run on android, if the blockchain was kept on a fault tolerant network shared drive of some sort, and only a local copy of the locally important blocks were held on disk.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
netrin
Sr. Member
****
Offline Offline

Activity: 322


FirstBits: 168Bc


View Profile
July 02, 2011, 03:16:31 AM
 #31

Incidentally, exact what I'm talking about has already been proposed to decouple the backend from the UI. I just want to move the backend to a remote location.
Yes, I was describing an alternative solution.  A full client could still run on android, if the blockchain was kept on a fault tolerant network shared drive of some sort, and only a local copy of the locally important blocks were held on disk.

As Mike Hearn mentioned earlier, Webcoin does share the db/client decoupling goals. So, I look forward to hearing more as you tackle the merkel tree pruning challenge that Satoshi wrote about (pg4). What kind of bandwidth does basic p2p network/node negotiation require? I have the impression (from my own passive monitoring) that it's not trivial.


Greenlandic tupilak. Hand carved, traditional cursed bone figures. Sorry, polar bear, walrus and human remains not available for export.
willphase
Hero Member
*****
Offline Offline

Activity: 770


View Profile
July 03, 2011, 10:41:07 PM
 #32

Yes, I was describing an alternative solution.  A full client could still run on android, if the blockchain was kept on a fault tolerant network shared drive of some sort, and only a local copy of the locally important blocks were held on disk.

I decided to take the approach of just storing the public address hashes, and using blockexplorer as the central repository of transactions - it's not a full wallet implementation, but my android application allows you to use your public addresses to view the balance/transactions in your wallet from your android phone.

Link to the thread here. (shameless plug)

Since it doesn't need the block chain, and instead uses blockexplorer, it can update a full wallet balance in very few HTTP requests (depending on the number of keys/transactions), using far less bandwidth/time than a full block chain download, and only needing to store public key hashes on the device.

Will

zellfaze
Full Member
***
Offline Offline

Activity: 142


Security Enthusiast


View Profile WWW
July 05, 2011, 07:55:53 PM
 #33

Not to be too entirely off topic...

But I just finished downloading and testing this app with a few testnet coins.  Really wonderful interface.  I'm sure the details of the implementation have some work that needs done (at least that is the impression I get here), but as far as interfaces go, I think this app does a wonderful job of making Bitcoin easy to use on the Android.

A+, CCENT, CCNA
Security Enthusiast
PHP Coder

Not that I expect anyone to, but should you like my post, please donate:
Donate: 1BRbfqii6Sm9tEUE8A16H7QeDmYFjyBZ7V
Andreas Schildbach
Moderator
Hero Member
*
Offline Offline

Activity: 563



View Profile WWW
July 06, 2011, 10:00:19 PM
 #34

I have released an updated version of the Bitcoin Wallet for Android:

http://market.android.com/details?id=de.schildbach.wallet

Bitcoin Wallet is a fully standalone wallet!

It has now got a list of transactions, and the ability to request bitcoins from a potential sender.

Cheers,

Andreas

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

Activity: 713


Fight fire with photos.


View Profile WWW
July 09, 2011, 03:34:10 PM
 #35

I installed this on my LG Optimus, but it seems like downloading the blockchain is taking forever. Currently, it looks like it has about 16mb of it. I noticed some people were going in a short time, but mine has been downloading for the past day or two.

EDIT: I've sent .02 BTC to the address it gives me with no success. I sent .01 from my Bitcoin client and .01 from the Mt. Gox Live Trader. Neither one has shown up on my phone. The blockchain file is at 16.44 mb right now, is it supposed to be bigger?

Gun accessories - www.shamblindistribution.com

My list of sites giving away btc - http://davidshamblin.com/bitcoin/free-bitcoins/
pdki
Newbie
*
Offline Offline

Activity: 27


View Profile
July 10, 2011, 04:53:21 PM
 #36

Looks good! Does it store the blockchain in internal memory? Is it possible to push it to the sdcard for memory constrained devices?
error
Hero Member
*****
Offline Offline

Activity: 574



View Profile
July 10, 2011, 07:04:20 PM
 #37

Looks good! Does it store the blockchain in internal memory? Is it possible to push it to the sdcard for memory constrained devices?

The block chain should already be on the SD card.

15UFyv6kfWgq83Pp3yhXPr8rknv9m6581W
pdki
Newbie
*
Offline Offline

Activity: 27


View Profile
July 10, 2011, 08:38:17 PM
 #38

It always shows downloading block chain: 0% Do you know what might be wrong?
pdki
Newbie
*
Offline Offline

Activity: 27


View Profile
July 13, 2011, 10:42:38 AM
 #39

The blockchain download problem is now gone after a reinstall. I was able to receive 0.001BTC. I sent 0.001BTC back to my PC wallet 16h ago (1NCTneo6yy8b1bok7F2U7RP4VgciHY2sik) but the transaction does not show up, not even unconfirmed, both client have been runnning constantly. Did anybody manage to sent money from the Android client? What is the clients policy for resending unconfirmed transactions?
kwukduck
Legendary
*
Offline Offline

Activity: 1564


View Profile
July 13, 2011, 12:28:45 PM
 #40

Looking really good. Althoug i'm not too happy with the bottom warning "You *will* lose your bitcoins associated with this wallet".
That makes it pretty useless imho...
Why would anyone use a wallet when i know it's gonna be lost soon...?

I think it's one of the first things you should consider when developing this, make sure the basics work and are safe.

14b8PdeWLqK3yi3PrNHMmCvSmvDEKEBh3E
Pages: « 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 »
  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!