This repository contains a Haskell implementation of the Provably Secure Proof-of-Stake white paper[1], done in conjunction with members of IOHK, the University of Edinburgh, the University of Athens, and the University of Connecticut.
In the paper that lends its name to this project¹, a "Proof-of-Stake" protocol with rigorous security guarantees is described in detail, one upon which a full-fledged cryptocurrency can be based.
This repository is the first implementation of a cryptocurrency that uses the provably secure distributed consensus "proof-of-stake" model proposed in the aforementioned paper.
The paper was as closely followed as possible by the implementation's authors.
This repository hosts the prototype implementation of "A Provably Secure Proof-of-Stake Blockchain Protocol", the latest version of which can be found in the IOHK website.
Aside from reading the paper[1], a good starting point is the source code hosted herein. We recommend starting with the following source files:
- Node entry point
- Core node logic, and the exported modules.
- Listeners
- Workers
At the moment, supported platforms are Windows, macOS and Linux. There are installers for Windows and macOS, which include a node and a wallet.
To build from source, clone this repository, navigate to the directory
into which the project was cloned and run stack build
.
The stack
system is
required before cardano-sl
can be built.
After the project is built, run it:
- open new terminal window, run
tmux
in it (sudo apt-get install tmux
or else according to your distro) - open new terminal window, run
export WALLET_TEST=1; ./scripts/launch.sh
in it
After a while, the first terminal windows should be populated with 4 tabs, 3 out of which will have a node running in them.
Build the project and run stack exec --nix -- cardano-wallet-web-docs
. Look at the generated ./docs/wallet-web-api.md
.
Pending
Pending
[1]: A. Kiayias, I. Konstantinou, A. Russell, B. David, R. Oliynykov, "A Provably Secure Proof-of-Stake Blockchain Protocol"