Prova is a distributed consensus system for digital asset tokens written in Go (golang). Prova was built to support RMG, a digitized form of gold introduced by The Royal Mint and CME Group. Features include:
-
Asset Issuance
Prova is a simple, single asset blockchain with asset issuance rather than mining.
-
Multi-signature only
All accounts are multi-signature wallets.
-
No “black holes”
The system enforces rules making it impossible to send to invalid or non-recoverable addresses
-
Permissioned Participants
Prova can enforce only authorized validators and accounts.
-
Trusted Technology
Prova is based on mature blockchain technologies.
The implementation is derived from btcd.
It downloads, validates, and serves a block chain using consensus rules for block acceptance. It includes a full block validation testing framework.
It relays newly generated blocks, maintains a transaction memory pool, and relays individual transactions that have not yet made it into a block. It ensures all individual transactions admitted to the pool follow the rules required by the block chain.
Prova does NOT include wallet functionality. This means you can't actually make or receive p 8BB8 ayments directly with Prova. That functionality is provided by Prova wallet implementations.
Go 1.6 or newer.
-
Install Go according to the installation instructions here: http://golang.org/doc/install
-
Ensure Go was installed properly and is a supported version:
$ go version
$ go env GOROOT GOPATH
If GOROOT
or GOPATH
is not set properly, add the following to your ~/.bashrc or /.profile startup files (substitute with proper directories if you have a custom installation of Go):
$ export GOROOT=/usr/local/go
$ export GOPATH=$HOME/go
$ export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
The 'go' binary will be located under GOROOT, while your saved packages will be located under GOPATH.
NOTE: The GOROOT
and GOPATH
above must not be the same path. It is
recommended that GOPATH
is set to a directory in your home directory such as
~/go
to avoid write permission issues. It is also recommended to add
$GOPATH/bin
to your PATH
at this point.
- Run the following commands to obtain prova, all dependencies, and install it:
$ go get -u github.com/Masterminds/glide
$ git clone https://github.com/bitgo/prova $GOPATH/src/github.com/bitgo/prova
$ cd $GOPATH/src/github.com/bitgo/prova
$ glide install
$ go install . ./cmd/...
- Prova (and utilities) will now be installed in
$GOPATH/bin
. If you did not already add the bin directory to your system path during Go installation, we recommend you do so now.
- Run the following commands to update Prova, all dependencies, and install it:
$ cd $GOPATH/src/github.com/bitgo/prova
$ git pull && glide install
$ go install . ./cmd/...
Prova has several configuration options avilable to tweak how it runs, but all of the basic operations described in the intro section work with zero configuration.
$ ./prova
The integrated github issue tracker is used for this project.
When reporting security issues, responsible disclosure is encouraged. The Prova developers at BitGo should be directly contacted at security@bitgo.com
The documentation is a work-in-progress. It is located in the docs folder.
Prova is licensed under the copyfree ISC License.