This monorepo contains the packages that implement the Kosu protocol, alongside supporting packages and developer tooling.
Documentation for Kosu packages is available in this repository, and hosted at
- Install instructions
- Docker images
Smart-contract packages (Solidity) including the core Kosu system contracts and SubContract SDK and contract test suite.
||The core Kosu contract system in Solidity (with low-level wrappers).|
||TypeScript test suite for the Kosu contract system.|
||Scripts and utilities for deploying Kosu contracts to Ethereum networks.|
Kosu network clients (currently, only
go-kosu). Includes validator implementation, full/light node's, CLI, and JSONRPC server.
||The reference implementation of the Kosu network in Go, built on Tendermint Core.|
Client/server libraries for interacting with the Kosu network and contract system.
||Exports all Kosu helper classes, utility functions, and contract wrappers.|
||TypeScript client for interacting with a Kosu node over JSONRPC.|
||Library and CLI for generating network genesis files from contract sate.|
||Utilities for interacting with Kosu (decoding event logs, etc.).|
||High-level convenience wrappers for interacting with Kosu contracts.|
||Kosu contract addresses for various Ethereum networks.|
||Helpful utilities for testing building Kosu contract-related tests.|
||TypeScript type definitions for Kosu projects.|
||Development docker images and supporting scripts for Kosu packages.|
||Geth PoA configuration for private Kosu test networks (CI, etc.).|
||TypeScript linter base configuration for Kosu TypeScript projects.|
||TypeScript compiler base configuration for Kosu TypeScript projects.|
||Simple web interface for interacting with the Kosu contract system.|
In order to build the full monorepo, the following is required:
- Node.js (
- Yarn (
- jq (
- golang (
- go-bindata (
- go-ethereum (
- Only the
abigenbinary is required to build the monorepo.
- Only the
MacOS users can install most required packages with
Homebrew package manager.
For other operating systems, see the official install instructions for each required package (linked above).
This will also install Node.js if it is not already installed.
brew install yarn
To install the
go-ethereum suite with
brew tap ethereum/ethereum brew install ethereum
Jq (JSON query)
jq (JSON parsing binary):
brew install jq
Clone the repository via SSH:
git clone email@example.com:ParadigmFoundation/kosu-monorepo
Or via HTTP:
git clone https://github.com/ParadigmFoundation/kosu-monorepo
To build all packages:
Generated documentation is published for the following packages with each commit, and published to
go-kosu: Golang Tendermint-based network reference implementation and CLI.
@kosu/kosu.js: TypeScript library for interacting with the Kosu contract system and network.
@kosu/system-contracts: The core Kosu system smart-contracts in Solidity, and TypeScript test suite.
Documentation is also checked in to each package and viewable on GitHub.
Various development images used for Kosu CI/CD and development are publicly available on GCR (download with
docker pull), and built from each
A custom Node.js (
lts) image with additional binaries used to assist in building/testing Kosu packages. Drop-in replacement for
- GCR URI:
A custom golang (
1.13-stretch) image with Tendermint and other binaries pre-installed, used as the CI image for
go-kosu (Tendermint is compiled into
kosud and not needed for production builds, but used in testing).
- GCR URI:
geth with PoA consensus in a single-node private network configuration used for testing Kosu system contracts. Note that contracts are not pre-migrated and must be deployed with
@kosu/system-contracts (see scripts).
- GCR URI:
Pre-built binaries for
go-kosu are available (per-commit CD builds are currently Linux/x86_64 only, build locally for other targets):
Kosu network client reference implementation, built on Tendermint consensus. Run
kosud --help for usage.
wget https://storage.googleapis.com/kosud/linux_amd64/kosud chmod +x kosud install kosud /usr/local/bin
Command-line interface for
kosu-cli for usage).
wget https://storage.googleapis.com/kosu-cli/linux_amd64/kosu-cli chmod +x kosu-cli install kosu-cli /usr/local/bin
We strongly encourage all contributions! Read our contribution guidelines and feel free to reach out with any questions.
To report bugs within a specific Kosu package, please create an issue in this repository (template will auto-populate).
Kosu is being developed as free open-source software under an MIT license.