![]() Extend CI workflow to build for both `x86_64` and `aarch64` architectures: - Add ARM variants for Ubuntu and macOS in the build matrix - Skip tests on `aarch64` builds with `-x test` flag as JavaFX 21.x.x doesn't currently support the ARM64 architecture - Update artifact naming to include architecture identifiers - Configure architecture-specific build paths and release outputs This change enables native builds for ARM-based systems like Apple Silicon Macs and ARM servers, improving performance for users on these platforms while maintaining full test coverage on `x86_64` where supported. Make localnet cache OS-specific Prevent Error: Failed to CreateArtifact: Received non-retryable error: Failed request: (409) Conflict: an artifact with this name already exists on the workflow run Add a warning about `linux/aarch64` tests being skipped Simplify GitHub Actions workflow conditions Replace verbose condition syntax with simpler `runner.os` expressions to improve readability and maintainability. This change: - Uses `runner.os` instead of specific `matrix.os` version strings - Removes unnecessary `${{ }}` expression wrappers in if conditions - Consolidates OS-specific conditions (e.g. `ubuntu-22.04` or `ubuntu-22.04-arm`) into simpler checks (`runner.os == 'Linux'`) Fix JavaFX loading on Mac ARM64 architecture JavaFX 21.0.2 supports Mac ARM64 (Apple Silicon) but was failing to load with `UnsatisfiedLinkError` because the build system wasn't detecting ARM architecture properly. This change allows the build system to correctly identify Mac ARM64 systems and use the appropriate JavaFX libraries, resolving the compatibility issues when running on Apple Silicon Macs. Split Build and Package Installer steps Cleaner CI output, split Build and Package installer step into two steps |
||
---|---|---|
.github | ||
.idea | ||
apitest | ||
assets/src | ||
cli | ||
common/src | ||
config/checkstyle | ||
core | ||
daemon/src | ||
desktop | ||
docs | ||
gpg_keys | ||
gradle | ||
inventory/src/main/resources | ||
media | ||
monitor | ||
p2p/src | ||
proto/src/main/proto | ||
relay | ||
scripts | ||
seednode | ||
statsnode/src/main | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
build.gradle | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
Makefile | ||
README.md | ||
settings.gradle |
What is Haveno?
Haveno (pronounced ha‧ve‧no) is an open source platform to exchange Monero for fiat currencies like USD, EUR, and GBP or other cryptocurrencies like BTC, ETH, and BCH.
Main features:
-
Communications are routed through Tor, to preserve your privacy.
-
Trades are peer-to-peer: trades on Haveno happen between people only, there is no central authority.
-
Trades are non-custodial: Haveno supports arbitration in case something goes wrong during the trade, but arbitrators never have access to your funds.
-
There is No token, because it's not needed. Transactions between traders are secured by non-custodial multisignature transactions on the Monero network.
See the FAQ on our website for more information.
Haveno Demo
https://github.com/user-attachments/assets/eb6b3af0-78ce-46a7-bfa1-2aacd8649d47
Installing Haveno
Haveno can be installed on Linux, macOS, and Windows by using a third party installer and network.
Note
The official Haveno repository does not support making real trades directly.
To make real trades with Haveno, first find a third party network, and then use their installer or build their repository. We do not endorse any networks at this time.
A test network is also available for users to make test trades using Monero's stagenet. See the instructions to build Haveno and connect to the test network.
Alternatively, you can create your own mainnet network.
Note that Haveno is being actively developed. If you find issues or bugs, please let us know.
Main repositories
- haveno - This repository. The core of Haveno.
- haveno-ts - TypeScript library for using Haveno.
- haveno-ui - A new user interface (WIP).
- haveno-meta - For project-wide discussions and proposals.
If you wish to help, take a look at the repositories above and look for open issues. We run a bounty program to incentivize development. See Bounties.
Keep in touch and help out!
Haveno is a community-driven project. For it to be successful it's fundamental to have the support and help of the community. Join the community rooms on our Matrix server:
- General discussions: Haveno (#haveno:monero.social) relayed on IRC/Libera (
#haveno
) - Development discussions: Haveno Development (#haveno-development:monero.social) relayed on IRC/Libera (
#haveno-development
)
Email: contact@haveno.exchange Website: haveno.exchange
Contributing to Haveno
See the developer guide to get started developing for Haveno.
See docs/CONTRIBUTING.md for our styling guides.
If you are not able to contribute code and want to contribute development resources, donations fund development bounties.
Bounties
To incentivize development and reward contributors, we adopt a simple bounty system. Contributors may be awarded bounties after completing a task (resolving an issue). Take a look at the issues labeled '💰bounty' in the main haveno
repository. Details and conditions for receiving a bounty.
Support
To bring Haveno to life, we need resources. If you have the possibility, please consider donating to the project:
47fo8N5m2VVW4uojadGQVJ34LFR9yXwDrZDRugjvVSjcTWV2WFSoc1XfNpHmxwmVtfNY9wMBch6259G6BXXFmhU49YG1zfB