@Goals:#18 - android wallet

Just bumping this because I think it’s great there is interest in developing a mobile PPC wallet. I know I’d be willing to pay a couple bucks in a heartbeat for it.

Once our system is released it will fully be supported on iPhone, Android, Windows Phone and Blackberry.

Users will be able to login and have access to their wallets / send / receive commands, and much more :slight_smile:

We look forward to getting it out for everybody to use soon.

Thanks,

Ryan

AuraWallet.com

Just read that Litecoin also have their Android wallet. https://play.google.com/store/apps/details?id=de.schildbach.wallet_ltc

@Ryan, @kactech, any progress updates on the Peercoin Mobile/ Android wallet?

Bit of a late reply, but I had the same issue and a possible interim solution. I found using an app like Splashtop Remote very useful. I’m using it on my tablet, but if you have a larger phone (5"+) I bet it would also be acceptable pending native solutions.

For super thin client.

I hear mycelium uses data from blockchain.info for tx and balance. If we have the similar API on a PPCoin block explorer we can just make some adapters to it. Not sure of how to compose and send though, we might have to steal some parts of code from bitcoinj, (which should be compatible with peer coin?)

[quote=“romerun, post:13, topic:1242”]For super thin client.

I hear mycelium uses data from blockchain.info for tx and balance. If we have the similar API on a PPCoin block explorer we can just make some adapters to it. Not sure of how to compose and send though, we might have to steal some parts of code from bitcoinj, (which should be compatible with peer coin?)[/quote]

well I use the mycelium android wallet and forked the repo here ready to port to Peercoin https://github.com/FuzzyBearBTC/android-peercoinwallet

people can donate to support development directly on this repo using peer4commit here http://peer4commit.com/projects/10

Fuzzybear

[quote=“FuzzyBear, post:14, topic:1242”][quote=“romerun, post:13, topic:1242”]For super thin client.

I hear mycelium uses data from blockchain.info for tx and balance. If we have the similar API on a PPCoin block explorer we can just make some adapters to it. Not sure of how to compose and send though, we might have to steal some parts of code from bitcoinj, (which should be compatible with peer coin?)[/quote]

well I use the mycelium android wallet and forked the repo here ready to port to Peercoin https://github.com/FuzzyBearBTC/android-peercoinwallet

people can donate to support development directly on this repo using peer4commit here http://peer4commit.com/projects/10

Fuzzybear[/quote]

Excellent job! I just introduce the peer4commit.com on my weibo: http://weibo.com/3552119670/AA1zdfdjR

FuzzyBear, could you create a myceleum fork for Primecoin on GitHub? That would be awesome for development.

I have made a branch for the Primecoin development GitHub - FuzzyBearBTC/android-peercoinwallet at primecoin

please read this though before starting any development on the primecoin mycilium wallet Development plans and path to take after speaking with original mycilium developer. (Previously called: Suggestion) · Issue #13 · FuzzyBearBTC/android-peercoinwallet · GitHub

Fuzzybear

Hi,

I would be interested in creating BitcoinJ fork for PeerCoin.

Could you please clarify few points, please?

Do you think is it possible to create?

Will it be still SPV client without need of gigabytes of data?

Will be possible to have Proof of Stake supported?

If not will it be possible to use at least as SPV client for sending and receiving?

Thanks for clarification.

Regards

[quote=“kac-, post:1, topic:1242”]I want to clarify one part of point 18 of Goals thread http://www.peercointalk.org/index.php?topic=1093.0

Bitcoin wallets for Android are based on BitcoinJ library. There is no simple way to port this library to Peercoin.
BitcoinJ is using Simplified Payment Verification(SPV https://en.bitcoin.it/wiki/Scalability#Simplified_payment_verification), in two words: thin node needs only block headers and merkle tree branch to verify transaction. With Peercoin, for each PoS block, it would also need coinstake, hash of block with coinstake, transactions(with merkle branch) for each coinstake input. It is doable but practically it won’t be SPV anymore.
What we can do with BitcoinJ is to make full Peercoin Java(Android compatible I hope) client. Steps:

  1. Modify network parameters(done)
  2. Implement coinstake verification
  3. Modify H2FullPrunedBlockStore
  4. Implement coinstake generation
    If there would be enough interest, and at least one more Java coder here, we could try to port it.

Porting to Primecoin should be much easier(POW verification partially done)

BitcoinJ, btw great library, without almost any modifications can be used in Peercoin projects to:

  • manage keys
  • receive blocks/transactions from network
  • create and broadcast transactions(also with advanced scripting)
    By joining it with RPC client it can be solid base for advanced projects. If anyone is interested in using it that way- please post here or PM.

Cheers![/quote]

@nov Hi

Do you think is it possible to create?
It's possible to create SPV client for Peercoin but it would be more complex and less secure than SPV with BTC( if written by me).
Will it be still SPV client without need of gigabytes of data?
So far there is no problem with an excess of data PPC on network. However, the faster tx index would be nice.
Will be possible to have Proof of Stake supported?
Yes.
If not will it be possible to use at least as SPV client for sending and receiving?
You can use BitcoinJ for listening (blocks/txs) and sending.

Just to note, it’s my private opinion rather than careful analysis, I don’t exclude anything, please do your own research.
Due to the nature of Peercoin network there isn’t much pressure for SPV implementation IMO.
I’ll push onto the github some BitcoinJ modifications for PPC, probably tomorrow. (yeah, only few modifs, stuck from months)

P.

With watch-only wallet/addresses feature in PPC full client it would be quite easy to create mycelium-like client(more precisely- server implementation) but with private and cheap VPS server side: faster and more secure than any SPV + contribution to the network.

GitHub - kac-/peercoinj at early-stage , I’ll post example usage later

Hi Kac,

I am testing your peercoinj library.

It looks like that new addresses are generated properly.

But there seems to be some issue to connecting to peercoin network.

It does not start synchronisation of SPV chain.

It throws this exception.

3:03:00.049 [NioClientManager] WARN c.g.bitcoin.core.PeerSocketHandler - [76.74.177.224]:9901 -
java.lang.IllegalArgumentException: null
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:111) ~[guava-16.0.1.jar:na]
at com.google.bitcoin.core.AbstractBlockChain$OrphanBlock.(AbstractBlockChain.java:116) ~[classes/:na]
at com.google.bitcoin.core.AbstractBlockChain.add(AbstractBlockChain.java:392) ~[classes/:na]
at com.google.bitcoin.core.AbstractBlockChain.add(AbstractBlockChain.java:252) ~[classes/:na]
at com.google.bitcoin.core.Peer.processHeaders(Peer.java:481) ~[classes/:na]
at com.google.bitcoin.core.Peer.processMessage(Peer.java:323) ~[classes/:na]
at com.google.bitcoin.core.PeerSocketHandler.receiveBytes(PeerSocketHandler.java:139) ~[classes/:na]
at com.google.bitcoin.net.ConnectionHandler.handleKey(ConnectionHandler.java:216) [classes/:na]
at com.google.bitcoin.net.NioClientManager.handleKey(NioClientManager.java:74) [classes/:na]
at com.google.bitcoin.net.NioClientManager.run(NioClientManager.java:110) [classes/:na]
at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:60) [guava-16.0.1.jar:na]
at com.google.common.util.concurrent.Callables$3.run(Callables.java:93) [guava-16.0.1.jar:na]
at java.lang.Thread.run(Thread.java:695) [na:1.6.0_65]
13:03:00.049 [NioClientManager] INFO com.google.bitcoin.core.PeerGroup - [76.74.177.224]:9901: Peer died
13:03:00.050 [NioClientManager] INFO com.google.bitcoin.core.PeerGroup - Download peer died. Picking a new one.

Regards

[quote=“kac-, post:19, topic:1242”]@nov Hi

Do you think is it possible to create?
It's possible to create SPV client for Peercoin but it would be more complex and less secure than SPV with BTC( if written by me).
Will it be still SPV client without need of gigabytes of data?
So far there is no problem with an excess of data PPC on network. However, the faster tx index would be nice.
Will be possible to have Proof of Stake supported?
Yes.
If not will it be possible to use at least as SPV client for sending and receiving?
You can use BitcoinJ for listening (blocks/txs) and sending.

Just to note, it’s my private opinion rather than careful analysis, I don’t exclude anything, please do your own research.
Due to the nature of Peercoin network there isn’t much pressure for SPV implementation IMO.
I’ll push onto the github some BitcoinJ modifications for PPC, probably tomorrow. (yeah, only few modifs, stuck from months)

P.

With watch-only wallet/addresses feature in PPC full client it would be quite easy to create mycelium-like client(more precisely- server implementation) but with private and cheap VPS server side: faster and more secure than any SPV + contribution to the network.

GitHub - kac-/peercoinj at early-stage , I’ll post example usage later[/quote]

@nov
As noted earlier SPV syncing is pointless - PPC needs full tx index, possibly pruned.
To play with nodes you have to create custom handlers, I’ll check my playground and give you examples.

I still do not understand much. Is there any advantage to use peercoinJ instead of full peercoind client in that case?

[quote=“kac-, post:21, topic:1242”]@nov
As noted earlier SPV syncing is pointless - PPC needs full tx index, possibly pruned.
To play with nodes you have to create custom handlers, I’ll check my playground and give you examples.[/quote]

You ask abt Android Native SDK? I don’t have exp with it but it would be fun to have such port. Any thoughts?
BitcoinJ is mature and well written library, currently I want to use it[keystore, transaction creation/signing] for mobile wallet with Peercoin/Unity client as back-end server[vps or R-pi] (please see & comment Cryptoblog - notícias sobre bitcoin e criptomoedas!). I choose it instead of full java implementation because it’s easier to get it working( and secure), especially with low count of java coders here (yet).

Promised examples: Commits · kac-/peercoinj · GitHub

I do not understand exactly this

“As noted earlier SPV syncing is pointless - PPC needs full tx index, possibly pruned.”

That it is why I ask whether peercoinJ will speed up synchronisation and if it would allow to avoid of need of whole block chain huge file?

You ask abt Android Native SDK? I don’t have exp with it but it would be fun to have such port. Any thoughts?
BitcoinJ is mature and well written library, currently I want to use it[keystore, transaction creation/signing] for mobile wallet with Peercoin/Unity client as back-end server[vps or R-pi] (please see & comment Cryptoblog - notícias sobre bitcoin e criptomoedas!). I choose it instead of full java implementation because it’s easier to get it working( and secure), especially with low count of java coders here (yet).

Promised examples: https://github.com/kac-/peercoinj/commits/early-stage-playground[/quote]

It could speed up synchronization but relying only on block headers and merkle branches with POS would be worse than verifying txs with some blockchain explorer. Peercoin isn’t SPV friendly.

So what is your suggestion how to solve this situation?

So how to connect peercoinJ to some blockchain explorer?

Blockr.io and bkchain.org have API suitable for simple wallet implementation http://ppc.blockr.io/documentation/api
You can use ‘Wallet’ class as a store for keys and wallet transactions, explorer to query address state, latest transactions and push new transactions to the network.