Skip to content
The core protocol of harmony
Branch: master
Clone or download
lzl124631x more rpc APIs. (#863)
* added readme

* more RPC APIs

* update for comments; fix travis issues

* update auto-generated host_mock.go
Latest commit fe217ad May 20, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates (#782) Apr 28, 2019
.hmy [wallet] add a default wallet.ini Apr 7, 2019
accounts more rpc APIs. (#863) May 20, 2019
api Remove STOP message; txgen doesn't send it anymore May 17, 2019
cmd Remove STOP message; txgen doesn't send it anymore May 17, 2019
consensus basic framework for view change (#827) May 9, 2019
contracts Merge branch 'cello' into merge May 7, 2019
core more rpc APIs. (#863) May 20, 2019
crypto add public key into consensus/drand message Mar 21, 2019
drand migrate bls identity from address to public key Mar 29, 2019
gomock_matchers Add gomock matcher utilities Apr 24, 2019
internal more rpc APIs. (#863) May 20, 2019
node sendTx rpc (#852) May 17, 2019
p2p more rpc APIs. (#863) May 20, 2019
scripts [scripts] fix wallet build script May 13, 2019
specs Create Mar 13, 2019
test Remove STOP message; txgen doesn't send it anymore May 17, 2019
tools Add as a … Mar 31, 2019
.bnkey [bootnode] add a default bootnode key locally Apr 7, 2019
.coveralls.yml add coveralls Jan 18, 2019
.gitignore don't ignore keystore May 12, 2019
.gitmodules Unvendor now that module mode is on Mar 16, 2019
.travis.yml Do not manually install Mar 31, 2019 s/gofmt/goimports/ Jan 25, 2019 cla@ → licensing@ Jan 11, 2019
LICENSE Add MIT License Jan 11, 2019 Update Jan 29, 2019 Update May 7, 2019
appspec.yml change benchmark to harmony Jan 10, 2019
go.mod Merge pull request #833 from touhonoob/embed-wallet-ini May 13, 2019


Build Status gopherbadger-tag-do-not-edit Discord Coverage Status Go Report Card

Installation Requirements

GMP and OpenSSL

brew install gmp
brew install openssl

Dev Environment Setup

The required go version is: go1.12

export GOPATH=$HOME/<path_of_your_choice>
export CGO_CFLAGS="-I$GOPATH/src/ -I$GOPATH/src/ -I/usr/local/opt/openssl/include"
export CGO_LDFLAGS="-L$GOPATH/src/ -L/usr/local/opt/openssl/lib"

mkdir -p $HOME/<path_of_your_choice>/src/

cd $HOME/<path_of_your_choice>/src/

git clone

cd mcl && make -j4 && cd ..

git clone

cd bls && make -j4 && cd ..

git clone

cd harmony

export GO111MODULE=on



Note : Some of our scripts require bash 4.x support, please install bash 4.x on MacOS X. Make sure you set export GO111MODULE=on.

Build all executables

You can run the script ./scripts/ to build all the executables.

Build individual executables

Initialize BLS

source scripts/

Harmony server / main node:

go build -o bin/harmony cmd/harmony/main.go


go build -o bin/wallet cmd/client/wallet/main.go

Tx Generator:

go build -o bin/txgen cmd/client/txgen/main.go


You may build the src/harmony.go locally and run local test.

Running local test

The script creates a local environment of Harmony blockchain devnet based on the configuration file. The configuration file configures number of nodes and their IP/Port. The script starts one local beacon chain node, the blockchain nodes, and run a transactional generator program which generates and sends simulated transactions to the local blockchain.

./test/ ./test/configs/beaconchain40.txt


Make sure you use the following command and make sure everything passed before submitting your code.



Harmony is licensed under the MIT License. See LICENSE file for the terms and conditions.

Harmony includes third-party open source code. In general, a source subtree with a LICENSE or COPYRIGHT file is from a third party, and our modifications thereto are licensed under the same third-party open source license.

Also please see our Fiduciary License Agreement if you are contributing to the project. By your submission of your contribution to us, you and we mutually agree to the terms and conditions of the agreement.

Contributing To Harmony

See CONTRIBUTING for details.

Development Status

Features Done

  • Fully sharded network with beacon chain and shard chains
  • Cuckoo-rule based resharding
  • Staking on beacon chain
  • Distributed randomness generation with VRF and VDF (Proof-of-Concept VDF)
  • Sharded P2P network and P2P gossiping
  • FBFT (Fast Byzantine Fault Tolerance) Consensus with BLS multi-signature
  • Account model and support for Solidity
  • Simple wallet program
  • Information disposal algorithm using erasure encoding (to be integrated)
  • Blockchain explorer with performance report and transaction lookup
  • Transaction generator for loadtesting

Features To Be Implemented

  • Secure VDF
  • Consensus view-change protocol
  • Cross-shard transaction

Features Planned after Mainnet

  • Integration with WASM
  • Fast state synchronization
  • Kademlia routing
You can’t perform that action at this time.