Skip to content

Commit

Permalink
Aloha
Browse files Browse the repository at this point in the history
  • Loading branch information
aloha-markus authored and nahuhh committed Nov 12, 2024
1 parent ea8badd commit 3d841c7
Show file tree
Hide file tree
Showing 16 changed files with 141 additions and 87 deletions.
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,7 @@ haveno-desktop-stagenet:
--useLocalhostForP2P=false \
--useDevPrivilegeKeys=false \
--nodePort=9999 \
--appName=Haveno \
--appName=HAVENO_ALOHA \
--apiPassword=apitest \
--apiPort=3204 \
--useNativeXmrWallet=false \
Expand Down Expand Up @@ -474,7 +474,7 @@ haveno-daemon-mainnet:
--useLocalhostForP2P=false \
--useDevPrivilegeKeys=false \
--nodePort=9999 \
--appName=Haveno \
--appName=HAVENO_ALOHA \
--apiPassword=apitest \
--apiPort=1201 \
--useNativeXmrWallet=false \
Expand All @@ -486,7 +486,7 @@ haveno-desktop-mainnet:
--useLocalhostForP2P=false \
--useDevPrivilegeKeys=false \
--nodePort=9999 \
--appName=Haveno \
--appName=HAVENO_ALOHA \
--apiPassword=apitest \
--apiPort=1201 \
--useNativeXmrWallet=false \
Expand Down
73 changes: 15 additions & 58 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,85 +1,42 @@
<div align="center">
<img src="https://raw.githubusercontent.com/haveno-dex/haveno-meta/721e52919b28b44d12b6e1e5dac57265f1c05cda/logo/haveno_logo_landscape.svg" alt="Haveno logo">

![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/haveno-dex/haveno/build.yml?branch=master)
[![GitHub issues with bounty](https://img.shields.io/github/issues-search/haveno-dex/haveno?color=%23fef2c0&label=Issues%20with%20bounties&query=is%3Aopen+is%3Aissue+label%3A%F0%9F%92%B0bounty)](https://github.com/haveno-dex/haveno/issues?q=is%3Aopen+is%3Aissue+label%3A%F0%9F%92%B0bounty)
[![Twitter Follow](https://img.shields.io/twitter/follow/HavenoDEX?style=social)](https://twitter.com/havenodex)
[![Matrix rooms](https://img.shields.io/badge/Matrix%20room-%23haveno-blue)](https://matrix.to/#/#haveno:monero.social) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://github.com/haveno-dex/.github/blob/master/CODE_OF_CONDUCT.md)
<img src="https://raw.githubusercontent.com/haveno-dex/haveno-meta/721e52919b28b44d12b6e1e5dac57265f1c05cda/logo/haveno_logo_landscape.svg" alt="Haveno Aloha logo">
</div>

## What is Haveno?
## What is Haveno Aloha?

Haveno (pronounced ha‧ve‧no) is an open source platform to exchange [Monero](https://getmonero.org) for fiat currencies like USD, EUR, and GBP or other cryptocurrencies like BTC, ETH, and BCH.
Haveno Aloha (pronounced ha‧ve‧no) is an open source platform to exchange [Monero](https://getmonero.org) 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 **peer-to-peer**: trades on Haveno Aloha 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.
- Trades are **non-custodial**: Haveno Aloha 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](https://haveno.exchange/faq/) for more information.

## Installing Haveno

Haveno can be installed on Linux, macOS, and Windows by using a third party installer and network. 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](https://github.com/haveno-dex/haveno/blob/master/docs/installing.md) to build Haveno and connect to the test network.
- There are also **NO FEES** on Haveno Aloha, just volunteers, we operate purely on donations. You're able to do that on our website [https://www.haveno-aloha.com](https://www.haveno-aloha.com)

Alternatively, you can [start your own network](https://github.com/haveno-dex/haveno/blob/master/docs/create-mainnet.md).
## Installing Haveno Aloha

Note that Haveno is being actively developed. If you find issues or bugs, please let us know.
Haveno Aloha can be installed on Linux, macOS, and Windows by using a third party installer and network. We do not endorse any networks at this time.

## Main repositories

- **[haveno](https://github.com/haveno-dex/haveno)** - This repository. The core of Haveno.
- **[haveno-ts](https://github.com/haveno-dex/haveno-ts)** - TypeScript library for using Haveno.
- **[haveno-ui](https://github.com/haveno-dex/haveno-ui)** - A new user interface (WIP).
- **[haveno-meta](https://github.com/haveno-dex/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](#bounties).
> Note that Haveno Aloha is being actively developed. If you find issues or bugs, please let us know.
## 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:
Haveno Aloha 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](https://matrix.to/#/#haveno:monero.social)) relayed on IRC/Libera (`#haveno`)
- Development discussions: **Haveno Development** ([#haveno-dev:monero.social](https://matrix.to/#/#haveno-dev:monero.social)) relayed on IRC/Libera (`#haveno-dev`)
- General discussions: **Haveno Aloha**: (Community areas coming soon)
- Development discussions: **Haveno Aloha Development**: (Community areas coming soon)

Email: [email protected]
Website: [haveno.exchange](https://haveno.exchange)
Website: [https://www.haveno-aloha.com](https://www.haveno-aloha.com/)

## Contributing to Haveno
## Contributing to Haveno Aloha

See the [developer guide](docs/developer-guide.md) to get started developing for Haveno.
See the [developer guide](docs/developer-guide.md) to get started developing for Haveno Aloha.

See [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md) for our styling guides.

If you are not able to contribute code and want to contribute development resources, [donations](#support) 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'](https://github.com/haveno-dex/haveno/issues?q=is%3Aopen+is%3Aissue+label%3A%F0%9F%92%B0bounty) in the main `haveno` repository. [Details and conditions for receiving a bounty](docs/bounties.md).

## Support and sponsorships

To bring Haveno to life, we need resources. If you have the possibility, please consider [becoming a sponsor](https://haveno.exchange/sponsors/) or donating to the project:

### Monero

<p>
<img src="https://raw.githubusercontent.com/haveno-dex/haveno/master/media/donate_monero.png" alt="Donate Monero" width="115" height="115"><br>
<code>42sjokkT9FmiWPqVzrWPFE5NCJXwt96bkBozHf4vgLR9hXyJDqKHEHKVscAARuD7in5wV1meEcSTJTanCTDzidTe2cFXS1F</code>
</p>

If you are using a wallet that supports OpenAlias (like the 'official' CLI and GUI wallets), you can simply put `[email protected]` as the "receiver" address.

### Bitcoin

<p>
<img src="https://raw.githubusercontent.com/haveno-dex/haveno/master/media/donate_bitcoin.png" alt="Donate Bitcoin" width="115" height="115"><br>
<code>1AKq3CE1yBAnxGmHXbNFfNYStcByNDc5gQ</code>
</p>
Binary file added best.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion common/src/main/java/haveno/common/app/Version.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ private static int getSubVersion(String version, int index) {

// The version no. for the objects sent over the network. A change will break the serialization of old objects.
// If objects are used for both network and database the network version is applied.
public static final String P2P_NETWORK_VERSION = "A";
public static final String P2P_NETWORK_VERSION = "X";

// The version no. of the serialized data stored to disc. A change will break the serialization of old objects.
// VERSION = 0.5.0 -> LOCAL_DB_VERSION = 1
Expand Down
5 changes: 4 additions & 1 deletion core/src/main/java/haveno/core/alert/AlertManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,10 @@ protected List<String> getPubKeyList() {
"026c581ad773d987e6bd10785ac7f7e0e64864aedeb8bce5af37046de812a37854",
"025b058c9f2c60d839669dbfa5578cf5a8117d60e6b70e2f0946f8a691273c6a36");
case XMR_MAINNET:
return List.of();
return List.of(
"02d247b0ac0910ef0d578a490628fb13f38cb78b4fa52905f911b58fc726576bae",
"0385ffe2f04a8e25bbae8c0bfb56d231c95f242cc33e310fe0fdec174c60421a7c",
"033ac7c5320129b88febeaec86eb1492f036104afe6d0e660730a534a2e5594b3b");
default:
throw new RuntimeException("Unhandled base currency network: " + Config.baseCurrencyNetwork());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,11 @@ protected List<String> getPubKeyList() {
"026c581ad773d987e6bd10785ac7f7e0e64864aedeb8bce5af37046de812a37854",
"025b058c9f2c60d839669dbfa5578cf5a8117d60e6b70e2f0946f8a691273c6a36");
case XMR_MAINNET:
return List.of();
return List.of(
"03f072d10171eca09aa95de0102c1cf95026acc39653e5444f1e34894d63e19ea1",
"022647b30ce9dc8250e7f12b8c42a5648b7dbaaf5af5b9655ebe17a29bf76b3114",
"02b13bd04ec109f777e26a5608df924cb5afaaaf7ea87c414481b7a8d47893f98e",
"03b1cba37e2c63ac836539cb758473e537bc0bca0e5e4a2fc97a958fbf0bcd8e07");
default:
throw new RuntimeException("Unhandled base currency network: " + Config.baseCurrencyNetwork());
}
Expand Down
4 changes: 2 additions & 2 deletions core/src/main/java/haveno/core/app/HavenoExecutable.java
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public abstract class HavenoExecutable implements GracefulShutDownHandler, Haven

// TODO: regular expression is used to parse application name for the flatpak manifest, a more stable approach would be nice
// Don't edit the next line unless you're only editing in between the quotes.
public static final String DEFAULT_APP_NAME = "Haveno";
public static final String DEFAULT_APP_NAME = "HAVENO_ALOHA";

public static final int EXIT_SUCCESS = 0;
public static final int EXIT_FAILURE = 1;
Expand Down Expand Up @@ -126,7 +126,7 @@ public int execute(String[] args) {
System.exit(EXIT_FAILURE);
} catch (Throwable ex) {
System.err.println("fault: An unexpected error occurred. " +
"Please file a report at https://github.com/haveno-dex/haveno/issues");
"Please file a report at https://github.com/The-Aloha-Project/haveno-aloha/issues");
ex.printStackTrace(System.err);
System.exit(EXIT_FAILURE);
}
Expand Down
13 changes: 10 additions & 3 deletions core/src/main/java/haveno/core/filter/FilterManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,16 @@ public FilterManager(P2PService p2PService,

publicKeys = useDevPrivilegeKeys ?
Collections.singletonList(DevEnv.DEV_PRIVILEGE_PUB_KEY) :
List.of("0358d47858acdc41910325fce266571540681ef83a0d6fedce312bef9810793a27",
"029340c3e7d4bb0f9e651b5f590b434fecb6175aeaa57145c7804ff05d210e534f",
"034dc7530bf66ffd9580aa98031ea9a18ac2d269f7c56c0e71eca06105b9ed69f9");
List.of("02d247b0ac0910ef0d578a490628fb13f38cb78b4fa52905f911b58fc726576bae",
"0385ffe2f04a8e25bbae8c0bfb56d231c95f242cc33e310fe0fdec174c60421a7c",
"033ac7c5320129b88febeaec86eb1492f036104afe6d0e660730a534a2e5594b3b",
"03e0236f761955386e1dbcf60dc5956f808051e5ca6fae4b257a8f3acca8af7512",
"021a33309670fb00d11cb5e2bab97b2068f200feb5fdce1fb6eb0d0730ff730c53",
"03f072d10171eca09aa95de0102c1cf95026acc39653e5444f1e34894d63e19ea1",
"022647b30ce9dc8250e7f12b8c42a5648b7dbaaf5af5b9655ebe17a29bf76b3114",
"02b13bd04ec109f777e26a5608df924cb5afaaaf7ea87c414481b7a8d47893f98e",
"03b1cba37e2c63ac836539cb758473e537bc0bca0e5e4a2fc97a958fbf0bcd8e07"
);

banFilter.setBannedNodePredicate(this::isNodeAddressBannedFromNetwork);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,19 @@ protected List<String> getPubKeyList() {
"02d3beb1293ca2ca14e6d42ca8bd18089a62aac62fd6bb23923ee6ead46ac60fba",
"03fa0f38f27bdd324db6f933f7e57851dadf3b911e4db6b19dd0950492c4525a31",
"02a1a458df5acf4ab08fdca748e28f33a955a30854c8c1a831ee733dca7f0d2fcd",
"0374dd70f3fa6e47ec5ab97932e1cec6233e98e6ae3129036b17118650c44fd3de");
"0374dd70f3fa6e47ec5ab97932e1cec6233e98e6ae3129036b17118650c44fd3de"
);
case XMR_MAINNET:
return List.of();
return List.of(
"0259eb939d7ddd49fb5575e8c2b7dcff3ac9eee432b95d7a8ed05211c31c8f0260",
"0250bd83f4ef502b3cf44497f8553a9021c43278d869d06310aa843260c4733b8c",
"02acb5a62241f6eb2428aab090322bdc074ffe77bf656e8221f42f9ea1db34c8e6",
"02d96f8239f44f5b45846585eb062453f0af514d4e94324ffe783e8bdc89705b6e",
"03b1f75164b569227a38aa30d6711ffe702039c81a14d0fc8b87c08d2d1cd927ee",
"0294d8ac9e16f5c6b918e24ac8fe2c903d758290ba080b6cfef35fe60852c7940f",
"038e971d724bd4cfbba7e9d18d52d0cc377b30ac5aabe12298a62f85425dfcd5c6",
"026e457342a0af072bb87eba22a89a5cd9a6af3abdfcfe11aeeb3718c4a1a34407"
);
default:
throw new RuntimeException("Unhandled base currency network: " + Config.baseCurrencyNetwork());
}
Expand Down
12 changes: 6 additions & 6 deletions core/src/main/java/haveno/core/trade/HavenoUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,15 +80,15 @@
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 = "04-11-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"
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 double MAKER_FEE_PCT = 0.0015; // 0.15%
public static final double TAKER_FEE_PCT = 0.0075; // 0.75%
public static final boolean ARBITRATOR_ASSIGNS_TRADE_FEE_ADDRESS = false;
public static final double MAKER_FEE_PCT = 0.0001; // There must be a small fee for the transaction to complete 0.01%
public static final double TAKER_FEE_PCT = 0.0001; // There must be a small fee for the transaction to complete 0.01%
public static final double PENALTY_FEE_PCT = 0.02; // 2%

// other configuration
Expand Down Expand Up @@ -422,7 +422,7 @@ public static String getGlobalTradeFeeAddress() {
case XMR_STAGENET:
return "5B11hTJdG2XDNwjdKGLRxwSLwDhkbGg7C7UEAZBxjE6FbCeRMjudrpNACmDNtWPiSnNfjDQf39QRjdtdgoL69txv81qc2Mc";
case XMR_MAINNET:
throw new RuntimeException("Mainnet fee address not implemented");
return "8BjRRqGQgrG6H7SUqqm2ubNXPBpcvoE3f1mSXNszsgKfTXVsbf63TvRREkGUqwgV7JWHKtN5XP6W4bDgw1f5G86pFpAxaQG";
default:
throw new RuntimeException("Unhandled base currency network: " + Config.baseCurrencyNetwork());
}
Expand All @@ -435,7 +435,7 @@ public static String getBurnAddress() {
case XMR_STAGENET:
return "577XbZ8yGfrWJM3aAoCpHVgDCm5higshGVJBb4ZNpTYARp8rLcCdcA1J8QgRfFWTzmJ8QgRfFWTzmJ8QgRfFWTzmCbXF9hd";
case XMR_MAINNET:
return "46uVWiE1d4kWJM3aAoCpHVgDCm5higshGVJBb4ZNpTYARp8rLcCdcA1J8QgRfFWTzmJ8QgRfFWTzmJ8QgRfFWTzmCag5CXT";
return "83LoqtM5CRziDoDENAtzTJjnWBaYfz5VkjHD6f5McsfqPocbst2kJcRCYJE6cjBd7aHpTaNyoezLZfgFRNEjETdQUHuq1FM";
default:
throw new RuntimeException("Unhandled base currency network: " + Config.baseCurrencyNetwork());
}
Expand Down
1 change: 1 addition & 0 deletions core/src/main/resources/xmr_local.seednodes
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# nodeaddress.onion:port [(@owner,@backup)]
localhost:2002 (@devtest1)
localhost:2003 (@devtest2)

5 changes: 4 additions & 1 deletion core/src/main/resources/xmr_mainnet.seednodes
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
# nodeaddress.onion:port [(@owner,@backup)]
placeholder.onion:8000 (@placeholder)
5i6blbmuflq4s4im6zby26a7g22oef6kyp7vbwyru6oq5e36akzo3ayd.onion:2001 (@op1)
dx4ktxyiemjc354imehuaswbhqlidhy62b4ifzigk5p2rb37lxqbveqd.onion:2002 (@op2)
ajbqx4clnjlr7lmzoftuvpvmqafdiilidsgocvokx6bqj3okk56ccfqd.onion:2003 (@op3)

3 changes: 0 additions & 3 deletions core/src/main/resources/xmr_stagenet.seednodes
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
# nodeaddress.onion:port [(@owner)]
dl57jitswby4yhzpqpu7pwq6iyqg2x6vkio73araparbftlqoqxhvqad.onion:2002 (@devtest1)
3cqlkowdu766sto5wrdqpntpsi7kezwkkakc532i6jeiyu7hha726ead.onion:3003 (@devtest1)
4 changes: 2 additions & 2 deletions desktop/package/package.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ task packageInstallers {
}

//String appDescription = 'A decentralized monero exchange network.'
String appCopyright = '© 2024 Haveno'
String appCopyright = '© 2024 Haveno Aloha'
String appNameAndVendor = 'Haveno'

String commonOpts = new String(
Expand All @@ -278,7 +278,7 @@ task packageInstallers {
" --java-options --add-opens=java.base/java.lang.reflect=ALL-UNNAMED" +
" --java-options --add-opens=javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED" +
" --java-options -Djava.net.preferIPv4Stack=true" +
" --arguments --baseCurrencyNetwork=XMR_STAGENET"
" --arguments --baseCurrencyNetwork=XMR_MAINNET"
// Warning: this will cause guice reflection exceptions and lead to issues with the guice internal cache
// resulting in the UI not loading
// " --java-options -Djdk.module.illegalAccess=deny" +
Expand Down
8 changes: 4 additions & 4 deletions seednode/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ USER haveno

WORKDIR /home/haveno

RUN set -ex && git clone https://github.com/haveno-dex/haveno.git && \
cd haveno && \
RUN set -ex && git clone https://github.com/The-Aloha-Project/haveno-aloha.git && \
cd haveno-aloha && \
make skip-tests

WORKDIR /home/haveno/haveno
WORKDIR /home/haveno/haveno-aloha

ENTRYPOINT [ "./haveno-seednode" ]

CMD ["--baseCurrencyNetwork=XMR_STAGENET", "--useLocalhostForP2P=false", "--useDevPrivilegeKeys=false", "--nodePort=2002", "--appName=haveno-XMR_STAGENET_Seed_2002" ]
CMD ["--baseCurrencyNetwork=XMR_MAINNET", "--useLocalhostForP2P=false", "--useDevPrivilegeKeys=false", "--nodePort=2002", "--appName=haveno-XMR_MAINNET_Seed_2002" ]
Loading

0 comments on commit 3d841c7

Please sign in to comment.