For reasons of performance and building of skills that might come in handy when dealing with the Ethereum mainnet, it's a good idea to run your own node and synchronize it with the Lisinski tesnet. We'll focus on Geth here.
If you're not familiar with the concept of nodes, see this introduction.
Note: the instructions below assume basic literacy with your operating system's command line / terminal application. On Windows, something like Git Bash or CMDer will do fine, while Linux and OS X have their own pre-installed Terminal apps. In a server enviroment without a graphical interface, you're already in a terminal.
Follow the official instructions.
Download and load the genesis file by running:
cd ~ && wget https://raw.githubusercontent.com/hpoa/lisinski/master/geth/lisinski.genesis
geth init lisinski.genesis
The genesis file is the file from which our blockchain is built. Consider it block zero - the foundation necessary for all the nodes to be able to talk to each other and be in agreement. The
geth init command above loads this genesis file into geth so that it starts building the Lisinski blockchain onto which the currently existing Lisinski data will be downloaded.
We run geth by running the
geth command followed by some options. The obligatory ones are as follows:
geth --networkid 385 --bootnodes "enode://email@example.com:23453,enode://firstname.lastname@example.org:23453"
geth runs the app,
networkid tells it which network to join - 385 if the Croatian international prefix number, and also the ID of our Lisinski network - and
bootnodes lists some existing nodes to which our node can connect. This is useful because nodes in Ethereum find each other through each other, so joining just one is usually enough to join them all.
Other options you can pass to geth if you want to help the Lisinski network run better are:
--lightserv XX - allows light clients to connect to your node. For info on light clients, see below. XX is the percentage of requests to dedicate to light clients. 100 means this node only serves light clients.
- --lightpeers XX - number of light clients allowed to connect to our node. Without providing this option, it will default to 50 which means 50 clients can be connected to us at the same time.
- --shh - Whisper support. Whisper is a communication protocol for sending and receiving ethereal (non permanent) messages over the Ethereum network. By supporting Whisper, your node accepts and forwards messages along to other nodes, helping foster decentralized communication. This helps the Lisinski network experiment with this new technology, and assists you in building blockchain chat apps too. Whisper might make the node a bit more resource intensive to run.
- --port XXXXX - the network port through which other nodes can connect to your node. It defaults to 30301 if omitted. This is useful when you're running multiple nodes on the same machine, or if you want to hide your node from the net-scouring bots looking for vulnerable open nodes.
- --verbosity X - X is a number from 0 to 9, and indicates the level of detail in the output from running Geth. Useful when we need to find out what geth is doing, when, and how - especially handy when debugging a problem you're not sure the cause of.
Light clients are nodes that don't have to download the whole blockchain to verify some data on it. They can request the minimum amount of data required from a full node, and then figure out the rest from there while at the same time not having to blindly trust the full node. This is super handy on resource and bandwidth restricted devices like mobile phones and IoT.
Serving light clients takes a little bit more out of your CPU and bandwidth so most mainnet clients never activate this mode. On Lisinski, however, there's very little data in the blockchain so there's no reason not to activate it - the expenditure is trivial, and it lets the community experiment with a whole range of resource intensiveness for their decentralized apps.
After running the final command, your geth node with sync with others and start serving information.