The core protocol of WoopChain
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Eugene Kim 0ffb623d55 Add MIT License 6 years ago
api fix comments 6 years ago
cmd Remove dup lines 6 years ago
consensus fix go test after enable libp2p 6 years ago
core Migrate sha3 to golang's sha3 6 years ago
crypto Merge pull request #209 from harmony-one/crypto-unit-test 6 years ago
internal fix go test error after libp2p enabled 6 years ago
log submit check - tested in a PR and it worked 6 years ago
node change benchmark to harmony 6 years ago
p2p catch errors in SendMessage 6 years ago
scripts rename gofmt to travis_checker.sh and add testing checker 6 years ago
test remove additional local configuration files 6 years ago
.gitignore change benchmark to harmony 6 years ago
.travis.yml config travis-discord 6 years ago
CONTRIBUTING.md Move PR/workflow/coding standard into CONTRIBUTION 6 years ago
LICENSE Add MIT License 6 years ago
README.md Add MIT License 6 years ago
appspec.yml change benchmark to harmony 6 years ago
go.mod add go.mod for go v1.11 6 years ago

README.md

Harmony

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 ./...

Build

Harmony server / main node:

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

Beacon node:

go build -o bin/beacon cmd/beaconchain/main.go

Wallet:

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.

Usage

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

Testing

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

./test/test_before_submit.sh

License

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

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