Categorygithub.com/stratumn/go-core
modulepackage
0.4.8
Repository: https://github.com/stratumn/go-core.git
Documentation: pkg.go.dev

# README

Stratumn Core Utilities

GoDoc Build Status codecov Go Report Card Join the chat at https://gitter.im/stratumn/sdk

Stratumn's open-source utilities to create decentralized applications and networks.

To get started, visit our developer portal.


Run tests

You need Docker to be able to run the tests. The images couchstore:latest, rethink:latest and postgres:latest will be run automatically (and pulled from the docker hub if you don't already have them locally).

Install dependencies:

go get -u github.com/golang/dep/cmd/dep
dep ensure

To manage dependencies, see dep.

Run all tests:

make test

See test coverage in the browser:

make coverhtml

Run the linter:

go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
make lint

Build tagged docker images:

make docker_images

Releasing a new version

If you want to release a new version of the library, here is what you need to do. You need to install:

You'll need to add your PGP public key to the Stratumn CLI in the pubkey.go file.

Then at the root of the repo:

  • Update the CHANGELOG file
  • Create a branch named vA.B.x (for example: 0.1.x) from master
  • On this new branch, create a VERSION file that contains the version (for example: 0.1.0)
  • Set the pre-release flag in PRERELEASE if needed
  • Run make release (this will create the tag, build the binaries and the docker images, push the docker images and publish a release on Github)

License

Copyright 2017 Stratumn SAS. All rights reserved.

Unless otherwise noted, the source files are distributed under the Apache License 2.0 found in the LICENSE file.

Third party dependencies included in the vendor directory are distributed under their respective licenses.

# Packages

Package batchfossilizer implements a fossilizer that fossilizes batches of data using a merkle tree.
Package blockchain defines primitives to work with blockchains.
Package blockchainfossilizer implements a fossilizer that fossilize hashes on a blockchain.
No description provided by the author
Package cloud contains utilites for cloud services providers.
No description provided by the author
No description provided by the author
Package dummyfossilizer implements a fossilizer that can be used for testing.
Package dummystore implements a store that saves all the segments in memory.
No description provided by the author
Package filestore implements a store that saves all the segments to the file system.
Package fossilizer defines types to implement a fossilizer.
Package jsonhttp defines a simple HTTP server that renders JSON.
Package jsonws defines functionality to deal with web sockets and JSON.
Package leveldbstore implements a simple key-value local store.
No description provided by the author
Package postgresstore implements a store that saves all the segments in a PostgreSQL database.
Package rethinkstore implements a store that saves all the segments in a RethinkDB database.
Package store defines types to implement a store.
No description provided by the author
Package testutil contains helpers for tests.
No description provided by the author
Package tmstore implements a store that saves all the segments in a tendermint app.
Package types defines common types.
No description provided by the author
No description provided by the author