Intermediate
How to Install and Run a node?
Install
#Requirements
Thor requires Go
1.13+ and C
compiler to build. To install Go
, follow this link .
#Getting the source
Clone the Thor repo :
git clone https://github.com/vechain/thor.git cd thor
#Building
To build the main app thor
, just run
make
or build the full suite:
make all
If no error reported, all built executable binaries will appear in folder bin.
Running Thor
Connect to VeChain’s mainnet:
bin/thor --network main
Connect to VeChain’s testnet:
bin/thor --network test
or startup a custom network
bin/thor --network <custom-net-genesis.json>
example genesis config file can be found at genesis/example.json .
To find out usages of all command line options:
bin/thor -h
--network value the network to join (main|test) or path to genesis file --data-dir value directory for block-chain databases --cache value megabytes of ram allocated to internal caching (default: 2048) --beneficiary value address for block rewards --target-gas-limit value target block gas limit (adaptive if set to 0) (default: 0) --api-addr value API service listening address (default: "localhost:8669") --api-cors value comma separated list of domains from which to accept cross origin requests to API --api-timeout value API request timeout value in milliseconds (default: 10000) --api-call-gas-limit value limit contract call gas (default: 50000000) --api-backtrace-limit value limit the distance between position and best block for subscriptions APIs (default: 1000) --verbosity value log verbosity (0-9) (default: 3) --max-peers value maximum number of P2P network peers (P2P network disabled if set to 0) (default: 25) --p2p-port value P2P network listening port (default: 11235) --nat value port mapping mechanism (any|none|upnp|pmp|extip:<IP>) (default: "none") --bootnode value comma separated list of bootnode IDs --skip-logs skip writing event|transfer logs (/logs API will be disabled) --pprof turn on go-pprof --disable-pruner disable state pruner to keep all history --help, -h show help --version, -v print the version
#Sub-commands
-
solo
client runs in solo mode for test & dev
bin/thor solo --on-demand # create new block when there is pending transaction bin/thor solo --persist # save blockchain data to disk(default to memory) bin/thor solo --persist --on-demand # two options can work together
-
master-key
master key management
# print the master address bin/thor master-key # export master key to keystore bin/thor master-key --export > keystore.json # import master key from keystore cat keystore.json | bin/thor master-key --import
#Docker
This method needs running all commands by docker with the data directory mapped to the container.
#Pull image
docker pull vechain/thor
#Export Master Key
First, start an interactive shell by docker:
docker run -it --rm\ -v {path-to-your-data-directory}:/root/.org.vechain.thor\ --entrypoint /bin/sh vechain/thor
Then export master key in the shell:
thor master-key --export > /root/.org.vechain.thor/keystore.json
Enter your password and check the generated file, then exit.
#Import Master Key
docker run -it --rm\ -v {path-to-your-data-directory}:/root/.org.vechain.thor\ vechain/thor master-key --import
Follow the instruction by the program, input the KeyStore
and also the password.
#Check Master Key
docker run -it --rm\ -v {path-to-your-data-directory}:/root/.org.vechain.thor\ vechain/thor master-key
This command will print the Master Key.
#Start the Authority Masternode
docker run -d\ -v {path-to-your-data-directory}:/root/.org.vechain.thor\ -p 127.0.0.1:8669:8669 -p 11235:11235 -p 11235:11235/udp\ --name thor-node vechain/thor --network main --skip-logs
Public Nodes
Please visit Public Nodes for more information.
By this, you complete this workshop successfully!!