Very nice work, the blockchain is a bit complex to handle, and this project allows for a lot simpler clients, however I have found a few show stoppers.
1) You can only ever use the determistic addresses, there is no way to add a private key, from a coin or otherwise ?
The BCCAPi is split into the bare API defined in
BitcoinClientAPI.java, which is implemented
here and a bunch of optional helper classes on top. If you want to add any public key you can either use the API directly, or you can implement your own ECKeyManager which does not use deterministic keys (This is probably what I would do).
However, there is a catch... read below
2) Is there any plans to make a API call that will be able to list the balance and transactions of a public address, that you do not have in the wallet, and dont have the private key for ?
If 2) is added, this could be used as a backend for webshops to check their balance and verify payments, without having to keep the block chain them selves.
I Agree. But... The server side assumes that the public keys added are new in the sense that no coins have been sent to them yet. This allows the server to only scan for new transactions. Otherwise the server would have to either rescan the entire block chain as you can do with the Satoshi client (expensive long running operation) or manage a database that is optimized for determining the public key -> Transaction relation in real-time, which would require a much more powerful server, more memory, IOps etc.
(Maybe asked before) Do you log which IP accesses which accounts ?
One of the cool things about bitcoin, as I see it, is that by downloading the blockchain, noone knows which address you are interested in, and therefore your payment gateway can reside somewhere else than the sensitive equipment.
Agreed. Using the BCCAPI you reveal your (IP address, public key) relation to the server. The goal with the BCCAPi is to make really light weight clients, and I don't see a solution where you can have as light weight a client, without revealing the relation of your public keys. You can however hide your IP address using proxies or something like Tor.
To answer your IP address question: I do not log any IP addresses.
The worst thing I can do is reveal public-key/IP relations and lie about your balance. If I ever did that people would quickly move their funds elsewhere. I can never run away with your coins. For a small change wallet like
BitcoinSpinner I think this is a perfect.