2.9 KiB
Harmony
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