2 BTC bounty for improving performance of Bitsquare on Raspberry Pi

OK, I disabled OpenGL. It works now. UI updates are ok, maybe 2-3 sec. Looks very good so far, I think you may have nailed it. Good job

Wow congrats guys!!!

Step by step instructions:

  • start with fresh standard jessie image: https://www.raspberrypi.org/downloads/raspbian/
  • set up wifi in GUI / check LAN connection
  • sudo raspi-config --> advanced --> memory split --> 128 --> reboot
  • git clone https://github.com/phosphorit/bitsquare-on-raspberry-pi
  • cd bitsquare-on-raspberry-pi
  • chmod 777 bitsquare.sh
  • ./bitsquare.sh # this will take about an hour; can also be used to update bitsquare & bitcoinj
  • sudo su
  • ./start.sh

It was not expected this would work, but you proved the world wrong. Congrats!!

Left it running through the night and when I checked today it had a -4 error… Tried to report the error by e-mail, but it would not let me (not sure if @ManfredKarrer can make any sense out of this terminal output, the part with the -4 error is probably missing, I think this log only shows the errors from me clicking report error http://pastebin.com/uEp0ekax )

Anyways, the program seemed to continue working, although some ArrayIndexOutOfBoundsException errors kept popping up, I quit it typing ctrl q. The bitsquare.log file had no log as I ran with logLevel=OFF.

I’m doing a clean install now from scratch and will test again.

Can you make sure you installed the latest Bitsquare version (0.4.9.3)

These errors were common in earlier versions but should be fixed by now.

Edit: Just saw your screenshot from yesterday and it shows you’re indeed running v0.4.9.3.

The ArrayIndexOutOfBoundsException are from a JDK bug which we fixed by a hotfix jar to get added to the jre folder. I think that step is missing in the build script. In the build.md there is all described. That part was added more recentrly so I assume the older build scripts for RPi did not include that.

Added the jdkfix jar. I assume it is also appropriate for the Oracle JDK. Can I somehow test it? For me it always ran stable but I mostly clicked around a bit without any real trading (though I got to say I am quite impressed and plan on giving it a try).

The logLevel=OFF is ugly of course. But it seems with slow writing as in the Pi writing to the log file (flushing it?) causes noticable GUI (mouse cursor) lag. I tried it with logLevel=DEBUG and it was veery laggy. In normal environments I think it can be helpful to write to the log file with flushing so that in case of a hard crash you don’t loose any debug information so not sure what to do about that.

Also I noticed in the earlier thread that it was not metabit but pteron that came up with the trickier chriswhocodes openjfx overlay so I suggest to split the pass-through bounty I wrote about above 10% metabit / 15% pteron.

reedit: created an issue about the GUI animations reactivating: https://github.com/bitsquare/bitsquare/issues/579

Ok seems to be working fine, had to disable animations. Good job! Let me know your BTC address. Thanks for sharing the bounty also.

Looks good, congratz on getting it running. I had been looking at this as well but *jfx on RPI seems not the best choice for a well performing GUI . I guess it’s easy to build a GUI using jfx but I was afraid the only solution was a normal java-gui; instead of one built with css & html. Good to see you proved me wrong :slight_smile:

What do you understand as a normal Java GUI? JavaFX is the modern GUI for Java. It does not use html.

I wasn’t criticizing your choice for JavaFX. With normal I meant swing/awt; which has better support and performance on ARM especially since Oracle removed JavaFX support on arm. I’m afraid official support will not come back any time soon; meaning performance on ARM will be depending on an alternative jre like the overlay used in this topic

my address: 17iqAcY4jCsns3WYF7Swu4MNTqQZRBJEsB (70%)

As I am new maybe send the shared bounties directly 15% to metabit and 15% to pteron.
Their addresses can be found here: https://github.com/pteron/bitsquare-on-raspberry-pi/blob/master/bitsquare.sh

Yes JavaFX might be heavier than swing/awt. But Oracle also stopped support for swing/awt.

Thanks! Bounties sent:

@phosphor
https://blockchain.info/tx/2eecf78aaf651890ee4c8a5702b5200246e96fae2f4a25eff7b2846d83b1c789

@metabit
https://blockchain.info/tx/b91d5080a7e68643633d5d8149a000711a4ea425435779a876b1ec3c00b492fc

@pteron
https://blockchain.info/tx/f608ec464f34bf88eea9483cb3e0daa4be67d7970bd7a573dbd50eecccbff3ca

Received, thanks! Let me know if there is more to do for the Rasp or in Python. Cheers!

Thanks! Cheers :slight_smile:

Just wanted to pass along that it seems with the update to Raspbian Pixel (or something else recently) that the Bitsquare script is now failing to install.

using @phosphor August 12th steps

Looks like it failed at the same spot but with different messages leading up to it

jdk1.8.0_92/release
jdk1.8.0_92/src.zip
update-alternatives: using /opt/jdk1.8.0_92/bin/javac to provide /usr/bin/javac (javac) in auto mode
update-alternatives: using /opt/jdk1.8.0_92/bin/java to provide /usr/bin/java (java) in auto mode
copy jdkfix jar file
cp: cannot stat ‘bitsquare/jdkfix/target/jdkfix-0.4.9.3.jar’: No such file or directory

jdk1.8.0_92/release
jdk1.8.0_92/src.zip
copy jdkfix jar file
cp: cannot stat ‘bitsquare/jdkfix/target/jdkfix-0.4.9.3.jar’: No such file or directory

Any idea why we are missing that file?

I’m very busy at the moment but will try and take a look at this issue in a week or two.

Turns out the jdkfix was removed in Bitsquare v0.4.9.7 as the fix has been included in the jdk. Unfortunately there is no ARM binary available for the fixed jdk version.
For now I stuck the install script to v0.4.9.6 which should still work.

If you prefer the current master version with bug you can comment out the line ‘sudo cp bitsquare/jdkfix/target/jdkfix-0.4.9.6.jar /opt/jdk1.8.0_92/jre/lib/ext/’ and replace the line ‘git checkout v0.4.9.6’ by ‘git checkout master’.
To be frank I think the jdkfix was only applied on a second run of the script anyway until now (fixed).

I hope a fixed ARM binary will come up or maybe Manfred has mercy and will reinclude the fix.