The Exchange Union Daemon (xud
) is the reference implementation powering OpenDEX, a decentralized exchange built on top of the Lightning and Connext networks. xud
brings individual traders, market makers and exchanges onto OpenDEX to form a single global trading network and liquidity pool.
Get started ๐ here ๐
xud
implements the OpenDEX protocol and fully conforms to its so-called BOLD specifications. BOLD stands for:
Basis of L3 DEX. The naming is intentionally derived from BOLT, the Lightning Network specifications and role model of OpenDEX. The specifications are currently being drafted by several implementers based around the world, including the developers of xud
. The BOLDs, as well as xud
s implementation of it is still a work-in-progress. The current status of xud
's BOLD compliance is:
xud
encompasses the following components:
- Integration with lnd and connext clients.
- Decentralized order book to locally aggregate orders from the known network.
- Matching engine to match new local orders with existing local and remote orders and initiate atomic swaps with remote peers.
- Peer-to-peer networking with and discovery of other nodes.
- gRPC API with web proxy to serve other applications, also accessible via the command-line interface
xucli
.
The daemon has been designed to be as developer friendly as possible in order to facilitate application development on top of xud
.
- docs.exchangeunion.com: the starting point and up-to-date collection of guides, links and examples
- api.exchangeunion.com: The automatically generated gRPC API documentation
- typedoc.exchangeunion.com: The automatically generated code documentation
This section contains brief instructions for installing xud
manually, without treating setup of dependencies like bitcoind
or lnd
. It is mainly geared towards developers. For all other users, we recommend our streamlined xud-docker setup.
If you already have Node.js installed, you can install xud
via npm by running
sudo npm install xud -g --unsafe-perm
We officially support the current Node.js LTS only, since it often takes time for the latest version to be supported by the gRPC library. Detailed instructions for installing xud
can be found in the installation & developer docs.
Launch xud
:
./xud
2018-9-11 01:11:59 [GLOBAL] info: config loaded
2018-9-11 01:11:59 [GLOBAL] info: Local nodePubKey is 029a96c975d301c1c8787fcb4647b5be65a3b8d8a70153ff72e3eac73759e5e345
2018-9-11 01:11:59 [DB] info: connected to database. host:localhost port:3306 database:xud
2018-9-11 01:11:59 [P2P] info: p2p server listening on 0.0.0.0:8885
2018-9-11 01:11:59 [RPC] info: gRPC server listening on localhost:8886
Open a new terminal and issue commands to xud
with the xucli
command line tool. To see a list of available commands, run:
./xucli --help
You can find more information on how to use & configure xud
in the docs for developers.
Note: If you installed xud
globally via npm, you can run xud
and xucli
from anywhere. Otherwise you must run them from the bin
folder.
All files in this repository are licensed under the GNU Affero General Public License v3.0 unless explicitly stated otherwise in the header of a given file.
Comments, questions, and any development-related discussions are welcome in our Discord chat!