zhaojun-sh / gossamer

🕸️ Gossamer: The Golang Polkadot Runtime Environment Implementation (WIP)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gossamer logo

Golang Polkadot Runtime Environment Implementation

GoDoc Go Report Card Build Passing Maintainability Test Coverage License: GPL v3 standard-readme compliant

gossamer is an implementation of the Polkadot Runtime Environment written in Go. The Polkadot Runtime Environment is a modular, customizable framework for building blockchains. It has a swappable WASM runtime (ie. state transition function) that can be replaced even after the blockchain has launched without hard forks. It also has a generic extrinsic and block format which are specified in the runtime. The runtime can be written in any language that compiles to WASM.

Our packages:

package description
cmd command-line interface for gossamer
codec SCALE codec; used for encoding and decoding
common commonly used types and functions
config client configuration
dot wraps other packages to allow a complete client
internal internal RPC functions
p2p peer-to-peer service using libp2p
polkadb database implemenation using badgerDB
rpc RPC server
runtime WASM runtime integration using the life interpreter
trie implementation of a modified Merkle-Patricia trie

Dependencies

go 1.12

Install

go get -u github.com/ChainSafe/gossamer

Usage

make gossamer
gossamer --config config.toml

Docker

To start Gossamer in a docker container, run:

make docker

Running Manually

To build the image, run this command:

docker build -t chainsafe/gossamer -f Dockerfile.dev

Start an instance with:

docker run chainsafe/gossamer

Test

go test -v ./...

Contributing

Donations

Our work on gossamer is funded by grants. If you'd like to donate, you can send us ETH or DAI at the following address: 0x764001D60E69f0C3D0b41B0588866cFaE796972c

License

GNU General Public License v3.0

About

🕸️ Gossamer: The Golang Polkadot Runtime Environment Implementation (WIP)

License:GNU General Public License v3.0


Languages

Language:Go 99.3%Language:Makefile 0.7%