Connecting from linux

Step 1: install & configure go:

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.

Step 2: clone the repository and build the binaries:

The main branch that will be used is the master branch. Alternatively, an older release tag can be used.

mkdir go && echo "export GOPATH=$HOME/go" >> ~/.profile
source ~/.profile
mkdir -p $GOPATH/src/github.com/ElrondNetwork
cd $GOPATH/src/github.com/ElrondNetwork
git clone https://github.com/ElrondNetwork/elrond-go
cd elrond-go && git checkout tags/v1.0.24
git pull
cd ..
git clone https://github.com/ElrondNetwork/elrond-config
cd elrond-config && git checkout tags/BoN-ph1-w1-p1
git pull
cp *.* ../elrond-go/cmd/node/config
cd ../elrond-go
GO111MODULE=on go mod vendor
cd cmd/node && go build -i -v -ldflags="-X main.appVersion=$(git describe --tags --long --dirty)"

Step 3: creating the node’s identity:

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 ../keygenerator
go build
./keygenerator

Step 4: copying credentials and starting the node:

The previous generated .pem files needs to be copied in the same directory where the node binary resides in order to start the node.

cp initialBalancesSk.pem ./../node/config/
cp initialNodesSk.pem ./../node/config/
ulimit -n 65535
cd ../node && ./node

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.