Uplink is a distributed database built for orchestrating secure multiparty workflows found in financial markets.
Uplink operates as a federation of nodes which communicate over a private network to provide an append-only database in which all transactions are cryptographically signed and where all members participate in a consensus protocol to maintain and verify the ledger state.
Uplink also has the capacity to run so-called smart contracts which are units of logic which run across the network and allow counterparties to interact through arbitrarily sophisticated programs that can model common business processes and financial instruments. Provided with the ledger is a new scripting language FCL (Financial Core Language) built on a verified core and designed as a target for contract modeling tools.
The community version of Adjoint's software is released under an Apache License and is part of a larger suite of tools and languages offered commercially.
Video Tutorial
- Installing Uplink
- Setting up a Network
- Using the Uplink Console
- Installing Uplink Explorer
- Importing Keys into Explorer
Install Directions
Install the ledger either through Docker or your system package manager.
To build using docker simply run:
$ docker run -it -p 8000:8000 --rm uplinkdlt/uplink:latest
To build from source (not recommended) use:
$ git clone git@github.com:adjoint-io/uplink.git
$ cd uplink
$ stack install --no-docker
To get started running a testnet download the testnet starter kit and unzip the folder locally:
$ wget https://www.adjoint.io/release/config-1.0.zip
$ unzip config-1.0.zip -d config
This contains two files the node configuration and genesis block configuration used to configure a private network:
To run an Uplink node that has the ability to construct and sign blocks, you
must supply an existing private key located in the config/validators
directory. Accounts corresponding to these key pairs are created on boot and
added to the genesis world state, and the list of addresses defining the
validator nodes is defined in config/chain.config.local
.
To boot a validator node (needed to create & sign blocks):
$ uplink chain -p 8001 -d node1 -k config/validators/auth0/key -v
And run two non-validator nodes to start the consensus:
$ uplink chain -p 8002 -d node2 -v
$ uplink chain -p 8003 -d node3 -v
Extensive documentation can be found here.
Uplink is released under the Apache 2.0 License.