Feathercoin daemon and wallet production version 0.17.0.2

[DEV] Mobile Android and iPhone wallet app application Developments


  • | Tip kstenson

    Hi Guys,

    I got some free time today to start to dig into the app and think I discovered the cause of the app not working, in the feathercoinj package the protocol version is set to 60001:

    https://github.com/hank/feathercoinj/blob/master/core/src/main/java/com/google/feathercoin/core/NetworkParameters.java#L43

    The latest code from github use dnsseed to find peers, however these peers won’t talk to it with this protocol number. When I realized this I cheekily changed the protocol number in my debug version and it then connected to peers and began downloading the block change.

    I’ve pulled the latest version of the litecoinj code and it’s version number is set to 60002, In github the feathercoin version number is set to 60004. Is there somewhere that lists the changes between these versions so I can take the litecoinj version and make the necessary changes to get it to 60004?

    Thanks in advance,

    Keith


  • | Tip Bushstar

    For the Feathercoin 0.8.5 client I used the latest Litecoin 0.8.5 code and moved our changes over to it. I suggest going through a similar process for the latest Android wallet. Get Hank’s Litecoin wallets and port over the changes to make it Feathercoin. This was Hank’s suggestion when I approached him about it. Hank says trhat the changes in the current Feathercoin Android wallet for our retarget code should be usable in the newer client.

    Latest Litecoin Android Wallet
    https://github.com/Litecoin-Java

    To check the changes to Feathercoin since porting to 0.8.5 please check the GitHub repo. When looking at the commits you need to go to page three to see the initial changes.

    https://github.com/FeatherCoin/Feathercoin


  • administrators | Tip uncle_muddy

    This is great news 🙂 I miss my wallet so much and it would be great to have it running again by the Birthday weekender. Keep up the good work guys


  • | Tip Ilocans

    Hi,

    So I am not the only one working on this, Ruthie asked me yesterday if I could help on this

    Bushstar, if I understand well, you recommend that we apply all the feburary 26th modification of the feathercoin wallet on the litecoin android wallet ?

    Thanks


  • | Tip Ruthie

    Hi Ilocans,

    Sorry I had not gotten back to you yet… (have had an emergency at home over the week end and today, all is well now)

    As I understand Keith is still getting to know the client and stuff and I wanted to ask you, the more the merrier 🙂 maybe you could help each other out?


  • | Tip Ilocans

    No problem Ruthie, there are a lot of thing more urgent

    Yes of course. It is never obvious to work on someone else code so I would be happy if we could help each other 🙂


  • Moderators | Tip Wellenreiter

    Hi Ladies and Gents,

    I forked Hanks feathercoinj and patched it to report protocol version 60005 now.
    Send Hank a pull request to merge my patch.

    I also got an android developement environment set up on my pc and managed it to compile a new feathercoin-wallet apk for andriod. My tablet is syncing again 🙂 .

    Of course I have to wait until the snc has completed to be sure that it works well.

    I also figured out, that it connects to ‘normal’ clients and it seems, that the android wallet does not need a backend server.

    I have no idea jet how to get this one into google playstore, so if someone wants the apk, send me an IM so I can send you the apk file or suggest how/where I can upload the android package.


  • Moderators | Tip Wellenreiter

    Update:

    My Android wallet is fully synced now 🙂


  • | Tip Ilocans

    You need an android developper licence (I don’t remeber the exact name). It cost 25$.

    Then you will be able to publish the apk of the application. There are a lot of tutorial if you search on google. The process can be different regarding if you are using eclipse, ADT,…


  • Moderators | Tip Wellenreiter

    Thanks for the info 🙂

    I will consider a developer account, if I will develop own applications.

    I think I will not push the android wallet to the playstore, as it is written by somebody else and I just changed two lines in the source code.

    I created a pull request on Github, and I hope, that they will update the playstore, too.

    My offer to send the apk was meant just as a temporary solution until playstore has the new version available.


  • | Tip Ilocans

    Can you explain how you make it work ? I mean how did you make it compile ?

    It seems that it need dependencies but I don’t achieve to compile anything. I guess I am missing something but I don,t find what it is…

    Thanks


  • Moderators | Tip wrapper

    I think that is brilliant work getting the mobile wallet fixed, even if it is a couple of lines, Wellenreiter. However, the mobile wallet is an open source project, I believe other coins have forked the code.

    I would suggest Peter puts a “side loader” web download on the Feathercoin download site till the App is updated in App store. Again other coins have done that.

    Having a mobile working mobile application is essential, it would be more secure if we did our own basic version with the wallet. It could be made available in F-Droid.

    kstenson for finding the bug.


  • | Tip kstenson

    I have been running the wallet the last couple of days with an update version number, but I haven’t tested out any functions to see if there are any breaking changes between protocol versions. I need to get some time to go though the updates since the last release Hank did.

    For people that want to build the source, if you grab the feathercoin wallet app, you also need to download and build the feathercoinj code here:

    https://github.com/hank/feathercoinj

    and follow the instructions for building. Once you’ve got that installed with maven your be able to build the wallet app.

    To change the version number you need to make the change to this file in feathercoinj project:

    https://github.com/hank/feathercoinj/blob/master/core/src/main/java/com/google/feathercoin/core/NetworkParameters.java#L43


  • administrators | Tip uncle_muddy

    Keith, or for me who really doesn’t have time to work out how to do all of that, but really needs the wallet app to test something else I’m working on. Is there an option where you can send me the app, I can up load it to my phone and test both it and my new project and report on the results?


  • | Tip Ilocans

    I have been running the wallet the last couple of days with an update version number, but I haven’t tested out any functions to see if there are any breaking changes between protocol versions. I need to get some time to go though the updates since the last release Hank did.

    For people that want to build the source, if you grab the feathercoin wallet app, you also need to download and build the feathercoinj code here:

    https://github.com/hank/feathercoinj

    and follow the instructions for building. Once you’ve got that installed with maven your be able to build the wallet app.

    To change the version number you need to make the change to this file in feathercoinj project:

    https://github.com/hank/feathercoinj/blob/master/core/src/main/java/com/google/feathercoin/core/NetworkParameters.java#L43

    Hello,

    I tried to build feathercoinj but when i execute maven clean package, I have errors such as:

    [ERROR] /C:/feathercoin/feathercoinj/core/src/test/java/com/google/feathercoin/core/BlockChainTest.java:[159,43] cannot find symbol

    [ERROR] symbol: variable interval

    [ERROR] location: variable unitTestParams of type com.google.feathercoin.core.NetworkParameters

    And the code athe the line 159 is : for (int i = 0; i < unitTestParams.interval - 1; i++) {

    It does not like the “.”

    I am fighting against this. I guess I missed something. Did you get this error message ?

    Thanks,


  • Moderators | Tip Wellenreiter

    There is a missing variable definition in the code. I defined the variable, but got more errors in the test area.

    If you locate my fork on github and use it, it will compile, but you need to run mvn with -DskipTests, as the test area has tons of errors.

    It seems, that the tests have not been adapted for a long time.

    My username on github is wellenreiter01, so the fork’s name should be wellenreiter01/feathercoin-wallet


  • | Tip kstenson

    Hello,

    I tried to build feathercoinj but when i execute maven clean package, I have errors such as:

    [ERROR] /C:/feathercoin/feathercoinj/core/src/test/java/com/google/feathercoin/core/BlockChainTest.java:[159,43] cannot find symbol

    [ERROR] symbol: variable interval

    [ERROR] location: variable unitTestParams of type com.google.feathercoin.core.NetworkParameters

    And the code athe the line 159 is : for (int i = 0; i < unitTestParams.interval - 1; i++) {

    It does not like the “.”

    I am fighting against this. I guess I missed something. Did you get this error message ?

    Thanks,

    Hi

    This is the unit tests in hanks code that are broken, to get around this you need to tell maven to skip the tests. so the command would be ‘mvn clean install -D maven.test.skip=true’

    This build the package succesfully for you.

    Keith


  • | Tip Ilocans

    Thanks it worked. I don’t know maven so I am a little bit lost.

    Once I did this I tried to compile the wallet with ‘mvn clean install -D maven.test.skip=true’ but it does not work because it needs feathercoinj-0.95-SNAPSHOT.jar

    After serveral attempts I solved this error by putting the file in the m2 repository in a folder I had to create repository\com\google\feathercoinj\0.95-SNAPSHOT

    Does it have to be done manually or is there another way ?

    Even if a put the file there I still have errors:

    [ERROR] Failed to execute goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.1:generate-sources (default-generate-sources) on project wa

    llet: Execution default-generate-sources of goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.1:generate-sources failed: A required class was missing while executing com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.1:generate-sources: Lorg/sonatype/aether/RepositorySystem;

    [ERROR] -----------------------------------------------------

    [ERROR] realm = plugin>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.1

    [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy

    Did you get this error too ?

    Thanks for your help


  • Moderators | Tip Wellenreiter

    I didn’t have these problems

    What I did:

    1. clone feathercoinj from github to a clean directory
    2. compile feathercoinj: ‘mvn clean install -DskipTests’ (yes, no space after the -D 😉 )
    3. clone feathercoin-wallet from github
    4. compile feathercoin-wallet:
    • cd to feathercoin-wallet dir
    • cd to subdir ‘wallet’
    • mvn clean install

    This did the job for me, but signing the apk file failed, because jarsigner was asking for an alias.

    I signed the apk manually:

    1. Create a keystore file with ‘keytool’ and define an alias, e.g. feathercoin-wallet
    2. copy the jarsigner call from the error message provides by the MVN output, starting with jarsigner and skipping the stuff in the beginning of the line.

    Done 😎


  • | Tip Ilocans

    Hi,

    You method does not work for me at all 😞

    If I use the ‘mvn clean install -DskipTests’, it does not skip the tests and I have the ‘cannot fin symbol’ error for feathercoinj

    And I have the same error for the feathercoin wallet.

    I am not really lucky

    Thanks for the help, maybe someone has a better idea ?


  • | Tip Ilocans

    Ok I finally find solutions.

    • First use It seems I have error with maven 3.1+ but not maven 3.0.5

    • Also I had an error it does not find aapt.exe

    To solve this, I had to execute:

    cd %ANDROID_HOME%/platform-tools
    mklink /H aidl.exe …\build-tools\19.0.0\aidl.exe
    mklink /H aapt.exe …\build-tools\19.0.0\aapt.exe

    • I had also an error with dx.jar. The solution is to search the file in the sdk subdirectory and copy it in %ANDROID_HOME%/platform-tools

    I am stuck at the final setp, signing the file beacause jarsigner ask for an alias. Wellenreiter coud you be more explicit please ?

    I use eclipse to create a keystore file with a password, an alias (feathercoin-wallet) and a password for the alias

    But I don’t understand where I have to put it. First I thought it was in …\m2\repository\org\apache\maven\plugins\maven-jarsigner-plugin\1.3.1

    but it does not work

    Thanks for the help