The installation of go should proceed as shown in official golang installation guide https://golang.org/doc/install . In order to run the node, minimum golang version should be 1.12.4.
The installation of git should proceed as shown in official git installation guide https://git-scm.com/download/win . After git has been installed, a new bash command window will appear that has to be closed. The following steps should be carried in a new cmd window: start > run > cmd.
The main branch that will be used is the master branch. Alternatively, an older release tag can be used.
mkdir %GOPATH%\src\github.com\ElrondNetworkcd %GOPATH%\src\github.com\ElrondNetworkgit clone https://github.com/ElrondNetwork/elrond-gocd elrond-gogit checkout tags/v1.0.15cd ..git clone https://github.com/ElrondNetwork/elrond-configcd elrond-configgit checkout tags/testnet-1012copy /Y *.* ..\elrond-go\cmd\node\configcd ..cd elrond-go\cmd\nodeSET GO111MODULE=ongo mod vendorfor /f %i in ('git describe --tags --long --dirty') do set VERS=%igo build -i -v -ldflags="-X main.appVersion=%VERS%"
In order to be registered in the Elrond Network, a node must possess 2 types of (secret key, public key) pairs. One is used to identify the node’s credential used to generate transactions (having the sender field its account address) and the other is used in the process of the block signing. Please note that this is a preliminary mechanism, in the next releases the first (private, public key) pair will be dropped when the staking mechanism will be fully implemented. To build and run the keygenerator, the following commands will need to be run:
cd ..cd keygeneratorgo buildkeygenerator.exe
The previous generated .pem files needs to be copied in the same directory where the node binary resides in order to start the node.
copy /Y initialBalancesSk.pem ..\node\config\copy /Y initialNodesSk.pem ..\node\config\cd ..cd nodenode.exe
The node binary has some flags defined (for a brief description, the user can use --help flag). Those flags can be used to directly alter the configuration values defined in .toml/.json files and can be used when launching more than one instance of the binary.