All Projects → blocklayerhq → Chainkit

blocklayerhq / Chainkit

Licence: apache-2.0
ChainKit is a toolkit for blockchain development. It includes primitives for creating, building and running decentralized applications.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Chainkit

Go Cyber
Your 🔵 Superintelligence
Stars: ✭ 270 (+123.14%)
Mutual labels:  blockchain, tendermint
Cosmos
Internet of Blockchains ⚛
Stars: ✭ 938 (+675.21%)
Mutual labels:  blockchain, tendermint
Ethermint Archive
Ethereum on Tendermint using Cosmos-SDK!
Stars: ✭ 667 (+451.24%)
Mutual labels:  blockchain, tendermint
Ethermint
Ethermint is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK.
Stars: ✭ 207 (+71.07%)
Mutual labels:  blockchain, tendermint
Py Abci
Python based ABCI Server for Tendermint
Stars: ✭ 48 (-60.33%)
Mutual labels:  blockchain, tendermint
Akash
a secure, transparent, and peer-to-peer cloud computing network
Stars: ✭ 229 (+89.26%)
Mutual labels:  blockchain, tendermint
Etgate
Ethereum-Tendermint token sending gateway
Stars: ✭ 23 (-80.99%)
Mutual labels:  blockchain, tendermint
Tendermint code analysis
通用区块链平台tendermint源码分析
Stars: ✭ 134 (+10.74%)
Mutual labels:  blockchain, tendermint
Clearchain
Cosmos app for clearing and settlements
Stars: ✭ 42 (-65.29%)
Mutual labels:  blockchain, tendermint
Dawn
global hosting, financial automation, server-less web components
Stars: ✭ 40 (-66.94%)
Mutual labels:  blockchain, tendermint
Starport
The easiest way to build a blockchain.
Stars: ✭ 204 (+68.6%)
Mutual labels:  blockchain, tendermint
Weave
Easy-to-use SDK to build Tendermint ABCI applications
Stars: ✭ 1,122 (+827.27%)
Mutual labels:  blockchain, tendermint
Mint
Mint Blockchain — Build blockchain powered social apps
Stars: ✭ 148 (+22.31%)
Mutual labels:  blockchain, tendermint
Rust Abci
A rust implementation of the ABCI protocol for tendermint core
Stars: ✭ 115 (-4.96%)
Mutual labels:  blockchain, tendermint
Secretnetwork
𝕊 The Secret Network
Stars: ✭ 138 (+14.05%)
Mutual labels:  blockchain, tendermint
Abci Host
Clojure host/server for Tendermint's ABCI protocol.
Stars: ✭ 18 (-85.12%)
Mutual labels:  blockchain, tendermint
Lotion
✨ Smooth, easy blockchain apps ✨
Stars: ✭ 882 (+628.93%)
Mutual labels:  blockchain, tendermint
Jabci
Java implementation of the Tendermint ABCI
Stars: ✭ 48 (-60.33%)
Mutual labels:  blockchain, tendermint
Cosmosjs
⭐️ CosmosJS - Cosmos JavaScript Library
Stars: ✭ 91 (-24.79%)
Mutual labels:  blockchain, tendermint
Bitcoin
An example Bitcoin implementation which can be used to learn about Bitcoin/Blockchain. This implementations is for educational use only!
Stars: ✭ 115 (-4.96%)
Mutual labels:  blockchain

ChainKit

CircleCI GoDoc

ChainKit is a toolkit for blockchain development. It includes primitives for creating, building and running decentralized applications built on top of Tendermint and the Cosmos SDK.

Key features:

  • Scaffold: Generate all the Tendermint & Cosmos SDK boilerplate automatically to get started in seconds.
  • Build and Run: Under the hood, chainkit packages your app in a Docker container.
  • Testnet: Anyone in the world can join your network by running one command. Under the hood, chainkit uses IPFS and libp2p to share data and discover peers.

chainkit demo

Installing

Requirements:

From this repository, run:

$ make
$ cp chainkit /usr/local/bin

Usage

Create, Build & Start

In order to create a new (empty) application, just run the following:

$ cd ~/go/src/github.com
$ chainkit create demoapp

You can then start by running:

$ cd demoapp
$ chainkit start

Then open http://localhost:42001/ to see Tendermint's RPC interface or open the Explorer url.

You can also access the CLI: If chainkit is running in the current terminal, go to a new one and go to chainkit's project directory.

$ cd demoapp
$ chainkit cli --help
$ chainkit cli status

All CLI commands usually accessible from a Cosmos-SDK application is available in the same way via chainkit cli ....

Edit the genesis file before the chain starts

It may be useful to edit the genesis file before the chain starts: either to add new accounts with funds or to add more validators. In order to do so, use the following command:

$ cd demoapp
$ chainkit start --edit-genesis

It'll spawn an editor (taken from the $EDITOR env variable if it exists) with the original genesis file. Once you apply your changes, you can review the diff before applying the new genesis file, or revert the changes.

Please note that if the chain has been started already (or any block has been created), this command won't work. The genesis is "sealed" once a new block has been created.

Testnet

Anyone in the world can join your network. They'll need to run:

$ chainkit create demoapp
$ chainkit join <network ID>

where <network ID> is found in the output from starting the first node, or, for a mainnet, published by the network operator.

Under the hood, chainkit uses IPFS to transfer your network's manifest, genesis file and Docker image between nodes.

A built-in discovery mechanism (using libp2p DHT) allows nodes to discover themselves in a completely decentralized fashion.

Moving an existing project to chainkit

When chainkit creates a new project, it generates two files:

  • chainkit.yml
  • Dockerfile

It's useful to understand what they contain in order to move an existing project to chainkit. If the project already contains a Dockerfile, you won't need to change it.

Chainkit.yml:

name: myapp
image: chainkit-myapp
binaries:
  cli: myappcli
  daemon: myappd

The name is simply the name of the project (taken from chainkit create myapp).

The image is the docker image built by chainkit. You can specify your own image if you already have a build system building a docker image.

The last field binaries contain the binaries of the CLI and the Daemon of a cosmos app. It must map to what's inside the docker image, both binary names have to exist after you run a docker build using the Dockerfile of the project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].