Awesome
<!-- PROJECT LOGO --> <br /> <p align="center"> <a href="https://github.com/ergoMixer/ergoMixBack/"> <img src="data/logo.png" alt="Logo" width="150"> </a> <!-- <h3 align="center">Calamity</h3>O --> <p align="center"> Ergo Mixer <br /> <a href="https://github.com/ergoMixer/ergoMixBack/wiki"><strong>Explore the docs »</strong></a> <br /> <br /> <a href="#video-tutorial">View Demos</a> · <a href="https://github.com/ergoMixer/ergoMixBack/issues">Report Bug</a> · <a href="https://github.com/ergoMixer/ergoMixBack/issues">Request Feature</a> </p> </p> <!-- TABLE OF CONTENTS --> <details open="open"> <summary><h2 style="display: inline-block">Table of Contents</h2></summary> <ol> <li> <a href="#about-the-project">About The Project</a> </li> <li> <a href="#getting-started">Getting Started</a> <ul> <li><a href="#prerequisites">Prerequisites</a></li> <li><a href="#installation">Installation</a></li> </ul> </li> <li><a href="#usage">Usage</a></li> <li> <a href="#notes">Notes</a> <ul> <li><a href="#stealth-address">Stealth Address</a></li> <li><a href="#breaking-change">Breaking Change</a></li> </ul> </li> <li><a href="#roadmap">Roadmap</a></li> <li><a href="#contributing">Contributing</a></li> <li><a href="#license">License</a></li> <li><a href="https://discord.gg/MP7uajEmpP">Contact</a></li> <li><a href="#acknowledgements">Acknowledgements</a></li> </ol> </details> <!-- ABOUT THE PROJECT -->About The Project
ErgoMixer is a web application for mixing ergs and tokens based on Ergo platform. ErgoMixer is completely serverless; It only needs to connect to the explorer and a node (any node! no api_key is needed). For more information on how it works see here.
<!-- GETTING STARTED -->Getting Started
To get the Mixer up and running you have a few options:
- <a href="#quick-start-shell-script">Quick Start Shell Script</a> - Build from source or run the latest jar. (UNIX systems)
- <a href="#docker-quick-start">Docker Quick Start</a>
- <a href="#run-mixer">Download the latest
.jar
</a> - <a href="#manual-installation">Build from source</a>
Usage
When you open the Mixer, the home page displays information about the system and how each component works. There will also be a ErgoMixer dropdown available from your menu bar when running.
Video Tutorial
- ErgoMixer Tutorial Installation - Windows, Mac, JVM & Docker - Version 3.0.1 & Above
- ErgoMixer Tutorial Usage - Taking Fire - Version 3.0.1 & Above
Installation
Quick Start Shell Script
Open your favourite terminal and enter the following to build from source or download and run the latest .jar
:
wget https://raw.githubusercontent.com/ergoMixer/ergoMixBack/master/sh/install.sh
chmod +x install.sh
./install.sh
If you encounter any permission errors when attempting to run the script, please run chmod +x install.sh
from within the same directory.
Docker Quick Start
To run the ErgoMixer with default config (A Node and Explorer in Mainnet network) use:
$ docker run -p 127.0.0.1:9000:9000 \
--restart=always \
-v /path/on/host/to/ergo/database_and_logfile:/home/ergo/ergoMixer \
-d ergomixer/mixer:latest
To run the ErgoMixer with a custom config file use:
$ docker run -p 127.0.0.1:9000:9000 \
--restart=always \
-v /path/on/host/to/ergo/database_and_logfile:/home/ergo/ergoMixer \
-v <path-your-config-file>/yourConfig.conf:/home/ergo/mixer/application.conf \
-d ergomixer/mixer:latest
The database and log file will be in your host directory /path/on/host/to/ergo/database_and_logfile
; you can use 9000
port locally to load the mixer.
NOTE: The /path/on/host/to/ergo/database_and_logfile
directory must have 777
permission or have owner/group numeric id equal to 9052
to be writable by the container.
Manual Installation
Prerequisites
-
OpenJDK 8
Install an appropriate version of OpenJDK 8 from Here based on your OS. -
SBT 1.2.7
Depending on your OS, you can follow instructions in this page to install sbt.
Build the ErgoMixer:
-
Frontend
Use the following command to get the latest frontend:
$ git submodule update --init
Then build the
ergomixfront
by following these instructions.Then, use the built front in the backend by using the following command in
ergomixback
directory:$ mv ergomixfront/build/ mixer/public
-
Backend
Finally, build the backend:
$ cd ./mixer $ sbt assembly
The jar file will appear in
target/scala-2.12/
directory.
Run mixer
After building the project or downloading jar file, to run the ErgoMixer with default config (A node and explorer in Mainnet network) use:
$ java -jar ergoMixer-*.jar
Also to run the ErgoMixer with a custom config file use:
$ java -jar -D"config.file"=<path-your-config>/customConfig.conf ergoMixer-*.jar
You can use this config file and change it as you want.
The database will be saved in your home directory. This database contains all the information and secrets being used by the mixer, So, take good care of it.
<!-- NOTES -->Notes
Stealth Address
- Stealth Address documentation (to be updated soon) here.
- Use this tool to generate a
new payment address
from any Stealth Addresses.
Breaking Change
-
From version
3.0.0
database scheme is changed; So, please consider binding to a different location if you have previously used an older version. -
In order to buy SigmaUSD/SigmaRSV directly from the mixer, DO NOT SET withdrawal address when creating the mix/covert address and use "Set Later" option. Later, at the moment of buying SigmaUSD/SigmaRSV, set withdraw address and choose "SIG USD" option. Only completed boxes can be used for buying SigmaUSD/SigmaRSV.
-
If you are using manual config file for running mixer, make sure to add this setting in the config file, under section
play.http
, in order to use SigmaUSD/SigmaRSV support:play: { http { filters="filters.CorsFilters", fileMimeTypes = ${play.http.fileMimeTypes} """ wasm=application/wasm """ } filters { hosts { # Allow requests to example.com, its subdomains, and localhost:9000. allowed = ["localhost", "127.0.0.1"] } cors { pathPrefixes = ["/"] allowedOrigins = null, allowedHttpMethods = ["GET", "POST"] allowedHttpHeaders = null } } }
Roadmap
See the open issues for a list of proposed features (and known issues).
<!-- CONTRIBUTING -->Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE
for more information.