Bitcoin Forum
September 02, 2024, 07:20:20 PM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 [4] 5 »  All
  Print  
Author Topic: [BOUNTY] fix mobile WLCj wallet for android  (Read 7361 times)
rik8119 (OP)
Full Member
***
Offline Offline

Activity: 217
Merit: 100

CEO WINC e. V.


View Profile
August 21, 2015, 09:54:12 PM
 #61

I uploaded all changes on github -namecoinj. Is there a way to get the android build up to date on my s3 mini without rooting?
Install the apk. How have you been testing it?

I just run it on my phone but the wallet stops syncing somewhere. At first it crashes at block 10k then it loads some more until it stops completely at some block (11964). Always producing ouOfMemoryError s. I will test installing the apk tomorrow see you then...
It is possible that your phone simply doesn't have enough RAM and thus can't run the app.

Of course but the namecoin-wallet installes correctly..

Demurrage - the easiest way to a human society.
hexafraction
Sr. Member
****
Offline Offline

Activity: 392
Merit: 268

Tips welcomed: 1CF4GhXX1RhCaGzWztgE1YZZUcSpoqTbsJ


View Profile
August 21, 2015, 10:21:16 PM
 #62

Could you try uninstalling the app completely and then reinstalling it? (It's possible you were just installing the new test versions as upgrades over the current app, meaning data isn't cleared).

10K is a spot where the wallet would write back some data to storage.

I have recently become active again after a long period of inactivity. Cryptographic proof that my account has not been compromised is available.
rik8119 (OP)
Full Member
***
Offline Offline

Activity: 217
Merit: 100

CEO WINC e. V.


View Profile
August 22, 2015, 02:06:38 AM
 #63

Could you try uninstalling the app completely and then reinstalling it? (It's possible you were just installing the new test versions as upgrades over the current app, meaning data isn't cleared).

10K is a spot where the wallet would write back some data to storage.

Did it, still crashing.. is there more data that needsto be deleted?

Demurrage - the easiest way to a human society.
hexafraction
Sr. Member
****
Offline Offline

Activity: 392
Merit: 268

Tips welcomed: 1CF4GhXX1RhCaGzWztgE1YZZUcSpoqTbsJ


View Profile
August 22, 2015, 12:22:53 PM
 #64

Could you try uninstalling the app completely and then reinstalling it? (It's possible you were just installing the new test versions as upgrades over the current app, meaning data isn't cleared).

10K is a spot where the wallet would write back some data to storage.

Did it, still crashing.. is there more data that needsto be deleted?

Yes, the application's whole data directory. If you pull up app info on it there should be options to clear cache and clear data.

I have recently become active again after a long period of inactivity. Cryptographic proof that my account has not been compromised is available.
rik8119 (OP)
Full Member
***
Offline Offline

Activity: 217
Merit: 100

CEO WINC e. V.


View Profile
August 23, 2015, 02:52:55 PM
 #65

Could you try uninstalling the app completely and then reinstalling it? (It's possible you were just installing the new test versions as upgrades over the current app, meaning data isn't cleared).

10K is a spot where the wallet would write back some data to storage.

Did it, still crashing.. is there more data that needsto be deleted?

Yes, the application's whole data directory. If you pull up app info on it there should be options to clear cache and clear data.

Hi i tried to install the apk on a friends s3 mini than never saw a wallet before and i got the same error so a clean install is not enough -pointing to a memory issue..

Code:
java.lang.outOfMemoryError
BitcoinSerializer.java
deserializePayload

Demurrage - the easiest way to a human society.
hexafraction
Sr. Member
****
Offline Offline

Activity: 392
Merit: 268

Tips welcomed: 1CF4GhXX1RhCaGzWztgE1YZZUcSpoqTbsJ


View Profile
August 23, 2015, 03:05:35 PM
 #66

That's funny. Could you try knightdk's APK?

I'm still trying to figure out the android builder. Maven is having trouble resolving perfectly OK artifacts, even after clearing my repository cache.

I have recently become active again after a long period of inactivity. Cryptographic proof that my account has not been compromised is available.
rik8119 (OP)
Full Member
***
Offline Offline

Activity: 217
Merit: 100

CEO WINC e. V.


View Profile
August 23, 2015, 08:12:30 PM
 #67

That's funny. Could you try knightdk's APK?

I'm still trying to figure out the android builder. Maven is having trouble resolving perfectly OK artifacts, even after clearing my repository cache.

Hi i can not see the apk, where did he put it?

Demurrage - the easiest way to a human society.
achow101
Staff
Legendary
*
Offline Offline

Activity: 3486
Merit: 6824


Just writing some code


View Profile WWW
August 23, 2015, 08:13:57 PM
 #68

That's funny. Could you try knightdk's APK?

I'm still trying to figure out the android builder. Maven is having trouble resolving perfectly OK artifacts, even after clearing my repository cache.

Hi i can not see the apk, where did he put it?
I just used the apk on your website and that worked fine for me. I am currently building my own version and testing that.

achow101
Staff
Legendary
*
Offline Offline

Activity: 3486
Merit: 6824


Just writing some code


View Profile WWW
August 23, 2015, 09:33:36 PM
 #69

I'm trying to build it but it doesn't work. I tried using maven and through android studio but neither seems to build it. How did you build the app that is on the website?

hexafraction
Sr. Member
****
Offline Offline

Activity: 392
Merit: 268

Tips welcomed: 1CF4GhXX1RhCaGzWztgE1YZZUcSpoqTbsJ


View Profile
August 23, 2015, 09:40:56 PM
 #70

I'm trying to build it but it doesn't work. I tried using maven and through android studio but neither seems to build it. How did you build the app that is on the website?

I'm also having trouble building on my end. The android project structure is reported as non-standard, which I can override, but there are many package name mismatches and other errors.

I have recently become active again after a long period of inactivity. Cryptographic proof that my account has not been compromised is available.
rik8119 (OP)
Full Member
***
Offline Offline

Activity: 217
Merit: 100

CEO WINC e. V.


View Profile
August 24, 2015, 09:25:33 AM
 #71

Hi i am building it with maven. I just downloaded it / git clone it and then i compile it.

A problem could be with support-v4 and v13 artifacts they are somehow not loading from online repository. I installed them manually again from the local repository by using
Code:
mvn install:install-file -DgroupId=com.android.support -DartifactId=support-v4 -Dfile=support-v4-19.1.0.jar -Dversion=19.1.0 -Dpackaging=jar -DgeneratePom=true -D

After that the libs folder in the wallet has to be moved to src/main/libs and then the namecoinj is compiling with
Code:
mvn clean install -Dmaven.test.skip=true
and the wallet with
Code:
mvn clean install -DskipTests=true -Dandroid.sdk.path=/path_to_sdk

Demurrage - the easiest way to a human society.
hexafraction
Sr. Member
****
Offline Offline

Activity: 392
Merit: 268

Tips welcomed: 1CF4GhXX1RhCaGzWztgE1YZZUcSpoqTbsJ


View Profile
August 25, 2015, 12:40:34 AM
 #72

Hi i am building it with maven. I just downloaded it / git clone it and then i compile it.

A problem could be with support-v4 and v13 artifacts they are somehow not loading from online repository. I installed them manually again from the local repository by using
Code:
mvn install:install-file -DgroupId=com.android.support -DartifactId=support-v4 -Dfile=support-v4-19.1.0.jar -Dversion=19.1.0 -Dpackaging=jar -DgeneratePom=true -D

After that the libs folder in the wallet has to be moved to src/main/libs and then the namecoinj is compiling with
Code:
mvn clean install -Dmaven.test.skip=true
and the wallet with
Code:
mvn clean install -DskipTests=true -Dandroid.sdk.path=/path_to_sdk

I got it building and debugging with IDEA after a few changes:

Remove support-v4. It conflicted with v13 at the dex stage.

Add <failOnNonStandardStructure>false</failOnNonStandardStructure> to BOTH instances of the Android plugin in wallet/pom.xml
Build as Android Application (nothing Maven specific) in IDEA.

Would you mind updating us on what is left to do, and the state of the bounty?

I have recently become active again after a long period of inactivity. Cryptographic proof that my account has not been compromised is available.
rik8119 (OP)
Full Member
***
Offline Offline

Activity: 217
Merit: 100

CEO WINC e. V.


View Profile
August 25, 2015, 12:05:30 PM
 #73

The Bounty is at 1.2 BTC 400 WLC 10k FRC.

What is left to be done:

The Wallet crashes at 10k blocks (sometimes at 12k or even more) and is loading extreme slow compared to the original namecoinj wallet. The crashes seem to be dependend on the memory of the device. So somehow the wallet is using very much memory leads to a crash on the most devices.

Here are a few of my errormessages (if it helps)

Code:
=== stack trace ===

%0A%0Ajava.lang.OutOfMemoryError

%0A%09at java.io.ByteArrayOutputStream.<init>(ByteArrayOutputStream.java:63)
%0A%09at org.bitcoinj.core.UnsafeByteArrayOutputStream.<init>(UnsafeByteArrayOutputStream.java:39)
%0A%09at org.bitcoinj.core.Message.unsafeBitcoinSerialize(Message.java:361)
%0A%09at org.bitcoinj.core.Message.bitcoinSerialize(Message.java:323)
%0A%09at org.bitcoinj.core.Transaction.getHash(Transaction.java:259)
%0A%09at org.bitcoinj.core.Transaction.getHashAsString(Transaction.java:276)
%0A%09at org.bitcoinj.core.Transaction.toString(Transaction.java:666)
%0A%09at org.bitcoinj.core.Transaction.toString(Transaction.java:656)
%0A%09at org.bitcoinj.core.BlockMergeMinedPayload.parseMergedMineInfo(BlockMergeMinedPayload.java:95)
%0A%09at org.bitcoinj.core.BlockMergeMinedPayload.parse(BlockMergeMinedPayload.java:41)
%0A%09at org.bitcoinj.core.BlockMergeMinedPayload.<init>(BlockMergeMinedPayload.java:32)
%0A%09at org.bitcoinj.core.BlockMergeMined.<init>(BlockMergeMined.java:53)
%0A%09at org.bitcoinj.core.Block.parseHeader(Block.java:215)
%0A%09at org.bitcoinj.core.Block.parse(Block.java:278)
%0A%09at org.bitcoinj.core.Message.<init>(Message.java:171)
%0A%09at org.bitcoinj.core.Block.<init>(Block.java:136)
%0A%09at org.bitcoinj.core.HeadersMessage.parse(HeadersMessage.java:85)
%0A%09at org.bitcoinj.core.Message.<init>(Message.java:117)
%0A%09at org.bitcoinj.core.Message.<init>(Message.java:149)
%0A%09at org.bitcoinj.core.HeadersMessage.<init>(HeadersMessage.java:42)
%0A%09at org.bitcoinj.core.BitcoinSerializer.makeMessage(BitcoinSerializer.java:228)
%0A%09at org.bitcoinj.core.BitcoinSerializer.deserializePayload(BitcoinSerializer.java:191)
%0A%09at org.bitcoinj.core.PeerSocketHandler.receiveBytes(PeerSocketHandler.java:139)
%0A%09at org.bitcoinj.net.ConnectionHandler.handleKey(ConnectionHandler.java:217)
%0A%09at org.bitcoinj.net.NioClientManager.handleKey(NioClientManager.java:75)
%0A%09at org.bitcoinj.net.NioClientManager.run(NioClientManager.java:111)
%0A%09at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:60)
%0A%09at com.google.common.util.concurrent.Callables$3.run(Callables.java:93)
%0A%09at java.lang.Thread.run(Thread.java:856)%0A%0A%0A%0A

Code:
=== stack trace ===

%0A%0Ajava.lang.OutOfMemoryError

%0A%09at org.bitcoinj.core.BitcoinSerializer.deserializePayload(BitcoinSerializer.java:172)
%0A%09at org.bitcoinj.core.PeerSocketHandler.receiveBytes(PeerSocketHandler.java:139)
%0A%09at org.bitcoinj.net.ConnectionHandler.handleKey(ConnectionHandler.java:217)
%0A%09at org.bitcoinj.net.NioClientManager.handleKey(NioClientManager.java:75)
%0A%09at org.bitcoinj.net.NioClientManager.run(NioClientManager.java:111)
%0A%09at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:60)
%0A%09at com.google.common.util.concurrent.Callables$3.run(Callables.java:93)
%0A%09at java.lang.Thread.run(Thread.java:856)%0A%0A%0A%0A

Code:
=== stack trace === 

java.lang.OutOfMemoryError

at org.bitcoinj.core.Utils.copyOf(Utils.java:457)
at org.bitcoinj.core.UnsafeByteArrayOutputStream.toByteArray(UnsafeByteArrayOutputStream.java:117)
at org.bitcoinj.core.Message.unsafeBitcoinSerialize(Message.java:387)
at org.bitcoinj.core.Message.bitcoinSerialize(Message.java:323)
at org.bitcoinj.core.Transaction.getHash(Transaction.java:259)
at org.bitcoinj.core.Transaction.getHashAsString(Transaction.java:276)
at org.bitcoinj.core.Transaction.toString(Transaction.java:666)
at org.bitcoinj.core.Transaction.toString(Transaction.java:656)
at org.bitcoinj.core.BlockMergeMinedPayload.parseMergedMineInfo(BlockMergeMinedPayload.java:95)
at org.bitcoinj.core.BlockMergeMinedPayload.parse(BlockMergeMinedPayload.java:41)
at org.bitcoinj.core.BlockMergeMinedPayload.(BlockMergeMinedPayload.java:32)
at org.bitcoinj.core.BlockMergeMined.(BlockMergeMined.java:53)
at org.bitcoinj.core.Block.parseHeader(Block.java:215)
at org.bitcoinj.core.Block.parse(Block.java:278)
at org.bitcoinj.core.Message.(Message.java:171)
at org.bitcoinj.core.Block.(Block.java:136)
at org.bitcoinj.core.HeadersMessage.parse(HeadersMessage.java:85)
at org.bitcoinj.core.Message.(Message.java:117)
at org.bitcoinj.core.Message.(Message.java:149)
at org.bitcoinj.core.HeadersMessage.(HeadersMessage.java:42)
at org.bitcoinj.core.BitcoinSerializer.makeMessage(BitcoinSerializer.java:228)
at org.bitcoinj.core.BitcoinSerializer.deserializePayload(BitcoinSerializer.java:191)
at org.bitcoinj.core.PeerSocketHandler.receiveBytes(PeerSocketHandler.java:139)
at org.bitcoinj.net.ConnectionHandler.handleKey(ConnectionHandler.java:217)
at org.bitcoinj.net.NioClientManager.handleKey(NioClientManager.java:75)
at org.bitcoinj.net.NioClientManager.run(NioClientManager.java:111)
at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:60)
at com.google.common.util.concurrent.Callables$3.run(Callables.java:93)
at java.lang.Thread.run(Thread.java:856)

After the memory-fix there is no reason on my side to keep the bounty from payout.

Rik

Demurrage - the easiest way to a human society.
hexafraction
Sr. Member
****
Offline Offline

Activity: 392
Merit: 268

Tips welcomed: 1CF4GhXX1RhCaGzWztgE1YZZUcSpoqTbsJ


View Profile
August 25, 2015, 12:51:19 PM
Last edit: August 25, 2015, 01:20:52 PM by hexafraction
 #74

I'm going to see if I can get a reasonable heap snapshot and a profiler working to see what's up with the block sync.

Edit: I've taken a few heap dumps around blocks 10K, 11400, and 14000. All of them report heap sizes of no more than 60 MB (44MB at block 10K). I'll upload an APK tonight.

I have recently become active again after a long period of inactivity. Cryptographic proof that my account has not been compromised is available.
rik8119 (OP)
Full Member
***
Offline Offline

Activity: 217
Merit: 100

CEO WINC e. V.


View Profile
August 25, 2015, 01:26:34 PM
 #75

I'm going to see if I can get a reasonable heap snapshot and a profiler working to see what's up with the block sync.

Edit: I've taken a few heap dumps around blocks 10K, 11400, and 14000. All of them report heap sizes of no more than 60 MB (44MB at block 10K). I'll upload an APK tonight.


Thanks.. Enlarging the heap size by adding android:largeHeap="true" did not change anything in the behaviour.

Demurrage - the easiest way to a human society.
hexafraction
Sr. Member
****
Offline Offline

Activity: 392
Merit: 268

Tips welcomed: 1CF4GhXX1RhCaGzWztgE1YZZUcSpoqTbsJ


View Profile
August 25, 2015, 06:13:22 PM
Last edit: August 25, 2015, 06:29:35 PM by hexafraction
 #76

I do see slow block sync after 10K. I'm also investigating that, although my Android abilities are somewhat more limited than my understanding of Java. Would you be able to capture a heap dump and email it to me/upload it somewhere if it is of a reasonable size? (there should be a button called "capture heap dump" or similar to the left of the logcat window in IDEA/Android Studio.

I have recently become active again after a long period of inactivity. Cryptographic proof that my account has not been compromised is available.
rik8119 (OP)
Full Member
***
Offline Offline

Activity: 217
Merit: 100

CEO WINC e. V.


View Profile
August 26, 2015, 11:36:40 AM
 #77

I am trying, but to make an app with android studio out of a maven project. On my laptop the main you created is also crashing and at the first run it has produced an otOfMemoryError: Java heap space  So maybe i can capture a heap dump.

Demurrage - the easiest way to a human society.
hexafraction
Sr. Member
****
Offline Offline

Activity: 392
Merit: 268

Tips welcomed: 1CF4GhXX1RhCaGzWztgE1YZZUcSpoqTbsJ


View Profile
August 26, 2015, 11:45:25 AM
 #78

I am trying, but to make an app with android studio out of a maven project. On my laptop the main you created is also crashing and at the first run it has produced an otOfMemoryError: Java heap space  So maybe i can capture a heap dump.

It's hard to tell what is going on without a heap dump. Would you mind sending me the apk you have, and trying to run the one that I built? I have a special build process I already use for other android projects used for robotic applications that I used.

I have recently become active again after a long period of inactivity. Cryptographic proof that my account has not been compromised is available.
rik8119 (OP)
Full Member
***
Offline Offline

Activity: 217
Merit: 100

CEO WINC e. V.


View Profile
August 26, 2015, 05:04:03 PM
 #79

I am trying, but to make an app with android studio out of a maven project. On my laptop the main you created is also crashing and at the first run it has produced an otOfMemoryError: Java heap space  So maybe i can capture a heap dump.

It's hard to tell what is going on without a heap dump. Would you mind sending me the apk you have, and trying to run the one that I built? I have a special build process I already use for other android projects used for robotic applications that I used.

Ok i have 3 heap dumps now:

- After the block 10k is reached the memory usage goes up from 16 Mb to 50 Mb. I took the first here.

- At some point the wallet loads again and the memory is at 50 Mb still. I took the second here (Block ~11400)

- When the block 12k is reached i took the 3 heap here.

After that the memoryusage reduces to 30 Mb and crashes then without loading further blocks.

The heaps are uploaded here: https://drive.google.com/file/d/0Bzt8Hb4nQtyhQ0FxU3kzT0hkbTQ/view?usp=sharing

Demurrage - the easiest way to a human society.
achow101
Staff
Legendary
*
Offline Offline

Activity: 3486
Merit: 6824


Just writing some code


View Profile WWW
August 26, 2015, 05:07:36 PM
 #80


Ok i have 3 heap dumps now:

- After the block 10k is reached the memory usage goes up from 16 Mb to 50 Mb. I took the first here.

- At some point the wallet loads again and the memory is at 50 Mb still. I took the second here (Block ~11400)

- When the block 12k is reached i took the 3 heap here.

After that the memoryusage reduces to 30 Mb and crashes then without loading further blocks.

The heaps are uploaded here: https://drive.google.com/file/d/0Bzt8Hb4nQtyhQ0FxU3kzT0hkbTQ/view?usp=sharing
That memory usage is interesting. When I ran it, it used 40 MB initially until 10000 and kept going up to around 300 MB after 10k blocks.

Pages: « 1 2 3 [4] 5 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!