This section introduces how to manually set up a development node on your machine. However, to simplify the process, it's highly recommended you get a dev node with Visual Studio Code Solidity++ Extension.
Configure 'node_config.json' file with following settings:
Set "Single": "true", indicating this is a single node
Set "RPCEnabled": "true" to turn on RPC service and define the binding IP address and port in HttpHost and HttpPort. Defaults are 0.0.0.0 and 48132
Set "WSEnabled": "true" and define the binding IP address and port in WSHost and WSPort. Defaults are 0.0.0.0 and 41420
Set "Miner": "true"
Set mining address in CoinBase in format of 'index:address'. For example, 0:vite_e41be57d38c796984952fad618a9bc91637329b5255cb18906
Set coinbase's keystore path in EntropyStorePath, such as vite_e41be57d38c796984952fad618a9bc91637329b5255cb18906
Set coinbase's keystore password in EntropyStorePassword, such as 123456
Set genesis block file in GenesisFile. For example, genesis.json will read a file named 'genesis.json' in current folder
Set "VmLogAll": "true" to save the vmlog of all contracts
Set "OpenPlugins": "true" to enable statistics function. This includes the number of un-received transactions and transactions records listed by different token id
Following settings are specific to your environment:
Set data directory path in DataDir. For example, gvite/singlemode stands for directory gvite/singlemode/devdata under current folder
Set keystore directory path in KeyStoreDir. For example, gvite/singlemode stands for directory gvite/singlemode/devdata/wallet under current folder
Set "VmTestEnabled": "true"" to turn on development mode. In dev mode, sending transaction won't verify sender's account balance or quota
Set test token ID in TestTokenTti and issuing account private key in TestTokenHexPrivKey for test token acquiring purpose. For example, tti_5649544520544f4b454e6e40 and 7488b076b27aec48692230c88cbe904411007b71981057ea47d757c1e7f7ef24f4da4390a6e2618bec08053a86a6baf98830430cbefc078d978cf396e1c43e3a
Set "SubscribeEnabled": "true"" to enable event subscription
Set visible modules in PublicModules. Modules included will be accessible through remote RPC and/or WS calls. See Module List
This will generate a genesis block of Type 7 in genesis account with corresponding states(balance, contract status, etc.) during first launch.
Whenever you need to work with a different genesis setting, you should change genesis.json file, delete ledger folder in your DataDir directory and restart gvite process.
Make sure your node_config.json, genesis.json and gvite executable are in the same directory.
Create sub-folder wallet in your KeyStoreDir directory and place coinbase's keystore file vite_e41be57d38c796984952fad618a9bc91637329b5255cb18906 inside.