diff --git a/BeastXUD.md b/BeastXUD.md index 26711c1..eff8372 100644 --- a/BeastXUD.md +++ b/BeastXUD.md @@ -29,17 +29,11 @@ Two options are available: ## Setup -1. [Download Ubuntu Server](https://ubuntu.com/download/server) onto your computer. Any other linux distribution supporting docker is also fine. +1. [Download Ubuntu Server 20.04 LTS](https://ubuntu.com/download/server) onto your computer. Any other linux distribution supporting docker is also fine. This guide was written assuming `Ubuntu Server 20.04 LTS`. 2. Insert a USB Stick into your computer and [create the a bootable USB Stick](https://ubuntu.com/tutorials/tutorial-create-a-usb-stick-on-ubuntu) with the ubuntu image you just downloaded. 3. Open your Mini PC, plug in RAM & drives, close it, connect it to your router via ethernet cable and to a power supply. Connect a screen via HDMI, a USB keyboard, the created bootable USB Stick, fire the Mini PC up and follow the the inital setup instructions. 4. Update ubuntu via `sudo apt update && sudo apt upgrade` -5. Install docker following the [official instructions](https://docs.docker.com/install/linux/docker-ce/ubuntu/). At the time of writing, ubuntu 19.10 was still not supported in the official docker repos. If you see an error along the lines `'docker-ce' has no installation candidate` in step 4 of the docker instructions, run this instead: -```bash -sudo add-apt-repository \ - "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ - disco \ - stable" -``` +5. If you are using Ubuntu 20.04 LTS, install docker by running `sudo apt install docker.io`. Otherwise if you are using any version besides Ubuntu 20.04, follow the [official instructions](https://docs.docker.com/install/linux/docker-ce/ubuntu/) to install docker. 6. Add new user `xud`: ```bash ubuntu@ubuntu:~$ sudo adduser xud diff --git a/Developer Guide.md b/Developer Guide.md index d4257f2..9adaaee 100644 --- a/Developer Guide.md +++ b/Developer Guide.md @@ -53,8 +53,8 @@ xud@ubuntu:~$ nano ~/.xud-docker/simnet/simnet.conf expose-ports = ["30009:10009"] [lndltc] expose-ports = ["31009:10009"] -[raiden] -expose-ports = ["25001:5001"] +[connext] +expose-ports = ["25040:5040"] # CTRL+S, CTRL+X. ``` 2. Start the `xud-simnet` with default settings as described [here](Market%20Maker%20Guide.md). @@ -88,10 +88,10 @@ nomacaroons = false port = 31009 certpath = "/home//lndltc/tls.cert" macaroonpath = "/home//lndltc/data/chain/litecoin/simnet/admin.macaroon" -[raiden] +[connext] disable = false host = "localhost" -port = 25001 +port = 25040 ``` 8. Now you can start your local `xud` instance and it should connect to the running `xud-simnet` docker environment. You can check that everything works with `~/xud/bin$ ./xucli -p 28886 getinfo`. Ready to test your changes on `xud-simnet`! diff --git a/Market Maker Guide.md b/Market Maker Guide.md index bd24a6b..e894b47 100644 --- a/Market Maker Guide.md +++ b/Market Maker Guide.md @@ -9,9 +9,9 @@ This guide is written for individuals and entities looking to run xud in order t ## Three Networks -1. **Simnet**. `Status: maintenance | Mode: light | Required CPUs: 2 , RAM: 2 GB , Disk: 1 GB , Time: 15 mins` +1. **Simnet**. `Status: live | Mode: light | Required CPUs: 2 , RAM: 2 GB , Disk: 1 GB , Time: 15 mins` - Private chains which are maintained by Exchange Union. We’ll automatically open channels to you and push over some coins, you’ll be trading against our bots and anyone else running simnet. It’s the perfect playground to see how things work and get familiar with `xucli` commands. It’s easy: run the launch script, wait for about 15 minutes and you are ready to go. **You want to start with this!** + Private chains which are maintained by Exchange Union. We’ll automatically open channels to you and push over some coins, you’ll be trading against our bots and anyone else running simnet. It’s the perfect playground to see how things work and get familiar with `xucli` commands. It’s easy: run the launch script, create the environment, wait for about 15 minutes for your balance (`getbalance`) and you are ready to go. **You want to start with this!** 2. **Testnet**. `Status: maintenance | Mode: light/full | Required CPUs: 2/4 , RAM: 2/16 GB , Disk: 1/200 GB , Time: 15 mins/5-24h` @@ -34,9 +34,9 @@ Since market makers should be online 24/7 and we are ushering in a post-cloud er ## Software -* Linux or macOS. [Windows WSL 2](https://docs.microsoft.com/en-us/windows/wsl/wsl2-install) support is currently experimental and not tested regularly. This guide was written using ubuntu 18.04. +* Linux or macOS. [Windows WSL 2](https://docs.microsoft.com/en-us/windows/wsl/wsl2-install) support is currently experimental and not tested regularly. This guide was written assuming Ubuntu 20.04 LTS. -* Docker >= 18.09. Check with `docker --version`. If you do not have docker installed yet, follow the official [install instructions](https://docs.docker.com/install/). Also make sure that the current user can run docker (without adding `sudo`). Test with `docker run hello-world`. If this fails, [follow these instructions](https://docs.docker.com/install/linux/linux-postinstall/). +* Docker >= 18.09. Check with `docker --version`. If you do not have docker installed yet and you are using Ubuntu 20.04 LTS, install docker by running `sudo apt install docker.io`. Otherwise if you are using any version besides Ubuntu 20.04, follow the [official install instructions](https://docs.docker.com/install/). Also make sure that the current user can run docker (without adding `sudo`). Test with `docker run hello-world`. If this fails, [follow these instructions](https://docs.docker.com/install/linux/linux-postinstall/). # The Setup @@ -52,7 +52,7 @@ xud@ubuntu:~$ nano ~/.xud-docker/mainnet/mainnet.conf mode = "neutrino" [litecoind] mode = "neutrino" -# add these lines for raiden to use your infura account instead of a local geth node: +# add these lines for connext to use your infura account instead of a local geth node: [geth] mode = "infura" infura-project-id = "abc" @@ -152,7 +152,7 @@ mainnet > status ├───────────┼────────────────────────────────────────────────┤ │ lndltc │ Waiting for sync │ ├───────────┼────────────────────────────────────────────────┤ -│ raiden │ Container running │ +│ connext │ Waiting for sync │ ├───────────┼────────────────────────────────────────────────┤ │ xud │ Waiting for sync │ └───────────┴────────────────────────────────────────────────┘ @@ -175,7 +175,7 @@ mainnet > status ├───────────┼────────────────────────────────────────────────┤ │ lndltc │ Waiting for sync │ ├───────────┼────────────────────────────────────────────────┤ -│ raiden │ Container running │ +│ connext │ Waiting for sync │ ├───────────┼────────────────────────────────────────────────┤ │ xud │ Waiting for sync │ └───────────┴────────────────────────────────────────────────┘ @@ -198,7 +198,7 @@ mainnet > status ├───────────┼────────────────────────────────────────────────┤ │ lndltc │ Ready │ ├───────────┼────────────────────────────────────────────────┤ -│ raiden │ Ready │ +│ connext │ Ready │ ├───────────┼────────────────────────────────────────────────┤ │ xud │ Ready │ └───────────┴────────────────────────────────────────────────┘ @@ -226,13 +226,13 @@ mainnet > listpeers -j "inbound": false, "pairsList": [ "LTC/BTC", - "WETH/BTC", + "ETH/BTC", "BTC/DAI", "LTC/DAI" ], "xudVersion": "1.0.0-beta", "secondsConnected": 100, - "raidenAddress": "0xe802431257a1d9366BD5747F0F52bAd25A6C3092" + "connextAddress": "0xe802431257a1d9366BD5747F0F52bAd25A6C3092" } ] } @@ -245,7 +245,7 @@ On Simnet simply wait for about 15 minutes and you'll have channels and are read ```bash lndbtc-lncli newaddress p2wkh #Send BTC to this address lndltc-lncli newaddress p2wkh #Send LTC to this address -getinfo -j #Send WETH/DAI to your raiden address +getinfo -j #Send ETH/ETH-ERC20 Tokens to your connext address ``` The next step will have an automated option in future, but currently is not trivial: choose a xud node to open a channel with. Ideally, these are nodes you expect to trade with regularly. If you are unsure, you can open a channel with our xud node available at xud1.exchangeunion.com. Opening a 0.1 btc channel would look like: @@ -290,7 +290,7 @@ Balance: ├──────────┼───────────────┼────────────────────────────┼───────────────────────────────┤ │ LTC │ 21 │ 11 │ 10 │ ├──────────┼───────────────┼────────────────────────────┼───────────────────────────────┤ -│ WETH │ 500 │ 500 │ 0 │ +│ ETH │ 500 │ 500 │ 0 │ └──────────┴───────────────┴────────────────────────────┴───────────────────────────────┘ ``` @@ -316,7 +316,7 @@ Balance: ├──────────┼───────────────┼────────────────────────────┼───────────────────────────────┤ │ LTC │ 21 │ 11 │ 10 │ ├──────────┼───────────────┼────────────────────────────┼───────────────────────────────┤ -│ WETH │ 500 │ 500 │ 0 │ +│ ETH │ 500 │ 500 │ 0 │ └──────────┴───────────────┴────────────────────────────┴───────────────────────────────┘ ``` @@ -351,7 +351,6 @@ rpc-password = "pass" zmqpubrawblock = "192.168.1.42:28332" zmqpubrawtx = "192.168.1.42:28333" ``` -* Raiden currently requires direct channels with trading partners. We have a temporary check in place, that discards raiden-related orders (all pairs which include WETH, DAI...), if `xud` can't find a direct channel to the trading partner. You can switch this check off by setting `raidenDirectChannelChecks=false` in your `xud.conf`. Before you do that, read [this explainer of the issue](https://github.com/ExchangeUnion/xud/issues/1068). * Permanently set the alias `xud` to launch `xud ctl` from anywhere: Add the line `alias xud="bash ~/xud.sh"` to the end of `~/.bashrc` or `~/.bash_aliases` on Linux and `bash_profile` on Mac, then `source` the file. * `xud ctl` allows to use an L1/L2 client's cli: @@ -361,12 +360,11 @@ litecoin-cli --help geth --help lndbtc-lncli --help lndltc-lncli --help -raiden --help xucli --help ``` * To inspect logs: ```bash -logs bitcoind/litecoind/geth/lndbtc/lndltc/raiden/xud +logs bitcoind/litecoind/geth/lndbtc/lndltc/connext/xud ``` * You can `exit` from `xud ctl` any time and re-enter with `bash ~/xud.sh`. * A reboot of your host machine does **not** restart your `xud-docker` environment by default. You will need to run `bash ~/xud.sh` and `unlock` your environment. @@ -386,5 +384,5 @@ rm -rf /custom/mainnet/dir * [litecoind config options](https://litecoin.info/index.php/Litecoin.conf#litecoin.conf_Configuration_File) * [geth config options](https://github.com/ethereum/go-ethereum/blob/master/README.md#configuration) * [lnd config options](https://github.com/lightningnetwork/lnd/blob/master/sample-lnd.conf) -* [raiden config options](https://raiden-network.readthedocs.io/en/stable/config_file.html) +* [connext config options](https://docs.connext.network/en/latest/userDocumentation/clientInstantiation.html#client-options) * [xud config options](https://github.com/ExchangeUnion/xud/blob/master/sample-xud.conf) diff --git a/Native Installation.md b/Native Installation.md index d9ca781..6836660 100644 --- a/Native Installation.md +++ b/Native Installation.md @@ -26,7 +26,7 @@ sudo npm install xud -g --unsafe-perm ## Daemonize `xud` -If you want to daemonize `xud` so it starts on boot without needing its own terminal, you can do this using `systemd`. The following sample `systemd` configuration was tested on Ubuntu 18.04: +If you want to daemonize `xud` so it starts on boot without needing its own terminal, you can do this using `systemd`. The following sample `systemd` configuration was tested on Ubuntu 20.04: ```bash [Unit] diff --git a/Native SimNet.md b/Native SimNet.md deleted file mode 100644 index 3e3a63a..0000000 --- a/Native SimNet.md +++ /dev/null @@ -1,225 +0,0 @@ -We recommend to use the [xud-docker](User%20Guide.md) setup to trade on the `xud-simnet`; it does not require installation of `xud` or any dependencies. For a native installation, installing various dependencies of underlying clients, follow the guide below. - -## Goal - -This guide describes how to setup `xud` and connect to and trade on the XUD Simulation Network (`xud-simnet`). It should take about 10 minutes to complete all steps. - -`xud` is in beta stage and the `xud-simnet` aims to give a 'look & feel' of how things are working with a convenient, automated setup. The `xud-simnet` uses magic simnet coins at all times, no risk of loosing your precious bitcoin if something should go wrong. - -Once the setup of `xud-simnet` is completed, you will be able to query the orderbook, place orders, and experiment with `xud`'s rich set of commands (`xucli --help`). When a match is found in the network, your orders will automatically be executed & settled instantly via an atomic swap. `xud-simnet` currently supports atomic swaps between BTC, LTC & ERC20 tokens. This guide will show how to install dependencies like `go` and how to use the `xud-simnet` to set up lightning daemons (LND) for bitcoin (BTC) and litecoin (LTC), raiden for ERC20 tokens and `xud` and to connect to `xud-simnet`. This guide is written for Linux & macOS and suitable for everyone that knows how to use a command line. [Windows WSL 2](https://docs.microsoft.com/en-us/windows/wsl/wsl2-install) support is currently experimental. - -## Describing the Setup - -`xud-simnet` spins up several components on your machine which together provide support for exchanging order information and executing atomic swaps between BTC,LTC & ERC20 tokens on the lightning network & raiden network. It will setup the following components: - -- `lndbtc` - payment channel implementation for the bitcoin network, connecting to our remote btcd instance (which is mining the bitcoin simnet chain) via neutrino -- `lndltc` - payment channel implementation for the litecoin network, connecting to our remote ltcd instance (which is mining the litecoin simnet chain) via neutrino -- `raiden` - payment channel implementation for the ethereum network, connecting to our remote geth instance (which is mining the ethereum simnet chain) -- `xud` - Exchange Union's OpenDEX node, managing orders and clients above - -## Installation - -### Prerequisites - -Make sure you have the below programs installed: -- [git](https://gist.github.com/derhuerst/1b15ff4652a867391f03#file-linux-md) -- make (`sudo apt-get install make`) -- [node.js + npm](https://github.com/nodesource/distributions/blob/master/README.md#debinstall) (v12.x or higher) -- python 3.7 or higher -- go 1.13 or higher -- killall (`sudo apt-get install psmisc`) - -### Installing Go - -If Go is not yet installed on your system, use the following command to install it: - -``` -sudo apt-get install golang-1.13-go -``` - -If go is not included in your package manager, follow the official [install instructions](https://golang.org/doc/install) or add a repository which contains it, e.g. [this one for Ubuntu](https://github.com/golang/go/wiki/Ubuntu). Note, that `golang-1.13-go` puts binaries in `/usr/lib/go-1.13/bin`. If you want them on your PATH, you need to make that change yourself. Alternatively, you can create a softlink with - -``` -sudo ln -s /usr/lib/go-1.13/bin/go /usr/local/bin/go -``` - -### Repository Checkout - -``` -git clone https://github.com/ExchangeUnion/xud-simnet.git ~/xud-simnet -``` - -This clones the `xud-simnet` directory into your home directory. - -### Setup ~/.bashrc - -To enable access to the scripts from anywhere run: - -``` -source ~/xud-simnet/setup.bash -``` - -Please note that the `setup.bash` script sets your `$GOPATH` to `~/xud-simnet/go`. All changes from `setup.bash` are temporary and only active for the current terminal session. You can run - -``` -echo "source ~/xud-simnet/setup.bash" >> ~/.bashrc -source ~/.bashrc -``` - -to make these changes permanent. - -### Installation - -Install all components with - -``` -xud-simnet-install -``` - -It could take several minutes, depending on the speed of your machine & connection, until you see `Ready!`. - -### Starting - -You can start all components with - -``` -xud-simnet-start -``` - -Since `neutrino` needs to sync the blocks of the simnet when started for the first time, it could take some minutes until you see `Ready!`. As long as you see the process advancing in the terminal, we'd ask you to be patient and keep the process running. - -### Stopping - -Gracefully stop the environment with `xud-simnet-stop`. - -### Payment Channels - -Payment channels are used to instantly settle trades via cross chain atomic swaps with peers. The setup is automated and it can take 10 minutes or more for your payment channels to be ready (the `xud-simnet` features one minute block times). - -### Final check - -Once you see `Ready!`, run - -``` -xucli getinfo -``` - -and you should see something similar to - -``` -General XUD Info -┌───────────────┬────────────────────────────────────────────────────────────────────┐ -│ Status │ Ready │ -├───────────────┼────────────────────────────────────────────────────────────────────┤ -│ Alias │ │ -├───────────────┼────────────────────────────────────────────────────────────────────┤ -│ Node Key │ 03fe7f3b78cb5cba37d8c60318f612361bcb1a85d09498a5b46ea0f4ac399902ed │ -├───────────────┼────────────────────────────────────────────────────────────────────┤ -│ Address │ │ -├───────────────┼────────────────────────────────────────────────────────────────────┤ -│ Network │ simnet │ -├───────────────┼────────────────────────────────────────────────────────────────────┤ -│ Version │ 1.0.0-beta.1-da08b2a │ -├───────────────┼────────────────────────────────────────────────────────────────────┤ -│ Peers │ 1 │ -├───────────────┼────────────────────────────────────────────────────────────────────┤ -│ Pairs │ 4 │ -├───────────────┼────────────────────────────────────────────────────────────────────┤ -│ Own orders │ 0 │ -├───────────────┼────────────────────────────────────────────────────────────────────┤ -│ Peer orders │ 3 │ -├───────────────┼────────────────────────────────────────────────────────────────────┤ -│ Pending swaps │ [] │ -└───────────────┴────────────────────────────────────────────────────────────────────┘ - - -Raiden info: -┌──────────┬────────────────────────────────────────────┐ -│ Status │ raiden has no active channels │ -├──────────┼────────────────────────────────────────────┤ -│ Version │ 0.100.5a1.dev162-2217bcb │ -├──────────┼────────────────────────────────────────────┤ -│ Address │ 0xE63eff732aA623300EAe509D1ADF9436295B543c │ -├──────────┼────────────────────────────────────────────┤ -│ Channels │ Active: 2 | Pending: 0 | Closed: 0 │ -├──────────┼────────────────────────────────────────────┤ -│ Network │ raiden simnet │ -└──────────┴────────────────────────────────────────────┘ - - -LND-BTC Info: -┌──────────┬────────────────────────────────────┐ -│ Status │ Ready │ -├──────────┼────────────────────────────────────┤ -│ Version │ 0.9.1-beta commit=v0.9.1-beta │ -├──────────┼────────────────────────────────────┤ -│ Address │ │ -├──────────┼────────────────────────────────────┤ -│ Alias │ BTC@K-Yoga │ -├──────────┼────────────────────────────────────┤ -│ Channels │ Active: 1 | Pending: 0 | Closed: 0 │ -├──────────┼────────────────────────────────────┤ -│ Network │ bitcoin simnet │ -└──────────┴────────────────────────────────────┘ - - -LND-LTC Info: -┌──────────┬────────────────────────────────────┐ -│ Status │ Ready │ -├──────────┼────────────────────────────────────┤ -│ Version │ 0.9.0-beta commit=v0.9.0-beta │ -├──────────┼────────────────────────────────────┤ -│ Address │ │ -├──────────┼────────────────────────────────────┤ -│ Alias │ LTC@K-Yoga │ -├──────────┼────────────────────────────────────┤ -│ Channels │ Active: 1 | Pending: 0 | Closed: 0 │ -├──────────┼────────────────────────────────────┤ -│ Network │ litecoin simnet │ -└──────────┴────────────────────────────────────┘ -``` - -with one active channel for `lndbtc`, `lndltc` & raiden. If so, you are finally ready to rumble. Let's do some trades! - -### Trading - -`xud` is now connected to `xud-simnet` which includes three permanent nodes operated by Exchange Union. You can view these by running - -``` -xucli listpeers -``` - -The output of connected peers should contain - -``` -"address": "xud1.simnet.exchangeunion.com:8885", -"nodePubKey": "02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6", -``` - -You already received existing orders from the network. You can view these with - -``` -xucli orderbook -``` - -Let's execute a test order to trigger a match and execution via atomic swap by e.g. buying 0.5 litecoin for a price of 0.0079 bitcoin per litecoin - -``` -xucli buy 0.5 LTC/BTC 0.0079 -``` - -which should result in - -``` -swapped 0.5 LTC with peer order c0de48a0-0b90-11e9-97c6-95f0014144a4 -``` - -Currently the trading bots of xud1 is configured to replace successfully orders when the quantity was completely filled. `xud-simnet` features larger BTC and LTC lightning channels to support real-world order sizes. - -### Updates & useful commands - -`xud-simnet-start` automatically checks for updates and installs these. If an update fails or for any other unexpected errors, please [report the issue](https://github.com/ExchangeUnion/xud-simnet/issues). Optionally use `xud-simnet-stop`, `xud-simnet-clean`, `rm -rf ~/xud-simnet` and install from scratch. - -For always up-to-date CLI commands, check `xucli --help`. - -Restart the simnet environment with `xud-simnet-restart`. If you want to control the underlying `lnd` or `ltcd` clients, type `alias` to see aliases set by the `xud-simnet` scripts. to e.g. call `getinfo` for `lndbtc` this would be `lndbtc-lncli getinfo`. diff --git a/README.md b/README.md index 4937d7b..2268acc 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,33 @@ -The Exchange Union Daemon ([`xud`](https://github.com/ExchangeUnion/xud)) is the reference implementation powering [OpenDEX](https://opendex.network), a decentralized exchange built on top of the [Lightning](https://lightning.network/) and [Raiden](https://raiden.network/) network. `xud` brings individual traders, market makers and exchanges onto OpenDEX to form a single global trading network and liquidity pool. +The Exchange Union Daemon ([`xud`](https://github.com/ExchangeUnion/xud)) is the reference implementation powering [OpenDEX](https://opendex.network), a decentralized exchange built on top of the [Lightning](https://lightning.network/) and [Connext](https://connext.network/) network. `xud` brings individual traders, market makers and exchanges onto OpenDEX to form a single global trading network and liquidity pool. -**Traders** use [OpenDEX-enabled exchanges](https://opendex.network/trade/exchanges) as gateways to trade on OpenDEX. These exchanges are usually non-custodial and are operated by different entities. Under the hood, they interact with the OpenDEX network and abstract the complexity that comes with it into a nice user interface for traders. **Exchanges** use `xud` to hedge user trades using the liquidity on OpenDEX in order to lock in profits. **Market Makers** use `xud` to offer liquidity on OpenDEX leveraging arbitrage to external exchanges, like Binance. Exchange Union provides tools that help decrease the friction for both sides of the marketplace. Exchanges use `hedgy`, a tool to automate the hedging with `xud` and market makers use `arby`, a tool that automates leveraging arbitrage opportunities between OpenDEX and external exchanges. +**Traders** use [OpenDEX-enabled exchanges](https://opendex.network/trade/exchanges) as gateways to trade on OpenDEX. Under the hood, they interact with the OpenDEX network and abstract the complexity that comes with it into a nice user interface for traders. These exchanges are centralized, but usually self-custodial, meaning traders stay in control of their funds at all times. **Exchanges** are creating *demand* by using `xud` to hedge end-user trades on OpenDEX to lock in profits. **Market Makers** are creating *supply*, the liquidity on OpenDEX, by leveraging arbitrage to external exchanges (e.g. Binance). Exchange Union provides tools that decreases the friction for both sides, all integrated with `xud`. ## Get Started --> [Get started as **Market Maker**](Market%20Maker%20Guide.md), providing liquidity from external exchanges making a profit +-> [Get started as **Market Maker**](Market%20Maker%20Guide.md), providing liquidity by arbitraging with external exchanges making a profit --> [Get started as **Exchange Operator**](), running a open-source exchange platform with integrated liquidity **(coming soon!)** - --> [Get started as **Trader**](User%20Guide.md), buying and selling cryptocurrency preserving your privacy & without counterparty risk +-> [Get started as **Trader**](User%20Guide.md), buying and selling cryptocurrency preserving privacy & without counterparty risk -> [Get started as **Developer**](Developer%20Guide.md), contributing or building on top of `xud` -![Trading via XUD](/images/orderbook.png) +-> [Get started as **Exchange Operator**](), running a open-source exchange platform with integrated liquidity **(coming soon!)** + +![xud orderbook](/images/orderbook.png) ## Incentives -* Traders benefit from instant & anonymous peer-to-peer trading without KYC and accounts. -* Market makers make profits via arbitrage between external exchanges and OpenDEX. -* Exchanges make profits via locking in trading fees by hedging trades on OpenDEX. +* Traders benefit from anonymous & secure peer-to-peer trading on [OpenDEX-enabled exchanges](https://opendex.network/trade/exchanges) +* Market makers make profits by arbitraging between external exchanges and OpenDEX. +* Exchanges secure profits by locking in trading fees through hedging trades on OpenDEX. ## Features -* Supports individual traders, market makers, *and* exchanges. +* Supports traders, market makers, *and* exchanges. * Order book aggregates orders from the network locally. * Orders get matched locally with peer orders from the network. -* Instant order settlement via atomic swaps on the lightning & raiden network. -* Full control over assets. +* Instant order settlement via atomic swaps on the lightning & connext network. +* Full control over funds at all times. * One mnemonic for all assets. * [Tor](https://www.torproject.org/) by default. -* Integration and simplified control of [lnd](https://github.com/lightningnetwork/lnd) and [raiden](https://github.com/raiden-network/raiden) clients. +* Integration and simplified control of [lnd](https://github.com/lightningnetwork/lnd) and [connext](https://github.com/connext/rest-api-client). * Peer-to-peer discovery of other OpenDEX nodes. * gRPC API to serve other applications, also accessible via the command-line interface `xucli`. @@ -47,4 +47,4 @@ The daemon has been designed to be as developer friendly as possible in order to `xud` is in an early stage; just like this page. Please help us to improve by opening issues (or even better PRs) for [xud](https://github.com/ExchangeUnion/xud/issues), [xud-docker](https://github.com/ExchangeUnion/xud-docker/issues) and the [docs](https://github.com/ExchangeUnion/docs/issues). -Feel like talking? Chat with us on [Discord](https://discord.gg/YgDhMSn)! \ No newline at end of file +Feel like talking? Chat with us on [Discord](https://discord.gg/YgDhMSn)! diff --git a/RaspiXUD.md b/RaspiXUD.md index 99a9c20..7b85c61 100644 --- a/RaspiXUD.md +++ b/RaspiXUD.md @@ -36,7 +36,7 @@ If you are not sure, we recommend to start with the light setup. If you opt for ## Pi Basic Setup -1. [Download Ubuntu 64-bit for the Pi](https://ubuntu.com/download/raspberry-pi) on your computer. Any other 64-bit (also called `arm64`, `aarch64`, `armv8`) linux os for the Pi is fine. 32-bit (`armv7`) is currently **not** supported. +1. [Download Ubuntu 20.04 64-bit for the Pi](https://ubuntu.com/download/raspberry-pi) onto your computer. Any other 64-bit (also called `arm64`, `aarch64`, `armv8`) linux os for the Pi is fine. 32-bit (`armv7`) is currently **not** supported. This guide was written assuming `Ubuntu 20.04 LTS`. 2. Insert the microSD card into your computer and follow the [flash instructions](https://ubuntu.com/download/iot/installation-media). 3. *Optional:* If you don't have a screen, usb keyboard and even an ethernet cable available, you can pre-configure Wifi for a headless setup. ```bash @@ -64,13 +64,7 @@ network: 4. Insert the microSD card into your Pi, connect it to your router via ethernet cable and to a power supply. Connecting a screen via HDMI and a USB keyboard makes life easier, but checking the assigned IP in your router and SSHing in from your computer works too. 5. Follow the inital setup instructions. Default user + password is `ubuntu`. You will be asked to change the password on first login. 6. Update ubuntu via `sudo apt update && sudo apt upgrade` -7. Install docker following the [official instructions](https://docs.docker.com/install/linux/docker-ce/ubuntu/) (select `arm64` in step 4 of "Set up the repository"). At the time of writing, ubuntu 19.10 was still not supported in the official docker repos. If you see an error along the lines `'docker-ce' has no installation candidate` in step 4 of the docker instructions, run this instead: -```bash -sudo add-apt-repository \ - "deb [arch=arm64] https://download.docker.com/linux/ubuntu \ - disco \ - stable" -``` +7. If you are using Ubuntu 20.04 LTS, install docker by running `sudo apt install docker.io`. Otherwise if you are using any version besides Ubuntu 20.04, follow the [official instructions](https://docs.docker.com/install/linux/docker-ce/ubuntu/) (select `arm64` in step 4 of "Set up the repository") to install docker. 8. Add new user `xud`: ```bash ubuntu@ubuntu:~$ sudo adduser xud @@ -133,7 +127,7 @@ From here the light and full setup require different settings. Continue choosing ## Pi Light Setup -Important: to make sure we don't run out of RAM, we create a swap file (overflow RAM) of 2GB on the internal sd card: +If you are using a Pi model with 2GB of RAM or more, you can continue [here](Market%20Maker%20Guide.md#the-setup). If you are using a Pi model with <2GB of RAM, we will have to catch a temporary RAM spike when creating the xud environment by creating a swap file (overflow RAM) of 2GB on the internal sd card: ```bash # create the swap file xud@ubuntu:~$ sudo fallocate -l 2G /home/xud/swapfile diff --git a/SUMMARY.md b/SUMMARY.md index 399c95a..1a942af 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -14,7 +14,6 @@ * [Developer Guide](Developer%20Guide.md) * [Contribution Guide](Contribute.md) * [Native Installation](Native%20Installation.md) -* [Native SimNet](Native%20SimNet.md) ## Features * [CLI](CLI.md)