Pages:
Author

Topic: [307.79 LTC + 0.063 BTC Awarded] Litecoin wallet for Android - page 2. (Read 8540 times)

sr. member
Activity: 263
Merit: 250
msm595, what will the litecoinj maintenance plan be?

TD mentioned that he's open to code changes in bitcoinj that would make it easier to maintain a fork.  Perhaps you folks could work out a way to parameterize most of what is needed for litecoinj into a tiny subclass?

what is the github address for litecoinj?
I'm not quite sure what the plan will be. Given I'm a student, I'm mainly free on weekends. The easiest change in bitcoinj would probably be the one that allows bitcoinj to offer multiple coins: making NetworkParameters abstract and giving litecoin and bitcoin a class off of that. That's the main change anyway, blocks would need to check if they should be hashed with scrypt or sha256, but that is a matter of a simple method call.

Litecoinj isn't on github (though in hindsight, it probably should be / it may be moved there). Currently it is located at https://code.google.com/p/litecoinj/.

Ah, I see bitcoinj is at code.google.com too. It's fine to be hosted there if it's easier for you.

Great work to you and ralree.
full member
Activity: 185
Merit: 100
msm595, what will the litecoinj maintenance plan be?

TD mentioned that he's open to code changes in bitcoinj that would make it easier to maintain a fork.  Perhaps you folks could work out a way to parameterize most of what is needed for litecoinj into a tiny subclass?

what is the github address for litecoinj?
I'm not quite sure what the plan will be. Given I'm a student, I'm mainly free on weekends. The easiest change in bitcoinj would probably be the one that allows bitcoinj to offer multiple coins: making NetworkParameters abstract and giving litecoin and bitcoin a class off of that. That's the main change anyway, blocks would need to check if they should be hashed with scrypt or sha256, but that is a matter of a simple method call.

Litecoinj isn't on github (though in hindsight, it probably should be / it may be moved there). Currently it is located at https://code.google.com/p/litecoinj/.
sr. member
Activity: 263
Merit: 250
msm595, what will the litecoinj maintenance plan be?

TD mentioned that he's open to code changes in bitcoinj that would make it easier to maintain a fork.  Perhaps you folks could work out a way to parameterize most of what is needed for litecoinj into a tiny subclass?

what is the github address for litecoinj?
hero member
Activity: 518
Merit: 500
Manateeeeeeees
Cheers!  Glad I could be of help.  With the massive value increase of Litecoin, it's pretty exciting to have another way to transmit and store it.
legendary
Activity: 1441
Merit: 1000
Live and enjoy experiments
Download to my android , its. ... hot  Wink
it turned out I had my wifi off,  now it's all in sync and feel really cool  Cool
legendary
Activity: 1441
Merit: 1000
Live and enjoy experiments
Download to my android , its. ... hot  Wink
hero member
Activity: 518
Merit: 500
Manateeeeeeees
Awesome. I was not able to see or verify if/where checkpoints are acknowledged in SPVBlockChain, even though this is mentioned in CheckpointManager.java: "Checkpoints are used by a {@link BlockChain} to initialize fresh {@link com.google.bitcoin.store.SPVBlockStore}s".

If you figure that out, let me know what I have to do to implement it.  The blockchain fully synced and the app is working great for me now.
hero member
Activity: 518
Merit: 500
Manateeeeeeees
Well I've had a chance to test this wallet out and was able to receive and send funds out again.

I am ready to award the bounty so need an LTC and BTC address for both ralree and msm595 as I will split it evenly between you two.

LerikguvK4nTvhk5XUp8ofg2JgLqAGnBV3
1MANaTeEZoH4YkgMYz61E5y4s9BYhAuUjG

Thanks for putting this together!
full member
Activity: 185
Merit: 100
The BuildCheckpoints tool from bitcoinj-tools does exactly that, although the threshold is based on time (currently one month).

There is no benefit in opting out of checkpointing - you already trust the app to do the right thing. If anything, a couple of developers should audit the checkpoints file that goes live with a release.


Awesome. I was not able to see or verify if/where checkpoints are acknowledged in SPVBlockChain, even though this is mentioned in CheckpointManager.java: "Checkpoints are used by a {@link BlockChain} to initialize fresh {@link com.google.bitcoin.store.SPVBlockStore}s".

Well I've had a chance to test this wallet out and was able to receive and send funds out again.

I am ready to award the bounty so need an LTC and BTC address for both ralree and msm595 as I will split it evenly between you two.
LTC: LQz2pJYaeqntA9BFB8rDX5AL2TTKGd5AuN
BTC: 1LSbhxShMmymNQ1Li5qd7pYUgrMUcVTokc
Thanks Smiley
legendary
Activity: 1102
Merit: 1014
Well I've had a chance to test this wallet out and was able to receive and send funds out again.

I am ready to award the bounty so need an LTC and BTC address for both ralree and msm595 as I will split it evenly between you two.
hero member
Activity: 483
Merit: 501
Maybe it would be acceptable to users to allow faster blockchain syncing by downloading a signed (with my developer key) base block to start with, let's just say block 320,000.  That way, if I understand correctly, they could start from there and verify everything after it, still strengthening the network once they catch up.  The signed data could be distributed embedded in the app (which is also signed).  This feature could be defaulted to OFF to allow the user to elect this behavior.  Thoughts?

Checkpointing is a decent idea to help with initial sync speed. For maximum safety, the checkpoint should be based on a block that is a few hundred blocks behind the current block.

The BuildCheckpoints tool from bitcoinj-tools does exactly that, although the threshold is based on time (currently one month).

There is no benefit in opting out of checkpointing - you already trust the app to do the right thing. If anything, a couple of developers should audit the checkpoints file that goes live with a release.
hero member
Activity: 518
Merit: 500
Manateeeeeeees
Skipping scrypt up to the last checkpoint seems entirely reasonable as you are already relying upon the client to be trustworthy?

Maybe it would be acceptable to users to allow faster blockchain syncing by downloading a signed (with my developer key) base block to start with, let's just say block 320,000.  That way, if I understand correctly, they could start from there and verify everything after it, still strengthening the network once they catch up.  The signed data could be distributed embedded in the app (which is also signed).  This feature could be defaulted to OFF to allow the user to elect this behavior.  Thoughts?

The trouble is off-by-default means the majority of users won't use it.  Off-by-default also means many users who try the app too easily give up because first sync is too slow, then proceed to leave an unwarranted nasty rating.  Also see Goonie's note that is important to this issue..

Quote from: Goonie
ad 4: Protocol version 70001 (Bitcoind/bitcoin-qt 0.8.x) contains a very important enhancement for SPV clients called Bloom Filters. It saves a huge amount of traffic, RAM and CPU cycles. Without these optimizations, mobile clients simply can't scale.

This SPV wallet will be a whole lot faster and more network efficient in syncing only after Litecoin upgrades to 0.8.  The team plans on making this a reality a few months from now.  There will be a separate fundraising effort for Litecoin-0.8.

Good point about off-by-default - I could have a first-time-use popup that asks "Would you like to use a checkpoint to speed up blockchain sync or verify the entire blockchain?"  Bloom filter optimization would be awesome, so I'm looking forward to that.  This app is just a simple first step that will get people using litecoins day to day, which I think was the entire point (or at least it was for me).  I'll look into implementing checkpointing soon.
legendary
Activity: 1102
Merit: 1014
Maybe it would be acceptable to users to allow faster blockchain syncing by downloading a signed (with my developer key) base block to start with, let's just say block 320,000.  That way, if I understand correctly, they could start from there and verify everything after it, still strengthening the network once they catch up.  The signed data could be distributed embedded in the app (which is also signed).  This feature could be defaulted to OFF to allow the user to elect this behavior.  Thoughts?

Checkpointing is a decent idea to help with initial sync speed. For maximum safety, the checkpoint should be based on a block that is a few hundred blocks behind the current block.
sr. member
Activity: 263
Merit: 250
Skipping scrypt up to the last checkpoint seems entirely reasonable as you are already relying upon the client to be trustworthy?

Maybe it would be acceptable to users to allow faster blockchain syncing by downloading a signed (with my developer key) base block to start with, let's just say block 320,000.  That way, if I understand correctly, they could start from there and verify everything after it, still strengthening the network once they catch up.  The signed data could be distributed embedded in the app (which is also signed).  This feature could be defaulted to OFF to allow the user to elect this behavior.  Thoughts?

The trouble is off-by-default means the majority of users won't use it.  Off-by-default also means many users who try the app too easily give up because first sync is too slow, then proceed to leave an unwarranted nasty rating.  Also see Goonie's note that is important to this issue..

Quote from: Goonie
ad 4: Protocol version 70001 (Bitcoind/bitcoin-qt 0.8.x) contains a very important enhancement for SPV clients called Bloom Filters. It saves a huge amount of traffic, RAM and CPU cycles. Without these optimizations, mobile clients simply can't scale.

This SPV wallet will be a whole lot faster and more network efficient in syncing only after Litecoin upgrades to 0.8.  The team plans on making this a reality a few months from now.  There will be a separate fundraising effort for Litecoin-0.8.
hero member
Activity: 518
Merit: 500
Manateeeeeeees
Got some reports of battery drain.... My copy isn't synching properly either.  http://www.reddit.com/r/litecoin/comments/1bfac2/android_wallet_for_ltc_so_that_you_might_buysell/

Syncing is definitely an issue - it takes a REALLY long time and heats up the phone (performing scrypt constantly is probably a great way to drain your battery!).  Solutions to this problem are welcome, and should probably be directed at litecoinj instead of the app.

msm595: Is there any way we can speed this up?
I've noticed the same problem, but unfortunately I don't see a way that could dramatically speed it up without skipping the scrypt (and therefore skipping the check to see if the block has valid proof of work). We could assume that every block has a valid proof of work up to a certain recent checkpoint, but I don't know what the fully ramifications of that could be. There is a checkpoint mechanism in place for SPVBlockStore, let me play around.

Skipping scrypt up to the last checkpoint seems entirely reasonable as you are already relying upon the client to be trustworthy?

Maybe it would be acceptable to users to allow faster blockchain syncing by downloading a signed (with my developer key) base block to start with, let's just say block 320,000.  That way, if I understand correctly, they could start from there and verify everything after it, still strengthening the network once they catch up.  The signed data could be distributed embedded in the app (which is also signed).  This feature could be defaulted to OFF to allow the user to elect this behavior.  Thoughts?
sr. member
Activity: 263
Merit: 250
Got some reports of battery drain.... My copy isn't synching properly either.  http://www.reddit.com/r/litecoin/comments/1bfac2/android_wallet_for_ltc_so_that_you_might_buysell/

Syncing is definitely an issue - it takes a REALLY long time and heats up the phone (performing scrypt constantly is probably a great way to drain your battery!).  Solutions to this problem are welcome, and should probably be directed at litecoinj instead of the app.

msm595: Is there any way we can speed this up?
I've noticed the same problem, but unfortunately I don't see a way that could dramatically speed it up without skipping the scrypt (and therefore skipping the check to see if the block has valid proof of work). We could assume that every block has a valid proof of work up to a certain recent checkpoint, but I don't know what the fully ramifications of that could be. There is a checkpoint mechanism in place for SPVBlockStore, let me play around.

Skipping scrypt up to the last checkpoint seems entirely reasonable as you are already relying upon the client to be trustworthy?
full member
Activity: 185
Merit: 100
Got some reports of battery drain.... My copy isn't synching properly either.  http://www.reddit.com/r/litecoin/comments/1bfac2/android_wallet_for_ltc_so_that_you_might_buysell/

Syncing is definitely an issue - it takes a REALLY long time and heats up the phone (performing scrypt constantly is probably a great way to drain your battery!).  Solutions to this problem are welcome, and should probably be directed at litecoinj instead of the app.

msm595: Is there any way we can speed this up?
I've noticed the same problem, but unfortunately I don't see a way that could dramatically speed it up without skipping the scrypt (and therefore skipping the check to see if the block has valid proof of work). We could assume that every block has a valid proof of work up to a certain recent checkpoint, but I don't know what the fully ramifications of that could be. There is a checkpoint mechanism in place for SPVBlockStore, let me play around.
hero member
Activity: 518
Merit: 500
Manateeeeeeees
If everyone having trouble would file bugs here, I'd appreciate it:

https://github.com/hank/litecoin-wallet/issues

I added the ones I know about.

Thanks!

Also, I just changed the email in the Constants.java file to my own, and uploaded the APK to play, so in a while 1.02 will be available.  Please upgrade.
Pages:
Jump to: