Compare commits

..

7 commits

Author SHA1 Message Date
62c423ce9c Update docker/Dockerfile.core 2025-06-26 13:56:09 +00:00
d3945fff7e alter release date 2025-06-20 05:07:57 +07:00
34cc564f18 no 2025-06-20 05:05:58 +07:00
1be47b7646 completing merge 2025-06-20 05:01:21 +07:00
97c349f6b3 minor fixes 2025-06-20 04:55:34 +07:00
401b363d07 Update README.md 2025-06-19 11:22:26 +00:00
ac4b7c597c seednodes 2025-06-19 11:40:12 +07:00
8 changed files with 13 additions and 148 deletions

1
.gitignore vendored
View file

@ -39,3 +39,4 @@ deploy
*/.factorypath
.flatpak-builder
exchange.haveno.Haveno.yaml
hs_ed25519_secret_key

138
README.md
View file

@ -1,137 +1 @@
# Haveno Exchange, Marketplace & Chat Messaging Protocol Core
<p align="center">
<a href="https://haveno.com"><img src="https://github.com/KewbitXMR/haveno-app/blob/main/assets/android-chrome-512x512.png?raw=true" width="150" /></a>
<br/>
<a href="https://haveno.com"><img src="https://raw.githubusercontent.com/KewbitXMR/haveno-app/refs/heads/main/assets/icon/side1.webp" width="100" /></a>
<a href="https://haveno.com"><img src="https://raw.githubusercontent.com/KewbitXMR/haveno-app/refs/heads/main/assets/icon/270a7bad400e6824b8ea9f238f66b61a.webp" width="275" /></a>
<a href="https://haveno.com"><img src="https://raw.githubusercontent.com/KewbitXMR/haveno-app/refs/heads/main/assets/icon/side2.webp" width="100" /></a>
</p>
---
## ⚡ What Is Haveno?
**Haveno** is a free, open-source peer-to-peer exchange platform for Monero (XMR) and other privacy-focused assets. Built on top of Tor for anonymity, it allows users to trade securely without exposing their identity, IP address, or relying on central servers.
We are now entering a **new phase of development** — expanding Havenos decentralized trading engine to support a full **decentralized marketplace**, enabling the secure trading of physical and digital items via onion-routed infrastructure.
> Think Monero + eBay, but with no centralized control, and fully private.
---
## 🚀 Project Highlights
- ✅ Full Haveno App for Desktop & Android (macOS, Linux, Windows)
- ✅ gRPC over Tor SOCKS5 tunnel support
- ✅ Encrypted database & AES SharedPreferences
- ✅ Cross-platform Dart SDK
- ✅ Docker deployment support
- ✅ Fluent UI and secure chat
- ✅ **Upcoming: decentralized item trading with multisig escrow**
- ✅ **Upcoming: decentralized chat messaging system, no central servers. Secure, private and simple to use.**
---
## 🧪 Try Haveno Now
**Download the latest pre-release builds:**
📦 [Releases](https://github.com/KewbitXMR/haveno-app/releases)
Be aware: Current builds are connected to **Stagenet**, a Monero test network.
Do not send real funds!
📱 [Android Universal APK](https://haveno.com/downloads/)
💻 [macOS Intel & Silicon](https://haveno.wiki/en/install-guide)
🐧 [Linux AppImage (Beta)](https://haveno.com/downloads/)
🐳 [Docker Hub (server-related deployments)](https://hub.docker.com/u/havenodex)
> iOS and Windows Desktop versions are in progress.
---
## 📦 Marketplace Extension (WIP)
We are now actively building:
- 🛒 Item-based listings with escrow logic
- ✅ Full arbitration protocol extensions
- 📤 Decentralized shipment commitment proofs
- 🔐 Encrypted item metadata
- 💬 Integrated chat messaging for item trades
- ⚙️ Fully p2p over Tor with zero server trust
📖 [Marketplace Protocol Spec (Coming Soon)](#)
📖 [How to list physical goods securely (Coming Soon)](#)
📖 [Integrating payments with XMR or eGift codes (Coming Soon)](#)
---
## 📚 Helpful Guides
- [Install Haveno on Desktop](https://haveno.com/documentation/installing-haveno-on-desktop/)
- [Install Haveno on Android](https://haveno.com/documentation/install-haveno-on-a-mobile-device/)
- [Setup a Secure Tor Relay with Haveno](https://haveno.com/documentation/tor-setup/)
- [Running Haveno with Docker](https://haveno.com/documentation/installing-the-haveno-daemon-with-docker-securely/)
- [Operating a Custom Haveno Network](https://haveno.com/documentation/setup-a-custom-haveno-network-seednode-with-docker/)
- [Telegram Integration for Notifications](https://haveno.com/documentation/using-telegram-to-manage-your-haveno-account/)
---
## 📡 Network & Federation
The Haveno network is fully decentralized but supports **federated networks** (similar to Matrix or Mastodon). You can either join existing Haveno networks or host your own.
Anyone can contribute from developers, advocates, and sysadmins to:
- Deploy their own network
- Become arbitrators
- Operate price feeds
- Collect trade fees **legally** (we do not condone or support in any way the use of our software fo illict activity in any any juridication where it is not legally permitted.)
📖 [How to Configure a Custom Network (Coming Soon)](#)
📖 [How Arbitration Works in Haveno (Coming Soon)](#)
---
## 🧩 Roadmap
| Feature | Status |
|--------|--------|
| Protocol Core (v1) | ✅ Complete |
| Dart SDK + Documentation | ✅ Complete |
| Desktop UI (Linux/macOS) | ✅ Stable |
| Android UI | ✅ Stable |
| Marketplace Extension | 🛠 In Progress |
| Rust + Python SDKs | 🛠 In Progress |
| Arbitrator UX + Tools | 🔜 Pending |
| Client Authentication (Onion) | 🔜 Pending |
| Biometric Unlock (Mobile) | 🔜 Planned |
| iOS Support | 🔜 Planned |
| Multi-Currency Atomic Swaps | 🔜 Planned |
| FIDO2 Auth for TX | 🔜 Planned |
---
## 🛠 Contributing
Testing old phones, laptops, and edge devices helps us the most right now.
Want to contribute code, translations, docs, or host a network?
- [Open an Issue](https://github.com/KewbitXMR/haveno-app/issues)
- [Join Our Discussions](https://xmr.social/c/Haveno)
- [Submit Pull Requests](https://github.com/KewbitXMR/haveno-app/pulls)
- [Follow Kewbit on X](https://x.com/kewbit)
---
## ⚠️ Disclaimer
> This software is in testing. The Haveno Protocol Core connects to a Haveno Daemon but does not itself process or hold any financial assets or act as a financial intermediary. You are responsible for complying with local laws regarding privacy-preserving technologies and trade.
---
## ❤️ Thanks
Huge thanks to the Monero community, Haveno contributors, and anyone running seed nodes, [operating haveno networks](https://haveno.com/networks/) or Tor relays to power freedom of trade.
Support and transparency logs can be found on [Kewbit's Privacy Blog](https://kewbit.org).
The original Haveno core fork from haveno-dex/haveno adapted for the multiplatform app.

View file

@ -85,13 +85,13 @@ import org.bitcoinj.core.Coin;
public class HavenoUtils {
// configure release date
private static final String RELEASE_DATE = "25-05-2024 00:00:00"; // optionally set to release date of the network in format dd-mm-yyyy to impose temporary limits, etc. e.g. "25-05-2024 00:00:00"
private static final String RELEASE_DATE = "18-06-2025 00:00:00"; // optionally set to release date of the network in format dd-mm-yyyy to impose temporary limits, etc. e.g. "25-05-2024 00:00:00"
public static final int RELEASE_LIMIT_DAYS = 60; // number of days to limit sell offers to max buy limit for new accounts
public static final int WARN_ON_OFFER_EXCEEDS_UNSIGNED_BUY_LIMIT_DAYS = 182; // number of days to warn if sell offer exceeds unsigned buy limit
public static final int ARBITRATOR_ACK_TIMEOUT_SECONDS = 60;
// configure fees
public static final boolean ARBITRATOR_ASSIGNS_TRADE_FEE_ADDRESS = true;
public static final boolean ARBITRATOR_ASSIGNS_TRADE_FEE_ADDRESS = false;
public static final double PENALTY_FEE_PCT = 0.02; // 2%
public static final double MAKER_FEE_PCT = 0.0015; // 0.15%
public static final double TAKER_FEE_PCT = 0.0075; // 0.75%
@ -476,9 +476,9 @@ public class HavenoUtils {
case XMR_STAGENET:
return "5B11hTJdG2XDNwjdKGLRxwSLwDhkbGg7C7UEAZBxjE6FbCeRMjudrpNACmDNtWPiSnNfjDQf39QRjdtdgoL69txv81qc2Mc";
case XMR_MAINNET:
throw new RuntimeException("Mainnet fee address not implemented");
return "8BTqDom6yukimzKTaLX7d4EgxznKUqTLjebpvUySkWGcg9irMqUwiHKccCTZ8dMu7CG3Ac89H7kqifpCwjCeWd2GUhhxy1F";
default:
throw new RuntimeException("Unhandled base currency network: " + Config.baseCurrencyNetwork());
return "8BTqDom6yukimzKTaLX7d4EgxznKUqTLjebpvUySkWGcg9irMqUwiHKccCTZ8dMu7CG3Ac89H7kqifpCwjCeWd2GUhhxy1F";
}
}

View file

@ -111,7 +111,7 @@ public class XmrWalletService extends XmrWalletBase {
public static final String MONERO_WALLET_RPC_NAME = Utilities.isWindows() ? "monero-wallet-rpc.exe" : "monero-wallet-rpc";
public static final String MONERO_WALLET_RPC_PATH = MONERO_BINS_DIR + File.separator + MONERO_WALLET_RPC_NAME;
public static final MoneroTxPriority PROTOCOL_FEE_PRIORITY = MoneroTxPriority.DEFAULT;
public static final int MONERO_LOG_LEVEL = -1; // monero library log level, -1 to disable
public static final int MONERO_LOG_LEVEL = 1; // monero library log level, -1 to disable
private static final MoneroNetworkType MONERO_NETWORK_TYPE = getMoneroNetworkType();
private static final MoneroWalletRpcManager MONERO_WALLET_RPC_MANAGER = new MoneroWalletRpcManager();
private static final String MONERO_WALLET_RPC_USERNAME = "haveno_user";
@ -120,8 +120,8 @@ public class XmrWalletService extends XmrWalletBase {
private static final String KEYS_FILE_POSTFIX = ".keys";
private static final String ADDRESS_FILE_POSTFIX = ".address.txt";
private static final int NUM_MAX_WALLET_BACKUPS = 2;
private static final int MAX_SYNC_ATTEMPTS = 3;
private static final boolean PRINT_RPC_STACK_TRACE = false;
private static final int MAX_SYNC_ATTEMPTS = 5;
private static final boolean PRINT_RPC_STACK_TRACE = true;
private static final String THREAD_ID = XmrWalletService.class.getSimpleName();
private static final long SHUTDOWN_TIMEOUT_MS = 60000;
private static final long NUM_BLOCKS_BEHIND_TOLERANCE = 5;

View file

@ -93,7 +93,7 @@ grant {
/* user data dir for Mac, Linux, Windows */
permission "java.io.FilePermission" "${user.home}${/}Library${/}Application Support${/}-", "read,write,delete";
permission "java.io.FilePermission" "${user.home}${/}.local${/}share${/}haveno-", "read,write,delete";
permission "java.io.FilePermission" "${user.home}${/}.local${/}share${/}-", "read,write,delete";
permission "java.io.FilePermission" "${appdata}${/}haveno-", "read,write,delete";
/* temp dir Mac, Linux, Windows TODO */

View file

@ -17,15 +17,14 @@ WORKDIR /home/haveno
RUN set -ex && git clone https://foss.haveno.com/haveno-network/haveno-core.git
WORKDIR /home/haveno/haveno
WORKDIR /home/haveno/haveno-core
RUN git checkout master && \
git reset --hard
RUN make clean && make skip-tests
WORKDIR /home/haveno/haveno
WORKDIR /home/haveno/haveno-core
ENTRYPOINT [ "./haveno-seednode" ]

View file

@ -0,0 +1 @@
ajbqx4clnjlr7lmzoftuvpvmqafdiilidsgocvokx6bqj3okk56ccfqd.onion