Go Kosu (
Golang reference implementation of the Kosu protocol, built on Tendermint Consensus.
Automated per-commit builds are available for
Linux/amd64 architectures, published with each update to the
Stable release builds will be available from the GitHub releases page after an initial beta release.
- Usage documentation is located in
docs/(and hosted here).
- Package documentation for Go projects can be found here.
Building from source
go-kosu must be build alongside the rest of the
kosu-monorepo due to the Kosu client implementation's dependency on contract system build artifacts. See the top-level README for full build instructions.
In order to build the full monorepo, the following is required:
Clone the full
kosu-monorepo with the following command:
# over SSH (recommended) git clone firstname.lastname@example.org:ParadigmFoundation/kosu-monorepo.git # over HTTPS git clone https://github.com/ParadigmFoundation/kosu-monorepo.git
Install package dependencies
Build and link all package dependencies with
yarn (do not use
Build all packages
The following command will build all packages, including the Kosu contract system and the
After building, all
go-kosu binaries will be available in the
After a full monorepo build,
go-kosu can be subsequently rebuilt (during development) with:
cd packages/go-kosu make
go-kosu project includes several executeables, found in the
cmd folder. See the binaries section for download and install instructions.
kosud- Kosu reference implementation validator and full-node client.
kosu-cli- Command-line interface for
kosudand other tools.
Pre-built binaries for
go-kosu are available (per-commit CD builds are currently Linux/amd64 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
Each binary has a
help command or
--help flag which should be used for full command reference.
View full usage documentation here.
Start a node
You can start a single-node Kosu development network with the following commands:
# generate keypair and base configuration kosud init --home=$HOME/.kosu kosud start -E [ETHEREUM_JSONRPC_URL] --home=$HOME/.kosu
The command-line interface will also be built (see
kosu-cli help for all commands).
Force a rebalance transaction (must be parameterized correctly):
kosu-cli tx rebalance [round_number] [period_start] [period_end]
kosu-cli executable provides the ability to query the node's and network's current state (see
kosu-cli query --help for all commands).
# view consensus parameters kosu-cli query consensus # view current round information kosu-cli query round # view a poster account kosu-cli query poster [ethereum_address]
kosud binary provides a
JSON-RPC bridge which allows you to subscribe to events and submit transactions.
JSON-RPC bridge and interact with kosud use the
kosud rpc sub-command.
A four-node test network can be started with
docker-compose for testing and development. It expects an Ethereum JSONRPC-API to be available at
localhost:8545 with the Kosu system contracts deployed.
The test-net will expose the Tendermint ABCI RPC-API on ports
8003 for nodes