GithubHelp home page GithubHelp logo

jirijakes / revaultd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from revault/revaultd

0.0 0.0 0.0 2.19 MB

The "wallet" daemon for participants under the Revault architecture

License: BSD 3-Clause "New" or "Revised" License

Shell 0.64% Python 29.05% Rust 70.31%

revaultd's Introduction

revaultd

About Revault

Revault is a Bitcoin vault architecture for multi-party situations.

Join #revault on Libera for discussing Revault development.

About revaultd

revaultd is the core implementation of the wallet part from the Revault protocol. Exposing an RPC interface, it aims to be actually used by participants with a GUI wrapper while letting the possibility to access to the functionalities programmatically.

The Bitcoin Script and transactions logic is contained in revault_tx, and the communication with the servers is in revault_net.

The "stakeholders" (participants who don't actively take part in day-to-day fund managements but pre-sign constrained spending authorizations) logic, "managers" (participants who use the pre-signed authorizations to make payments) logic, and "stakeholders-managers" (participants wearing both hats) logic are part of this daemon.

revaultd will connect to bitcoind via its RPC interface (version 22.0 minimum), the Coordinator and optionally some Cosigning Servers if ran by a manager in a deployment with Cosigning Servers.

                            -----------                          -----------
                           |revault-gui|                  ----- | cosignerd |
                            \         /                 /        -----------
 --------------             ----------                 /         -----------
| coordinatord |  <------  | revaultd |  ------------- -------> | cosignerd |
 --------------             ----------                 \         -----------
                            /        \                  \        -----------
                           | bitcoind |                   ----- | cosignerd |
                            ----------                           -----------

You can find a reference of available RPC commands at doc/API.md.

Testing is performed both with Unit Tests directly integrated in the source (cargo test) and with a Python functional testing framework permitting to test more complex scenarii in "blackbox" (hitting only the RPC interface).

Minimum Supported Rust Version

revaultd should always compile and pass tests using Rust 1.43.

Hacking around

Checkout The Aquarium for a turnkey solution to try a Revault deployment.

revault-gui also has a tutorial on how to deploy Revault "almost for real": on testnet between multiple participants.

Contributing

Contributions are very welcome. For general guidelines, see CONTRIBUTING.md.

Licence

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

revaultd's People

Contributors

darosior avatar danielabrozzoni avatar edouardparis avatar zshan0 avatar vaibhavgarg237 avatar mariocynicys avatar rndhouse avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.