GitHub - harmony-one/harmony: The base protocol of harmony

 收集于5个月前 阅读数 8



Build Status gopherbadger-tag-do-not-edit Discord

Dev Environment Setup

export GOPATH=$HOME/<path_of_your_choice>

mkdir -p $HOME/<path_of_your_choice>/src/github.com/harmony-one

cd $HOME/<path_of_your_choice>/src/github.com/harmony-one

git clone git@github.com:harmony-one/harmony.git

cd harmony

go get ./...


Harmony server / main node:

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

Beacon node:

go build -o bin/beacon cmd/beaconchain/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 can also run the script ./script/go_executable_build.sh to build all the executables.

Some of our scripts require bash 4.x support, please install bash 4.x on MacOS X.


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

Running local test

The deploy.sh 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 trnsactions to the local blockchain.

./test/deploy.sh ./test/configs/local_config1.txt


Make sure you 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.

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

  • Basic consensus protocol with O(n) complexity
  • Basic validator server
  • P2p network connection and unicast
  • Account model and support for Solidity
  • Simple wallet program
  • Mock beacon chain with static sharding
  • 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

  • Full beacon chain with multiple validators
  • Resharding
  • Staking on beacon chain
  • Fast state synchronization
  • Distributed randomness generation with VRF and VDF
  • Kademlia routing
  • P2p network and gossiping
  • Full protocol of consensus with BLS multi-sig and view-change protocol
  • Integration with WASM
  • Cross-shard transaction