Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save richardalg/bb9ca80ee851fb792ffd85b9257b189f to your computer and use it in GitHub Desktop.
Save richardalg/bb9ca80ee851fb792ffd85b9257b189f to your computer and use it in GitHub Desktop.
Running Bisq on Raspberry Pi
--- ./bisq.v12.metadata.20230630 2023-06-30 22:55:18.000000000 +0100
+++ ./verification-metadata.xml.working 2023-09-05 18:34:20.230127731 +0100
@@ -503,14 +503,8 @@
</artifact>
</component>
<component group="com.google.protobuf" name="protoc" version="3.19.1">
- <artifact name="protoc-3.19.1-linux-x86_64.exe">
- <sha256 value="0b1099f537d44ee862b0c3708f32f1d66cfd76e2e2c1437f0c57a98476c20605" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-3.19.1-osx-x86_64.exe">
- <sha256 value="3431ad66f3bb24cd5196e92a561b0e03bf2906c894bc94d131daaa637094abac" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-3.19.1-windows-x86_64.exe">
- <sha256 value="06f65a95ee0fb212c45473e0e65cca824e4634b291fe8dd666068edf51e6ca4c" origin="Manually computed by Alva"/>
+ <artifact name="protoc-3.19.1-linux-aarch_64.exe">
+ <sha256 value="e18b554834c8c039223b83f3024afb8af9166666b4b9e54d83dcebfe8e28a929" origin="Generated by Gradle"/>
</artifact>
<artifact name="protoc-3.19.1.pom">
<sha256 value="71a3da76c0c3b7bedb71c1e65f18f47193cc73ef1f27fc26b0a70715794019b7" origin="Generated by Gradle"/>
@@ -548,14 +542,6 @@
<sha256 value="c9fa8fc6f158b05a3d6279371c8a3b42f39fed085899a435bf28675d0f3728a3" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.jfoenix" name="jfoenix" version="9.0.10">
- <artifact name="jfoenix-9.0.10.jar">
- <sha256 value="8060235fec5eb49617ec8d81d379e8c945f6cc722d0645e97190045100de2084" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="jfoenix-9.0.10.pom">
- <sha256 value="b24601bd9cc1bad8a9a6ca1586715b488cf2d13ea0fce1acb65dd7c73510176a" origin="Generated by Gradle"/>
- </artifact>
- </component>
<component group="com.natpryce" name="make-it-easy" version="4.0.1">
<artifact name="make-it-easy-4.0.1.jar">
<sha256 value="bf28701b65b88532a8bff65a636d7339d6c5db95b2b502799195a15c24fff45b" origin="Generated by Gradle"/>
@@ -698,14 +684,8 @@
</artifact>
</component>
<component group="io.grpc" name="protoc-gen-grpc-java" version="1.42.1">
- <artifact name="protoc-gen-grpc-java-1.42.1-linux-x86_64.exe">
- <sha256 value="5596b69eb69ed508bc69307f14340be702bdee2ff0ed33c1cafde02aefc9faaf" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-gen-grpc-java-1.42.1-osx-x86_64.exe">
- <sha256 value="f343841e08c9cbffdda92278f01f4ab9c2afb91b6125047e4c8d0aaf59736764" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-gen-grpc-java-1.42.1-windows-x86_64.exe">
- <sha256 value="cf8a24fd65e2e243aed74f79589d9b0194fd1f7a70063fd523cc0baeb44532a9" origin="Manually computed by Alva"/>
+ <artifact name="protoc-gen-grpc-java-1.42.1-linux-aarch_64.exe">
+ <sha256 value="9da908610c3006b9a8d27d790a93ad961fb881dda3335b4b4a3810425eff913b" origin="Generated by Gradle"/>
</artifact>
<artifact name="protoc-gen-grpc-java-1.42.1.pom">
<sha256 value="9856d0a3e07df312825e698082b6ec6401cd15814ca74092ae58084f4925e784" origin="Generated by Gradle"/>
@@ -1618,74 +1598,62 @@
<sha256 value="0859ba0d5cfeefb13964e5862c036faa48a0bccff4932638fb13fe3445df33f7" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.openjfx" name="javafx" version="16">
- <artifact name="javafx-16.pom">
- <sha256 value="18d9784212d04475bfe4a5f4038e0fc78146f9a721eb6b9a52955d3b4b20d3ca" origin="Generated by Gradle"/>
+ <component group="org.openjfx" name="javafx" version="17.0.1">
+ <artifact name="javafx-17.0.1.pom">
+ <sha256 value="4360be61425322ead03681349d99216b5203342a0a07f7a1c486316926661857" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.openjfx" name="javafx-base" version="16">
- <artifact name="javafx-base-16-linux.jar">
- <sha256 value="b825e220d685ecbd77e76f2cd52793132e6c9a10e23ee3361673cb29033413c0" origin="Generated by Gradle"/>
+ <component group="org.openjfx" name="javafx-base" version="17.0.1">
+ <artifact name="javafx-base-17.0.1-linux-aarch64.jar">
+ <sha256 value="248d7fa222365d5843a77424c2d0af2d3a660a40995045a53ae151c55710e55d" origin="Generated by Gradle"/>
</artifact>
- <artifact name="javafx-base-16-mac.jar">
- <sha256 value="8cb4a023706d392d0a733aaee41be839e8418448ab0090a8115a9b909d595c77" origin="Generated by Gradle"/>
+ <artifact name="javafx-base-17.0.1-linux.jar">
+ <sha256 value="01d1b7fd8b84e14ad12b54abfcbc41fa8d223757a63bf988b4a33dad1060616e" origin="Generated by Gradle"/>
</artifact>
- <artifact name="javafx-base-16-win.jar">
- <sha256 value="23abcdffb6f92d8b37531080682034d01c177f1229118a2f7646331c51c6ed63" origin="Manually computed by Alva"/>
+ <artifact name="javafx-base-17.0.1.jar">
+ <sha256 value="045700bcabd5441a50964944f38babbee8fc2e8159179b8cb5e64d18274e3853" origin="Generated by Gradle"/>
</artifact>
- <artifact name="javafx-base-16.jar">
- <sha256 value="036955291b3633b6e11106df315f7a561218d31dcb4280078fe4d2414925f557" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="javafx-base-16.pom">
- <sha256 value="09fe0f2eda8b6f3d4c55b28e32b6b7b2782847add96a686d3048753baa781901" origin="Generated by Gradle"/>
+ <artifact name="javafx-base-17.0.1.pom">
+ <sha256 value="0ffb7659dc3aaa7043baa70566da558736614587d41caa0384fad59d7228b30c" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.openjfx" name="javafx-controls" version="16">
- <artifact name="javafx-controls-16-linux.jar">
- <sha256 value="fd0aba38a0dde9836845c6d671501f4c30e6cff6f2d72748f75742dbcfc74df9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="javafx-controls-16-mac.jar">
- <sha256 value="4add6fdf120ab9c784dc6e700c158d411d9371aaba7bbb61ad9f9d016f2cce44" origin="Generated by Gradle"/>
+ <component group="org.openjfx" name="javafx-controls" version="17.0.1">
+ <artifact name="javafx-controls-17.0.1-linux-aarch64.jar">
+ <sha256 value="a27e140ebc3b49289379e54d2d0eb76e42da56645547663f827ed6378ee7f733" origin="Generated by Gradle"/>
</artifact>
- <artifact name="javafx-controls-16-win.jar">
- <sha256 value="a7f6e4757163c38a5e6cf26b426e9daf788ad1b57513111d362b3bbbc298d13b" origin="Manually computed by Alva"/>
+ <artifact name="javafx-controls-17.0.1-linux.jar">
+ <sha256 value="b72463867e5098f8df4a0e4c833331ebfe1553ce37a347a33342343cb028da06" origin="Generated by Gradle"/>
</artifact>
- <artifact name="javafx-controls-16.jar">
- <sha256 value="dfdbe63f9717b2cd84c9fd34b28a8ddffdbe25cc1e4c2ff9f171f07ca725e0f4" origin="Generated by Gradle"/>
+ <artifact name="javafx-controls-17.0.1.jar">
+ <sha256 value="51d698cac8627e221152b4c421900f73f4af5abcd517008e695e43e22c40ec33" origin="Generated by Gradle"/>
</artifact>
- <artifact name="javafx-controls-16.pom">
- <sha256 value="1769aa2547256cfe316387d78375056587283b63f0614fa6e9b59231ef90edd0" origin="Generated by Gradle"/>
+ <artifact name="javafx-controls-17.0.1.pom">
+ <sha256 value="e0542cc8528fe825402c480da2a7e149401bdb3b943849f4a1f46939ff57bdd9" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.openjfx" name="javafx-fxml" version="16">
- <artifact name="javafx-fxml-16-linux.jar">
- <sha256 value="65249a5a47357283f21c5fa85b2e91255f7e5b0b86a2ec3dd2cc220541d7ae0b" origin="Generated by Gradle"/>
+ <component group="org.openjfx" name="javafx-fxml" version="17.0.1">
+ <artifact name="javafx-fxml-17.0.1-linux-aarch64.jar">
+ <sha256 value="0d00d7a40b93ca68b2063f450f131cbb9e6a7fe3b98318304c65056f66ab872b" origin="Generated by Gradle"/>
</artifact>
- <artifact name="javafx-fxml-16-mac.jar">
- <sha256 value="b722e590930180ff7c43d34281202251e1fe8d1f81b16098cda78600780b7f46" origin="Generated by Gradle"/>
+ <artifact name="javafx-fxml-17.0.1-linux.jar">
+ <sha256 value="6b64a738afbb5acd100ca4af2f91561525fe812fe4dd39299c52a51af33d1090" origin="Generated by Gradle"/>
</artifact>
- <artifact name="javafx-fxml-16-win.jar">
- <sha256 value="e8313ffb783c26acbbc1267448bbfdf2f05126e5845a06c6f29a43db7483606d" origin="Manually computed by Alva"/>
- </artifact>
- <artifact name="javafx-fxml-16.pom">
- <sha256 value="7b3b1a717f5d3a67f1dadcc880de3677a25a5d4e8004b75c61cec8b044b013cd" origin="Generated by Gradle"/>
+ <artifact name="javafx-fxml-17.0.1.pom">
+ <sha256 value="3c9ed8df3409c3ba570cd0879c31eb560bac3fddb9cd191921af0f3a85fa769b" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.openjfx" name="javafx-graphics" version="16">
- <artifact name="javafx-graphics-16-linux.jar">
- <sha256 value="a2f5e1ea5aeb3ae57e63a1c853a4edf1e38b6f2fe76997ab864ad8b3c54bed53" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="javafx-graphics-16-mac.jar">
- <sha256 value="23a67ad877f283039a20dd827f68988c1f952fe4958d039c006762883f1f04ab" origin="Generated by Gradle"/>
+ <component group="org.openjfx" name="javafx-graphics" version="17.0.1">
+ <artifact name="javafx-graphics-17.0.1-linux-aarch64.jar">
+ <sha256 value="816b30d6ced805c18355fb8437903df8e7e6d971e62924ef14c31651933ed24b" origin="Generated by Gradle"/>
</artifact>
- <artifact name="javafx-graphics-16-win.jar">
- <sha256 value="78124668c64db443cf3e105b9c2f6d7061e7c72ad5ad2de63a13adc46ef2ca8c" origin="Manually computed by Alva"/>
+ <artifact name="javafx-graphics-17.0.1-linux.jar">
+ <sha256 value="36b5f99ede138182c08fdff649d68dcbe7681e0cb61ef4bc8367fea8a0118e35" origin="Generated by Gradle"/>
</artifact>
- <artifact name="javafx-graphics-16.jar">
- <sha256 value="77533b2922a853a3e1350c8e6650f6cf746000d20efef69119c6324086883b95" origin="Generated by Gradle"/>
+ <artifact name="javafx-graphics-17.0.1.jar">
+ <sha256 value="53d60cef64ab6a1549da4d0239c009f8ef8084b62ecd18c3bda782b4d6520a8f" origin="Generated by Gradle"/>
</artifact>
- <artifact name="javafx-graphics-16.pom">
- <sha256 value="b8fb99688eccae62be724bd72b34dfff1f8e1cddbe44649f5ef9a082e520c47e" origin="Generated by Gradle"/>
+ <artifact name="javafx-graphics-17.0.1.pom">
+ <sha256 value="5b1ed9d6a7dd5dd20103a4a7fd4c52b462c175c44658eb5b8d7fd5bd92c85231" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.openjfx" name="javafx-plugin" version="0.0.10">
@@ -1696,6 +1664,14 @@
<sha256 value="b3d28522fe9423202d79d1cf87c4afa18ebdd44ea2e9a9dbcf5faf289d65318b" origin="Generated by Gradle"/>
</artifact>
</component>
+ <component group="org.openjfx" name="javafx-plugin" version="0.0.11">
+ <artifact name="javafx-plugin-0.0.11.jar">
+ <sha256 value="ba87dcbdb74c6e3aa954f621ff5044cfb062a772c3407f39cca7830618c7bef6" origin="Generated by Gradle"/>
+ </artifact>
+ <artifact name="javafx-plugin-0.0.11.pom">
+ <sha256 value="51f70854b5018be5cfbf13b97d9d3fb207dbe8e52466c2f9d5a91c44b8ff69fa" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
<component group="org.opentest4j" name="opentest4j" version="1.2.0">
<artifact name="opentest4j-1.2.0.jar">
<sha256 value="58812de60898d976fb81ef3b62da05c6604c18fd4a249f5044282479fc286af2" origin="Generated by Gradle"/>
@@ -1757,6 +1733,14 @@
<sha256 value="6669bd6674aa9e52a2a97344ab3411b31295b2e64c7881e27c2ed6beb66922c2" origin="Generated by Gradle"/>
</artifact>
</component>
+ <component group="org.rationalityfrontline.workaround" name="jfoenix" version="17.0.1">
+ <artifact name="jfoenix-17.0.1.jar">
+ <sha256 value="30cabdf875998d0b107e41b051c867cc275003f326c1795f0256f9a900a6d872" origin="Generated by Gradle"/>
+ </artifact>
+ <artifact name="jfoenix-17.0.1.module">
+ <sha256 value="ad7d70774de3c6866866ae7640a431a9308da32eb347a8cd8246842bedd6658f" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
<component group="org.slf4j" name="slf4j-api" version="1.7.30">
<artifact name="slf4j-api-1.7.30.jar">
<sha256 value="cdba07964d1bb40a0761485c6b1e8c2f8fd9eb1d19c53928ac0d7f9510105c57" origin="Generated by Gradle"/>
--- ./bisq.v12.gbuild.20230630 2023-06-30 22:55:18.000000000 +0100
+++ ./build.gradle.working 2023-09-07 11:43:51.420549887 +0100
@@ -3,12 +3,13 @@
mavenCentral()
maven { url "https://jitpack.io" }
maven { url "https://plugins.gradle.org/m2/" }
+ mavenLocal()
}
dependencies {
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.17'
classpath 'com.google.gradle:osdetector-gradle-plugin:1.6.0'
classpath 'com.github.jengelman.gradle.plugins:shadow:5.2.0'
- classpath 'org.openjfx:javafx-plugin:0.0.10'
+ classpath 'org.openjfx:javafx-plugin:0.0.11'
}
}
@@ -23,15 +24,28 @@
}
configure(subprojects) {
+ apply plugin: 'java'
apply plugin: 'com.google.osdetector'
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+
ext { // in alphabetical order
grpcVersion = '1.42.1'
- javafxVersion = '16'
+ javafxVersion = '17.0.1'
protocVersion = '3.19.1'
os = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os
}
+
+ repositories {
+ mavenCentral()
+ maven { url 'https://jitpack.io' }
+ }
+
+ tasks.withType(JavaCompile) {
+ options.encoding = 'UTF-8'
+ }
}
@@ -159,6 +173,7 @@
implementation libs.kotlin.stdlib.jdk8
implementation libs.jetbrains.annotations
implementation libs.slf4j.api
+ testImplementation libs.hamcrest
runtimeOnly(libs.grpc.netty.shaded) {
exclude(module: 'animal-sniffer-annotations')
exclude(module: 'guava')
@@ -210,6 +225,7 @@
testImplementation libs.logback.classic
testImplementation libs.logback.core
testImplementation libs.apache.commons.lang3
+ testImplementation libs.mockito
}
}
@@ -277,6 +293,8 @@
testAnnotationProcessor libs.lombok
testCompileOnly libs.lombok
testImplementation libs.natpryce.make.it.easy
+ testImplementation libs.hamcrest
+ testImplementation libs.mockito
}
test {
@@ -326,7 +344,8 @@
implementation libs.google.guava
implementation libs.protobuf.java
implementation libs.jcsv
- implementation libs.jfoenix
+ // implementation libs.jfoenix // until sshahine/JFoenix#1187
+ implementation("org.rationalityfrontline.workaround:jfoenix:17.0.1") // is fixed
implementation libs.commons.io
implementation libs.fontawesomefx
implementation libs.fontawesomefx.commons
@@ -352,6 +371,7 @@
testAnnotationProcessor libs.lombok
testCompileOnly libs.lombok
testImplementation libs.natpryce.make.it.easy
+ testImplementation libs.mockito
}
test {
@@ -359,7 +379,6 @@
}
}
-
configure(project(':seednode')) {
apply plugin: 'com.github.johnrengelman.shadow'
@@ -404,6 +423,59 @@
}
}
+configure(project(':daemon')) {
+ distTar.enabled = true
+
+ mainClassName = 'bisq.daemon.app.BisqDaemonMain'
+
+ dependencies {
+ implementation project(':proto')
+ implementation project(':common')
+ implementation project(':p2p')
+ implementation project(':core')
+ annotationProcessor libs.lombok
+ compileOnly libs.javax.annotation
+ compileOnly libs.lombok
+ implementation libs.logback.classic
+ implementation libs.logback.core
+ implementation libs.google.gson
+ implementation libs.google.guava
+ implementation libs.protobuf.java
+ implementation libs.apache.commons.lang3
+ implementation libs.jetbrains.annotations
+ implementation libs.slf4j.api
+ implementation(libs.bitcoinj) {
+ exclude(module: 'bcprov-jdk15on')
+ exclude(module: 'guava')
+ exclude(module: 'jsr305')
+ exclude(module: 'okhttp')
+ exclude(module: 'okio')
+ exclude(module: 'protobuf-java')
+ exclude(module: 'slf4j-api')
+ }
+ implementation(libs.google.guice) {
+ exclude(module: 'guava')
+ }
+ implementation(libs.grpc.protobuf) {
+ exclude(module: 'animal-sniffer-annotations')
+ exclude(module: 'guava')
+ }
+ implementation(libs.grpc.stub) {
+ exclude(module: 'animal-sniffer-annotations')
+ exclude(module: 'guava')
+ }
+ runtimeOnly(libs.grpc.netty.shaded) {
+ exclude(module: 'animal-sniffer-annotations')
+ exclude(module: 'guava')
+ }
+ testAnnotationProcessor libs.lombok
+ testCompileOnly libs.lombok
+ testImplementation libs.junit.jupiter.api
+ testImplementation libs.junit.jupiter.params
+ testRuntimeOnly(libs.junit.jupiter.engine)
+ }
+}
+
configure(project(':apitest')) {
mainClassName = 'bisq.apitest.ApiTestMain'
@@ -436,6 +508,7 @@
}
test {
+ useJUnitPlatform()
outputs.upToDateWhen { false } // Don't use previously cached test outputs.
testLogging {
showStackTraces = true // Show full stack traces in the console.
@@ -502,13 +575,9 @@
}
testAnnotationProcessor libs.lombok
testCompileOnly libs.lombok
+ testImplementation libs.junit.jupiter.api
+ testImplementation libs.junit.jupiter.params
testRuntimeOnly libs.javax.annotation
- }
-}
-
-if (hasProperty('buildScan')) {
- buildScan {
- termsOfServiceUrl = 'https://gradle.com/terms-of-service'
- termsOfServiceAgree = 'yes'
+ testRuntimeOnly(libs.junit.jupiter.engine)
}
}

Running Bisq on Raspberry Pi

Working as of 2023-01-13

My setup:

Raspberry Pi 4 Model B Rev 1.5 2GB Raspberry Pi OS 64-bit with Desktop Release Date: September 22nd 2022

Bisq 1.9.9 built from source

Install Java

Build Bisq from source

  • git clone https://github.com/tmakerman/bisq.git
  • cd bisq
  • git checkout bisq-on-rpi-v1.9.9
  • ./gradlew build
    • some artifact dependency verifications fail, this can be ignored
    • build took ~ 26 min on my RPi 4 4GB
    • Bisq is ready to run, however when it initializes it will try to connect to Bitcoin network over Tor using its bundled Tor which fails and it will eventually time out. Instead setup a Tor hidden service and configure Bisq to connect through that…

Setup Tor

deb [arch=arm64] http://deb.torproject.org/torproject.org bullseye main
deb-src [arch=arm64] http://deb.torproject.org/torproject.org bullseye main
  • curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo apt-key add -
  • sudo apt-get update
  • sudo apt-get install tor deb.torproject.org-keyring
  • Edit /etc/tor/torrc adding the following lines to bottom of file:
SOCKSPort 9050
Log notice stdout
ControlPort 9051
CookieAuthentication 1
CookieAuthFileGroupReadable 1
HiddenServiceDir /var/lib/tor/bisq/
HiddenServicePort 8080 127.0.0.1:8080
  • Determine Tor group:
  • grep User /usr/share/tor/tor-service-defaults-torrc
  • sudo usermod -a -G debian-tor satoshi
    • replace satoshi with your username
  • sudo shutdown -r now
  • Wait for system to come back up
  • sudo systemctl enable tor
  • sudo systemctl start tor

Running Bisq

  • from RPi Desktop environment terminal window
  • cd bisq
  • ./bisq-desktop --torControlPort 9051 --torControlCookieFile=/var/run/tor/control.authcookie --torControlUseSafeCookieAuth
@richardalg
Copy link
Author

@nikicat - Plan B - add a fork to tmakerman's code.

@nikicat
Copy link

nikicat commented Sep 7, 2023

Thank you, changes are very similar except for java plugin and testImplementation directives. What Java version do you use?

@nikicat
Copy link

nikicat commented Sep 7, 2023

I still getting

java.lang.NoClassDefFoundError: com/sun/javafx/scene/TreeShowingExpression
	at com.jfoenix.skins.JFXProgressBarSkin.<init>(JFXProgressBarSkin.java:56)
	at com.jfoenix.controls.JFXProgressBar.createDefaultSkin(JFXProgressBar.java:73)
	at javafx.controls/javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.controls/javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.controls/javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at javafx.controls/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:146)
	at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1399)
	at javafx.graphics/javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:146)
	at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9558)
	at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9551)
	at javafx.graphics/javafx.scene.Scene.doCSSPass(Scene.java:569)
	at javafx.graphics/javafx.scene.Scene.access$3400(Scene.java:172)
	at javafx.graphics/javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2480)
	at javafx.graphics/com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:417)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at javafx.graphics/com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:416)
	at javafx.graphics/com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:443)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:520)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:500)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:493)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:829)

when running bisq-desktop and I think this is a problem with javafx/jfoenix versions.

@richardalg
Copy link
Author

@nikicat - Have you previously built bisq-1.9.9 via tmakerman's instructions?
There may be some legacy code that needs to be carried over. And the Bellsoft jdk11 is part of that?

@nikicat
Copy link

nikicat commented Sep 7, 2023

I had the same stack trace with 1.9.9.
I've just tried to switch to Oracle JDK 11 and it seems that it works! I've previously tried java-11-openjdk, zulu-11, zulu-15, liberica-jdk-11-full - nothing worked.

@Javihache
Copy link

Hey guys, I am not too proficient with git and definitely none with Java/Gradle.

I would love to install Bisq on a Raspberry Pi 4 8GB and after some hours preparing the Pi I realized that Bisq has no release for arm64.

How should I go about to apply the changes you show in the two files above in an automated way? I was trying to git clone the latest repo of Bisq original and searching line by line on those two files to perform the changes, but the files are actually quite different so after 30min I gave up.

I know diffs can be applied between files with git, but I would need a .diff file.

If you guys can give me a hand I would be very thankful!

@richardalg
Copy link
Author

@Javihache - I'm in the same situation as yourself with java/gradle.
I have had other priorities since bisq-1.9.14 was published, hence only yesterday began to work with that revision.
As you can see above I already have a working bisq-1.9.12 built from source, hence all of the support files should already be in place.
bisq-1.9.14 has structural changes. build.gradle for example is a skeleton of prior releases, so more difficult to understand where things are.
Hence I downloaded and untar'd the latest source code from the bisq website. I used the diffs that gus4rs posted on tmakerman's gist to patch the code for the rasberry pi. (If I get bisq-1-9-14 to run I'll maybe create another fork.)
My build failed with a message that java had not been found and that zulu-11could not be probed (IIRC). Probably not big problems but this will need a bit of time.
I hope that helps.

@Javihache
Copy link

Javihache commented Jan 6, 2024

Thank you for your reply!

I followed TMakerman's instructions, but in those instructions, I just needed to git clone his repo. My problem is that I don't know how to use the files with the changes that you posted above. Help me understand:

I should download 1.9.12 tar from bisq's repo releases, right? What's next? I know these files above have something to do with patches or are diff files, but I don't know how to apply them (git am? git diff?). I am reading about it this morning trying to figure it out, but if you can give me a hand I would be super thankful!

EDIT:

I figured that the files are patches (the p at the beginning and the format checks). However, even if I touch 'build.gradle.working', and I rename build.gradle to bisq.v12.gbuild.20230630 I can't git apply the patch:
error: patch failed: build.gradle.working:3
error: build.gradle.working: patch does not apply
It seems like I should have the build.gradle.working file already with the right code?

Sorry for the probably absolute noob questions, but I always worked with pull requests and with repos, this is totally new territory for me.

EDIT 2:

I just went the manual way and deleted the - lines and added the + lines. Not efficient but went faster than I thought. It's building 1.9.12 now

And finally thank you for the reply and for the work. If you ever get 1.9.14 to work and create a repo, that would help a lot of people I am sure.

@Javihache
Copy link

Javihache commented Jan 6, 2024

Unfortunately when starting Bisq I get:
[JavaFX Application Thread] ERROR bisq.core.app.WalletAppSetup: com.google.protobuf.InvalidProtocolBufferException$InvalidWireTypeException: Protocol message tag had invalid wire type.

I am just gonna get some amd64 mini pc to run bisq in my home lab and be done with this... I find it curious that although the Raspberry Pi is the choice for so many projects related to Bitcoin, Bisq devs do not create arm64 builds for Bisq.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment