Feathercoin daemon and wallet production version 0.18.1
Old daemon and wallet version 0.17.0.1

[DEV] Mobile Android and iPhone wallet app application Developments


  • Moderators | Tip Wellenreiter

    I just started the Android and java stuff some weeks ago.

    No experience with IOS, sorry


  • | Tip mirrax

    windows phone? Anybody can develop?


  • Regular Member | Tip mharrison

    If I get time I can do/help with Windows Phone.


  • | Tip null

    If you could that would be epic ahy!


  • | Tip kris_davison

    Are there any changes to the android wallet Needes to deal with NeoScrypt?

    Or maybe it’s in FeathercoinJ?


  • Moderators | Tip Wellenreiter

    Yes, the android wallet needs to be adapted for neoscrypt.

    Any help is highly appreciated.

    Volunteers please contact me via pm


  • | Tip null

    Excellent guys.

    Keeping the android wallet up to date and running should be one of the priorities for the algo change.


  • Moderators | Tip Wellenreiter

    The Android wallet still is not prepared for the Neoscrypt fork.

    As the date for the move to Neoscrypt comes closer, we need to implement the Neoscrypt module in the Android wallet or it will not work anymore after the fork.

    Are there any coders willing to help?

    reply here or send me a PM


  • | Tip null

    I’ll put up 0.5btc for the job.

    And if you do something really stellar with the wallet I’ll double it depending on what extra you’ve put in.


  • | Tip kris_davison

    I think what really needs sorting is the feathercoinj project which is the part that talks to the Feathercoin network. The wallet would then just need to include the new version of that to work.
    But it could be quite a job? I am willing to help any way I can but its taking out the scrypt algo and including the NeoScrypt one or writing a Java implementation.


  • Moderators | Tip Wellenreiter

    As far as I found there are a couple of steps to do:

    1. create a neoscrypt module as it already exist for scrypt. It should be a c-compiled librady for android. The existing scryp module tries to load the library and if that fails it executes the scrypt function in java. the java object is: com.lambdaworks.crypto.SCrypt the link to the existing scrypt module on guthub is: https://github.com/wg/scrypt/blob/master/src/main/java/com/lambdaworks/crypto/SCrypt.java May be that gives an idea what needs to be done.
    2. modify the file block.java in feathercoinj to execute scrypt hashing for blocks < 432,000 and neoscrypt hashing starting at the 432,000
    3. modify tests I’m not sure, if step 3 is really needed. I hope I got the major steps I will grant access to the feathercoinj repo on github so we can work together.

  • | Tip kris_davison

    I spent an hour or two last night banging my head against a wall trying to get feathercoinj compiled in ecplise. (without any code changes)

    I got the code from Hanks Github (Is this the correct repo?) and attempted to build it as a maven project but there seems to be alot of missing dependencies which mean it wont compile.

    I tried manually adding some of the dependences but without much luck. Also the tests wont compile because of some odd issue with the test params.

    So I canned it for now I will try again tonight if I get a chance.

    It really should not be this hard lol

    …EDIT: Looks like the project was setup in intellij originally so I may install that tonight when I try.

    As it may well work out of the box with that IDE.


  • Moderators | Tip Wellenreiter

    I used Android studio to compile and feathercoinj from here:

    https://github.com/wellenreiter01/feathercoinj

    Feathercoin-Wallet for android is here in case you need it:

    https://github.com/wellenreiter01/feathercoin-wallet-2

    the test section is broken, so I compiled without-test

    But I agree, setup and compile the first time is a pain… :-


  • | Tip kris_davison

    Thanks for the pointers.

    I’ll give that a shot!
    🙂


  • | Tip kris_davison

    OK Im compiled and im starting to look at what has to be done. Its quite a task. 🙂

    Right in Block.java I have identified one placewe need to check the block number to either hash with scrypt ot neoscrypt.

    it is in checkProofOfWork() (around line 600 or so) as at the moment it is always calling these methods

    getScryptHash() and getScryptHashAsString()

    rather than my new methods (cunningly named I think)

    getNeoScryptHash() and getNeoScryptHashAsString() (genious lol)

    So What I need is a way of either checking what the number of this block is or what the previous block is and all I can see is a hash of the pervious block? Any Ideas ?


  • Moderators | Tip Wellenreiter

    Check wallet.java, line 1181.

    The block object has a procedure ‘getHeight’ 🙂

    Based on the height, you could add a flag to the call of checkProofOfWork() forcoing it to use getScryptHash() or getNeoScryptHash()


  • | Tip kris_davison

    Perfect thanks wellenreiter 🙂


  • | Tip lizhi

    I used Android studio to compile and feathercoinj from here:

    https://github.com/wellenreiter01/feathercoinj

    Feathercoin-Wallet for android is here in case you need it:

    https://github.com/wellenreiter01/feathercoin-wallet-2

    the test section is broken, so I compiled without-test

    But I agree, setup and compile the first time is a pain… :-

    I have a problem for compile feathercoinj :

    D:\FTC\andriod\feathercoinj-master>mvn clean package
    [INFO] Scanning for projects…
    [ERROR] The build could not read 1 project -> [Help 1]
    [ERROR]
    [ERROR] The project com.google:feathercoinj-tools:[unknown-version] (D:\FTC\andriod\feathercoinj-master\tools\pom.xml) has 1 error
    [ERROR] Non-resolvable parent POM: Could not find artifact com.google:feathercoinj-parent:pom:0.96-SNAPSHOT and ‘parent.relativePath’ points at wrong local
    POM @ line 21, column 11 -> [Help 2]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
    [ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException


  • | Tip lizhi

    I still can complie it with eclipse include JNI code, but wallet.apk can not work after I install it. I don’t know any miss, Jar is a mess and It is frustrating. I think create a new project with eclipse 3.7.2, maven is a shit .

    Android Runtime Info:

    04-02 14:32:39.386: D/dalvikvm(618): Trying to load lib /data/data/com.feathercoin.wallet/lib/libneoscrypt.so 0x411eb378
    04-02 14:32:39.386: D/dalvikvm(618): Added shared lib /data/data/com.feathercoin.wallet/lib/libneoscrypt.so 0x411eb378
    04-02 14:32:39.386: D/dalvikvm(618): No JNI_OnLoad found in /data/data/com.feathercoin.wallet/lib/libneoscrypt.so 0x411eb378, skipping init
    04-02 14:32:39.436: W/hasher(618): output: 
    04-02 14:32:39.606: D/dalvikvm(618): GC_CONCURRENT freed 217K, 7% free 10869K/11591K, paused 19ms+31ms, total 137ms
    04-02 14:32:39.656: E/AbstractBlockChain(618): Failed to verify block: 
    04-02 14:32:39.656: E/AbstractBlockChain(618): com.google.feathercoin.core.VerificationException: Hash is higher than target: 2de0ecb2b7daa24fb9ef64fe0934508481bd14cf421c9d90f7b8e160a322850a vs ffff0000000000000000000000000000000000000000000000000000000
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at com.google.feathercoin.core.Block.checkProofOfWork(Block.java:627)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at com.google.feathercoin.core.Block.verifyHeader(Block.java:748)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at com.google.feathercoin.core.AbstractBlockChain.add(AbstractBlockChain.java:405)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at com.google.feathercoin.core.AbstractBlockChain.add(AbstractBlockChain.java:289)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at com.google.feathercoin.core.Peer.processHeaders(Peer.java:365)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at com.google.feathercoin.core.Peer.processMessage(Peer.java:244)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at com.google.feathercoin.core.Peer.access$5(Peer.java:208)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at com.google.feathercoin.core.Peer$PeerHandler.messageReceived(Peer.java:1342)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:485)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    04-02 14:32:39.656: E/AbstractBlockChain(618): 	at java.lang.Thread.run(Thread.java:856)
    04-02 14:32:39.667: E/AbstractBlockChain(618): fdbe99b90c90bae7505796461471d89ae8388ab953997aa06a355bbda8d915cb
    04-02 14:32:39.756: W/Peer(618): Block header verification failed
    04-02 14:32:39.756: W/Peer(618): com.google.feathercoin.core.VerificationException: Could not verify block fdbe99b90c90bae7505796461471d89ae8388ab953997aa06a355bbda8d915cb
    04-02 14:32:39.756: W/Peer(618): v1 block: 
    04-02 14:32:39.756: W/Peer(618):    previous block: 12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2
    04-02 14:32:39.756: W/Peer(618):    merkle root: 808267d4d2e63c1098b4caa198eebd8096b912164efa0afeb8fdee31d726a925
    04-02 14:32:39.756: W/Peer(618):    time: [1366147060] Tue Apr 16 21:17:40 GMT 2013
    04-02 14:32:39.756: W/Peer(618):    difficulty target (nBits): 504365040
    04-02 14:32:39.756: W/Peer(618):    nonce: 3863023104
    04-02 14:32:39.756: W/Peer(618): 	at com.google.feathercoin.core.AbstractBlockChain.add(AbstractBlockChain.java:299)
    04-02 14:32:39.756: W/Peer(618): 	at com.google.feathercoin.core.Peer.processHeaders(Peer.java:365)
    04-02 14:32:39.756: W/Peer(618): 	at com.google.feathercoin.core.Peer.processMessage(Peer.java:244)
    04-02 14:32:39.756: W/Peer(618): 	at com.google.feathercoin.core.Peer.access$5(Peer.java:208)
    04-02 14:32:39.756: W/Peer(618): 	at com.google.feathercoin.core.Peer$PeerHandler.messageReceived(Peer.java:1342)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:485)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    04-02 14:32:39.756: W/Peer(618): 	at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    04-02 14:32:39.756: W/Peer(618): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    04-02 14:32:39.756: W/Peer(618): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    04-02 14:32:39.756: W/Peer(618): 	at java.lang.Thread.run(Thread.java:856)
    04-02 14:32:39.756: W/Peer(618): Caused by: com.google.feathercoin.core.VerificationException: Hash is higher than target: 2de0ecb2b7daa24fb9ef64fe0934508481bd14cf421c9d90f7b8e160a322850a vs ffff0000000000000000000000000000000000000000000000000000000
    04-02 14:32:39.756: W/Peer(618): 	at com.google.feathercoin.core.Block.checkProofOfWork(Block.java:627)
    04-02 14:32:39.756: W/Peer(618): 	at com.google.feathercoin.core.Block.verifyHeader(Block.java:748)
    04-02 14:32:39.756: W/Peer(618): 	at com.google.feathercoin.core.AbstractBlockChain.add(AbstractBlockChain.java:405)
    04-02 14:32:39.756: W/Peer(618): 	at com.google.feathercoin.core.AbstractBlockChain.add(AbstractBlockChain.java:289)
    04-02 14:32:39.756: W/Peer(618): 	... 26 more
    04-02 14:33:01.636: W/hasher(618): output: 
    04-02 14:33:01.826: W/AbstractBlockChain(618): Block does not connect: 942650fccdbc157c05aab9f03e258b8dfe96c25997fa578aaa5904ab64c9d99a prev 79a0d95baf57d91f5d1e99ef2a01ce06b69b62849640b54208be2255ec50dbb1
    04-02 14:33:01.826: I/Peer(618): Did not start chain download on solved block due to in-flight header download.
    04-02 14:33:12.566: W/hasher(618): output: 
    04-02 14:33:12.716: W/AbstractBlockChain(618): Block does not connect: 62d7ba0eb0e9006e6e1f6de9652110ec1e3f941089be3af05aec31603da7eeb4 prev 942650fccdbc157c05aab9f03e258b8dfe96c25997fa578aaa5904ab64c9d99a
    04-02 14:33:12.726: I/Peer(618): Did not start chain download on solved block due to in-flight header download.

  • | Tip kris_davison

    The Jan post is relating to the wrong project version 0.9.6 being in the pom it needs to be whatever your project version is? 0.9.7.

    Anyway im not sure about the second one. Wellenreiter did you check in all the working code into github? I had some major issues compiling feathercoinj also.

    Any tips on how you got that bad boy running wellenreiter?

    Are you running this on Linux or android lizhi? As I’m guessing the .so lib may only work with android?