Skip to content

The synchronisation server, a convenient mean to avoid direct connections between participants

License

Notifications You must be signed in to change notification settings

revault/coordinatord

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Revault coordinator

This is the implementation of the synchronisation server -or coordinator- for the version 1 of the deployment of the Revault architecture, as specified in practical-revault.

The coordinator is a (pretty simple) server used by Managers to advertise Spend transactions to the Stakeholders' watchtowers before processing an Unvault.
It is also used by Stakeholders to exchange signatures for the pre-signed transactions (Emergency transaction, Cancel transaction, Unvault Emergency transaction and Unvault transaction).

Communication is done over Noise KK channels. Each participant's static public key must be initially configured on the Coordinator.

The coordinator is never trusted with funds, it is just a convenient mean to replace direct connections between participants.

Usage

Trying out Revault

If you just want to give Revault a shot, check out the aquarium (a script putting all the Revault parts together on a regtest network).

Using coordinatord itself

The coordinator will need access to a PostgreSQL database, set in the configuration file as:

postgres_uri = "postgresql://user:password@localhost:5432/database_name"

An easy way to try it out without having to configure Postgres on your system is by using Docker:

docker run --rm -d -p 5432:5432 --name postgres-coordinatord -e POSTGRES_PASSWORD=revault -e POSTGRES_USER=revault -e POSTGRES_DB=coordinator_db postgres:alpine
cargo run -- --conf contrib/config.toml

Contributing

Any contribution of any form (patches, bug reports, documentation, thoughts) is very welcome.

See CONTRIBUTING for general guidelines.

License

Released under the BSD 3-Clause Licence. See the LICENCE file.

About

The synchronisation server, a convenient mean to avoid direct connections between participants

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages