chainmint

module
v0.0.0-...-2e56a82 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 10, 2017 License: AGPL-3.0

README

Chainmint = Chain + Tendermint

Chainmint is based on the tendermint consensus inherited from Chain's UTXO and CVM. It can become a Cosmos Zone in the future, supporting Chain cross-chain functionality. In short:

Chainmint = UTXO + CVM + Tendermint

Components

  • Chainmint: implements the specific logic of the abci interface.
  • Tendermint: consensus module, handles chainmint transaction order.
  • PostgreSql: data storage module.
  • Chainmintcli: client for communication with chainmint.

Getting Started

Prerequisites
  1. install Tendermint
  2. install postgreSQL
Build
make get_vendor_deps
cd cmd/chainmint
go build
cd cmd/chainmintcli
go build
Run
Chainmint

First, configure user, password, dbname and sslmode in chainmint/chain/run.go:

dbURL = env.String("DATABASE_URL", "user=yourusername password=yourpassword dbname=core sslmode=disable")

then execute chainmint/core/schema.sql in postgreSql's core (i.e., dbname) database.

Enter chainmint/cmd/chainmint and run ./chainmint.

Local Tendermint
./tendermint init --home ./yourdir
./tendermint node --home ./yourdir
Chainmintcli
./chainmintcli <options.>

more details: chainmint(Chinese)

Directories

Path Synopsis
Command cored provides the Chain Core daemon and API server.
Command cored provides the Chain Core daemon and API server.
cmd
chainmint command
chainmintcli command
Command corectl provides miscellaneous control functions for a Chain Core.
Command corectl provides miscellaneous control functions for a Chain Core.
Package core implements Chain Core and its API.
Package core implements Chain Core and its API.
accesstoken
Package accesstoken provides storage and validation of Chain Core credentials.
Package accesstoken provides storage and validation of Chain Core credentials.
account
Package account stores and tracks accounts within a Chain Core.
Package account stores and tracks accounts within a Chain Core.
asset
Package asset maintains a registry of all assets on a blockchain.
Package asset maintains a registry of all assets on a blockchain.
blocksigner
Package blocksigner implements remote block signing.
Package blocksigner implements remote block signing.
config
Package config manages persistent configuration data for Chain Core.
Package config manages persistent configuration data for Chain Core.
coretest
Package coretest provides utilities for testing Chain Core.
Package coretest provides utilities for testing Chain Core.
coreunsafe
Package coreunsafe contains Core logic that is unsafe for production.
Package coreunsafe contains Core logic that is unsafe for production.
fetch
Package fetch implements block replication for participant Chain Cores.
Package fetch implements block replication for participant Chain Cores.
generator
Package generator implements the Chain Core generator.
Package generator implements the Chain Core generator.
leader
Package leader implements leader election between cored processes of a Chain Core.
Package leader implements leader election between cored processes of a Chain Core.
migrate
Package migrate implements database migration for Chain Core.
Package migrate implements database migration for Chain Core.
mockhsm
Package mockhsm provides a mock HSM for development environments.
Package mockhsm provides a mock HSM for development environments.
pin
query
Package query implements indexing and querying of annotated blockchain data.
Package query implements indexing and querying of annotated blockchain data.
query/filter
Package filter parses and evaluates Chain filter expressions.
Package filter parses and evaluates Chain filter expressions.
rpc
Package rpc implements Chain Core's RPC client.
Package rpc implements Chain Core's RPC client.
signers
Package signers associates signers and their corresponding keys.
Package signers associates signers and their corresponding keys.
txbuilder
Package txbuilder builds a Chain Protocol transaction from a list of actions.
Package txbuilder builds a Chain Protocol transaction from a list of actions.
txdb
Package txdb provides storage for Chain Protocol blockchain data structures.
Package txdb provides storage for Chain Protocol blockchain data structures.
txdb/internal/storage
Package storage is a generated protocol buffer package.
Package storage is a generated protocol buffer package.
txfeed
Package txfeed implements Chain Core's transaction feeds.
Package txfeed implements Chain Core's transaction feeds.
crypto
ed25519
Package ed25519 implements the Ed25519 signature algorithm.
Package ed25519 implements the Ed25519 signature algorithm.
sha3pool
Package sha3pool is a freelist for SHA3-256 hash objects.
Package sha3pool is a freelist for SHA3-256 hash objects.
database
pg
Package pg provides small utilities for the lib/pq database driver.
Package pg provides small utilities for the lib/pq database driver.
pg/pgtest
Package pgtest provides support functions for tests that need to use Postgres.
Package pgtest provides support functions for tests that need to use Postgres.
raft
Package raft provides a simple key-value store coordinated across a raft cluster.
Package raft provides a simple key-value store coordinated across a raft cluster.
raft/internal/statepb
Package statepb is a generated protocol buffer package.
Package statepb is a generated protocol buffer package.
sql
Package sql provides a generic interface around SQL (or SQL-like) databases.
Package sql provides a generic interface around SQL (or SQL-like) databases.
encoding
blockchain
Package blockchain provides the tools for encoding data primitives in blockchain structures
Package blockchain provides the tools for encoding data primitives in blockchain structures
bufpool
Package bufpool is a freelist for bytes.Buffer objects.
Package bufpool is a freelist for bytes.Buffer objects.
Package env provides a convenient way to convert environment variables into Go data.
Package env provides a convenient way to convert environment variables into Go data.
Package errors implements a basic error wrapping pattern, so that errors can be annotated with additional information without losing the original error.
Package errors implements a basic error wrapping pattern, so that errors can be annotated with additional information without losing the original error.
generated
rev
log
Package log implements a standard convention for structured logging.
Package log implements a standard convention for structured logging.
rotation
Package rotation writes and rotates log files.
Package rotation writes and rotates log files.
splunk
Package splunk sends log data to a splunk server.
Package splunk sends log data to a splunk server.
math
checked
Package checked implements basic arithmetic operations with underflow and overflow checks.
Package checked implements basic arithmetic operations with underflow and overflow checks.
Package metrics provides convenient facilities to record on-line high-level performance metrics.
Package metrics provides convenient facilities to record on-line high-level performance metrics.
net
http/authz
Package authz is a generated protocol buffer package.
Package authz is a generated protocol buffer package.
http/httperror
Package httperror defines the format for HTTP error responses from Chain services.
Package httperror defines the format for HTTP error responses from Chain services.
http/httpjson
Package httpjson creates HTTP handlers to map request and response formats onto Go function signatures.
Package httpjson creates HTTP handlers to map request and response formats onto Go function signatures.
http/reqid
Package reqid creates request IDs and stores them in Contexts.
Package reqid creates request IDs and stores them in Contexts.
http/static
Package static provides a handler for serving static assets from an in-memory map.
Package static provides a handler for serving static assets from an in-memory map.
Package protocol provides the logic to tie together storage and validation for a Chain Protocol blockchain.
Package protocol provides the logic to tie together storage and validation for a Chain Protocol blockchain.
bc
Package bc is a generated protocol buffer package.
Package bc is a generated protocol buffer package.
bc/bctest
Package bctest provides utilities for constructing blockchain data structures.
Package bctest provides utilities for constructing blockchain data structures.
patricia
Package patricia computes the Merkle Patricia Tree Hash of a set of bit strings, as described in the Chain Protocol spec.
Package patricia computes the Merkle Patricia Tree Hash of a set of bit strings, as described in the Chain Protocol spec.
prottest
Package prottest provides utilities for Chain Protocol testing.
Package prottest provides utilities for Chain Protocol testing.
prottest/memstore
MemStore is a Store implementation that keeps all blockchain state in memory.
MemStore is a Store implementation that keeps all blockchain state in memory.
vm
Package vm implements the VM described in Chain Protocol 1.
Package vm implements the VM described in Chain Protocol 1.
sync
idempotency
Package idempotency provides a duplicate function call suppression mechanism.
Package idempotency provides a duplicate function call suppression mechanism.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL