-
Notifications
You must be signed in to change notification settings - Fork 88
Connecting to private network
Supposing we need to connect Harmony to network named jungle.
You must have genesis file let's call it: jungle.json The file will contain all the information about the concrete blockchain genesis block, check the example of genesis file for the live Ethereum network : frontier.json
Create config file jungle.conf with content:
# Peer discovery is supposed to be disabled peer.discovery.enabled = false # List of nodes the peer should connect to peer.active = [ { ip = hostname1.com port = 30303 nodeId = e437a4836b77ad9d777...234542e21b95aa8c3489 }, { ip = hostname2.com port = 30303 nodeId = 4567a4836b77ad9d9ff...0d8542e21b95aa8c5e6c } ] # Network id peer.networkId = 777 # Network genesis file # No need to change it because we will use -DgenesisFile genesis = jungle.json # Consensus algorithm blockchain.config.name = null blockchain.config.class = "org.ethereum.config.blockchain.FrontierConfig"
Be sure to change options highlighted with bold to your network specific values
If the private network is running with the Frontier consensus algorithm use the config as written above.
For Homestead network use the class org.ethereum.config.blockchain.HomesteadConfig
If some algorithm constants or algorithms are different then the custom class (analogous to org.ethereum.config.blockchain.FrontierConfig
) should be created.
- Get sources via:
git clone [email protected]:ether-camp/ethereum-harmony.git
cd ethereum-harmony
-
System should have NodeJS to be installed https://nodejs.org/en/download/package-manager/
-
Install bower via
npm install -g bower
-
Run bower via
bower install
Launch Harmony with
gradlew bootRun -Dethereumj.conf.file=ABS_PATH_TO/jungle.conf -DgenesisFile=ABS_PATH_TO/jungle.json
By default, Harmony will keep database at user home location at ~/ethereumj/database. To change that location you need to run with:
-Ddatabase.dir="~/ethereumj/PATH_TO_DATABASE"
Default ports are:
- 30303 for peer. Use
-Dpeer.listen.port=33333
to change - 8080 for web interface and JSON RPC. Use
-Dserver.port=8888
to change
Full ethereumj config file sample with description: https://github.com/ethereum/ethereumj/blob/develop/ethereumj-core/src/main/resources/ethereumj.conf