In this tutorial we're going to cover how to use Haveno from a client/user perspective.
let's follow the steps listed here to build haveno
[ mainpc ] [ /dev/pts/2 ] [~/Documents]
→ cd /tmp
[ mainpc ] [ /dev/pts/2 ] [/tmp]
→ wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.deb
[ mainpc ] [ /dev/pts/2 ] [/tmp]
→ sudo dpkg -i jdk-21_linux-x64_bin.deb
[ mainpc ] [ /dev/pts/2 ] [/tmp]
→ java --version
java 21.0.3 2024-04-16 LTS
Java(TM) SE Runtime Environment (build 21.0.3+7-LTS-152)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.3+7-LTS-152, mixed mode, sharing)
[ mainpc ] [ /dev/pts/2 ] [/tmp]
→ cd -
[ mainpc ] [ /dev/pts/2 ] [~/Documents]
→ git clone https://github.com/haveno-dex/haveno.git
Cloning into 'haveno'...
remote: Enumerating objects: 36625, done.
remote: Counting objects: 100% (2187/2187), done.
remote: Compressing objects: 100% (896/896), done.
remote: Total 36625 (delta 994), reused 2031 (delta 931), pack-reused 34438
Receiving objects: 100% (36625/36625), 28.79 MiB | 1.92 MiB/s, done.
Resolving deltas: 100% (22579/22579), done.
[ mainpc ] [ /dev/pts/2 ] [~/Documents]
→ cd haveno
[ mainpc ] [ /dev/pts/2 ] [~/Documents/haveno]
→ git checkout master
Already on 'master'
Your branch is up to date with 'origin/master'.
[ mainpc ] [ /dev/pts/2 ] [~/Documents/haveno]
→ make skip-tests
mkdir -p .localnet
./gradlew build -x test -x checkstyleMain -x checkstyleTest
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
> Task :cli:compileJava
Note: /home/nihilist/Documents/haveno/cli/src/main/java/haveno/cli/CliMain.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
> Task :common:compileJava
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
> Task :p2p:compileJava
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
[...]
> Task :relay:compileJava
Note: /home/nihilist/Documents/haveno/relay/src/main/java/haveno/relay/RelayMain.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.6/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD SUCCESSFUL in 2m 20s
81 actionable tasks: 78 executed, 3 up-to-date
Now that's done, let's join the public test network:
[ mainpc ] [ /dev/pts/2 ] [~/Documents/haveno]
→ make user1-desktop-stagenet
./haveno-desktop \
--baseCurrencyNetwork=XMR_STAGENET \
--useLocalhostForP2P=false \
--useDevPrivilegeKeys=false \
--nodePort=9999 \
--appName=haveno-XMR_STAGENET_user1 \
--apiPassword=apitest \
--apiPort=3201 \
--useNativeXmrWallet=false \
WARNING: Unknown module: javafx.controls specified to --add-opens
WARNING: Unknown module: javafx.controls specified to --add-opens
WARNING: Unknown module: javafx.graphics specified to --add-opens
May-13 19:39:41.967 [main] INFO haveno.common.util.Utilities: System info: os.name=Linux; os.version=6.1.0-20-amd64; os.arch=amd64; sun.arch.data.model=64; JRE=21.0.3+7-LTS-152 (Oracle Corporation); JVM=21.0.3+7-LTS-152 (Java HotSpot(TM) 64-Bit Server VM)
May-13 19:39:41.990 [main] INFO haveno.common.app.AsciiLogo:
0X
OOdolcck
KXKNN0occcccccck: :Kxxk0d
klccccccccccccccccck0xcccccccxK'
xccccccccccccccclOKKOocccccccccclxK
.xccccccccccccccclWMMMMMd:::::::::ccco
'dccccccc:::cccccclWMMMMMo:::::::::::cc;
,occccc:::::::::::::cxO0kl:::::::::::::cd
;occccc:::::cddddddc;;;;;;;;:ddddddl:::::coldOK
:occccc::::::xMMMMMMo,,,,,,,,cMMMMMMk::::::cccccoOc
llccccc:::::;;dMMMMMMo,,,,,,,,cMMMMMMk:::::::cccccc,
'cccccc::::;,,dMMMMMMl'''''',,cMMMMMMk::::::::ccccc.
.cccccc::::,,,dMMMMMMo'''''',,cMMMMMMk::::::::ccccc
:ccccc:::::;;dMMMMMM0xxxxxxxxOMMMMMMk::::::::ccc'
;ccccc:::::::xMMMMMMMMMMMMMMMMMMMMMMk::::::ccccco
'ccccc:::::::xMMMMMMMMMMMMMMMMMMMMMMk:::::ccccccco
.ccccccc:::::xMMMMMMd::::::::oMMMMMMk:::::ccccccc
:cccccccc:::xMMMMMMo,,,,,,,,cMMMMMMk:::::cccccc
cccccccccc:xMMMMMMo,,,,,,,,cMMMMMMk::::cccccc
:ccccccccccxMMMMMMo,,,,,,,,cMMMMMMO:cccccccc
ccccccccccxMMMMMMd;;;;;;;:lMMMMMMOcccccccc
ccccccclooooooc::::::::cddddddlcccccc:
.ccccc::::::::::::::ccccccccccccccc
:cccc:::::::::::ccccccccccccc
.cccc:::::::ccccccccccc,
'ccccccccccccc.
;ccccc:
.XXX. .XXX. .XXXk dXX0 ;XXX.KXXXXXX, xXX0 :XX0 ,XK000KK
.ccc. .ccc. xccccc ;cco .occ. ccccccc. :cccdo ;cc: oxlccccccco0.
.ccc. .ccc. dcc'ccl. :ccl dcc. ccc' :cccccO. ;cc: lccc 'ccd
.ccclllllccc. ccc: .ccx .ccl,dcc' cccllll. :cc, ccox;cc: :cc: .ccc.
.ccc ccc. 'lccl0kcccd .cclcc, ccc. :cc; .ccocc: .ccco kcc:
.ccc. .ccc. dcc. :ccl .ccc; cccd000' :cc; cccc: cccxO0kocc,
:ccc.
May-13 19:39:42.009 [main] INFO haveno.common.app.Version: Version{VERSION=1.0.3, P2P_NETWORK_VERSION=A, LOCAL_DB_VERSION=1, TRADE_PROTOCOL_VERSION=1, BASE_CURRENCY_NETWORK=1, getP2PNetworkId()=1A}
May-13 19:39:42.009 [main] INFO haveno.common.setup.CommonSetup: Path to Haveno jar file: /home/nihilist/Documents/haveno/lib/common.jar
May-13 19:39:42.010 [main] INFO haveno.common.util.Profiler: Total memory: 66 MB; Used memory: 25.56 MB; Free memory: 40.44 MB; Max memory: 1 GB; No. of threads: 1
May-13 19:39:42.029 [main] INFO h.core.setup.CoreNetworkCapabilities: TRADE_STATISTICS [0], TRADE_STATISTICS_2 [1], ACCOUNT_AGE_WITNESS [2], PROPOSAL [5], BLIND_VOTE [6], ACK_MSG [7], BUNDLE_OF_ENVELOPES [10], SIGNED_ACCOUNT_AGE_WITNESS [11], MEDIATION [12], REFUND_AGENT [13], TRADE_STATISTICS_HASH_UPDATE [14], NO_ADDRESS_PRE_FIX [15], TRADE_STATISTICS_3 [16]
May-13 19:39:42.031 [main] INFO haveno.core.locale.GlobalSettings: Locale info: en_US
May 13, 2024 7:39:42 PM com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @1de5f259'
May-13 19:39:42.809 [JavaFX Application Thread] INFO haveno.core.app.AvoidStandbyModeService: Started -- disabled power management via /usr/bin/gnome-session-inhibit --app-id Haveno --inhibit suspend --reason Avoid Standby --inhibit-only
May-13 19:39:42.812 [JavaFX Application Thread] INFO haveno.core.app.HavenoExecutable: Creating Haveno account with null password
May-13 19:39:43.058 [JavaFX Application Thread] INFO h.c.n.p2p.seed.DefaultSeedNodeRepository: Seed nodes: [3cqlkowdu766sto5wrdqpntpsi7kezwkkakc532i6jeiyu7hha726ead.onion:3003, dl57jitswby4yhzpqpu7pwq6iyqg2x6vkio73araparbftlqoqxhvqad.onion:2002]
May-13 19:39:43.620 [JavaFX Application Thread] INFO haveno.core.provider.ProvidersRepository: Selected price provider: http://elaxlgigphpicy5q7pi5wkz2ko2vgjbq4576vic7febmx4xcxvk6deqd.onion/
May-13 19:39:43.760 [JavaFX Application Thread] INFO haveno.desktop.app.HavenoApp: Starting application
May-13 19:39:43.895 [JavaFX Application Thread] INFO haveno.core.app.AppStartupState: Combined initialized state = false = updatedDataReceived=false && isBlockDownloadComplete=false && isWalletSynced=false && hasSufficientPeersForBroadcast=false && allDomainServicesInitialized=false
May-13 19:39:44.867 [JavaFX Application Thread] INFO haveno.desktop.app.HavenoAppMain: Using JavaFX 21.0.2
Donate XMR: 8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o7muLv3DXHoydRTK4SZaaUBq4EAUqpZHLrX2VZLH71Jrd9k8
Contact: nihilist@contact.nowhere.moe (PGP)