Open-source Verifiable Data Structures Server implementation
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets
cmd
doc
merkle
mutator
oracle/policy
pb
proto
server
storage
test
verifiable
.gitignore
AUTHORS
CONTRIBUTORS
Gopkg.lock
Gopkg.toml
LICENSE
NOTICE
README.md
generate.go

README.md

This implementation is for early stage use, feedback and bug reports welcome!

This repository contains a client, server, and embeddable library implementation of the Continusec Verifiable Data Structures API.

It was written by Adam Eijdenberg (adam@continusec.com) and is released under the Apache 2.0 License.

Please see the godoc for information on how to use the libraries: https://godoc.org/github.com/continusec/verifiabledatastructures

See the HTTP REST API doc, for examples using the REST API.

For more information about how Verifiable Logs and Verifiable Maps work, please see this paper: https://www.continusec.com/static/VerifiableDataStructures.pdf

Please drop us a note (adam@continusec.com) if you find this useful.

Quickstart

go get github.com/continusec/verifiabledatastructures/cmd/vdbserver
vdbserver

Development Commands

The following commands are useful for those working with the source.

Re-generate proto and asset files

go generate

(will need go get -u github.com/jteeuwen/go-bindata/... github.com/golang/protobuf/protoc-gen-go)

Rebuild server

go install github.com/continusec/verifiabledatastructures/cmd/vdbserver

Run tests

go test

Sample config file for server

# openssl req -x509 -newkey rsa:4096 -keyout vds-key.pem -out vds-cert.pem -days 3600 -nodes -subj '/CN=localhost' -batch
# server_cert_path: "vds-cert.pem"
# server_key_path: "vds-key.pem"

rest_server: true
rest_listen_bind: ":8092"

grpc_server: true
grpc_listen_bind: ":8090"
grpc_listen_protocol: "tcp4"

insecure_server_for_testing: true

# Bolt DB path:
bolt_db_path: "."

# Accounts supported by this server
accounts: <
    id: "1234"
    policy: <
        api_key: "secret"
        name_match: "*"
        allowed_fields: "*"
        permissions: PERM_ALL_PERMISSIONS
    >
>