Witness Server Setup Tutorial - [Steem-in-a-box]

Words
676
Reading
4 min
Listen
Play
8y

Witness Server Setup Tutorial - [Steem-in-a-box]


Did you ever think about being witness.? Do you think you can be good witness, but you don't know how to set up witness node? Read this tutorial!

5% of payout will go to someguy123@someguy123 and 5% to yabapmatt@yabapmatt.

Steem-in-a-box aka Steem Docker is docker container created by someguy123@someguy123 [Vote for Witness].


What do I need?

  • You need reliable server with at least 64 GB RAM, at least 100 GB disc fast network. I use server from privex@privex - https://www.privex.io/ - You can pay with STEEM, SBD, BTC, LTC.

  • Ubuntu 16.04


Tutorial:

You need to install some basic dependencies first :
This will update your system.

sudo apt update
sudo apt install git curl wget

Than install Htop. This is optional, but it is useful for monitoring RAM usage.
sudo apt-get install htop


After this, you need to download Steem-in-a-box from Github.
git clone https://github.com/Someguy123/steem-docker.git

And move to steem-docker directory.
cd steem-docker

When you are in steem-docker directory, install docker. (If you are not logged in as root, you need to log out and back in again after installing docker)
./run.sh install_docker

Than:
./run.sh install

Now you need to download blocks from gtg@gtg's server. It will speed up your replay time.
./run.sh dlblocks


Open cli_wallet.
./run.sh remote_wallet

And create public and private key for your witness.
suggest_brain_key

This will look like:

If you get an error, close wallet (CRTL+D) and try again.

When you have pair of keys, save them, you will need them!

Close wallet - CTRL+D


You need to choose how much "Shared memory" you want to use. If you have 64 GB RAM server use few GB less (I use 60 GB). DO NOT CHOSE MORE RAM THAT YOU HAVE. If you have 64 GB server, do not chose 128 GB!!!

You need to chose more than 37.5 GB RAM (April 30,2018).

sudo ./run.sh shm_size 60G
Replace 60 with chosen amount.


Now open config.ini file in text editor, I'm using nano.
nano data/witness_node_data_dir/config.ini

You should see something like this:

Now change:
p2p-endpoint = 0.0.0.0:2001 to #p2p-endpoint = 0.0.0.0:2001 (Add #)

shared-file-size = 60G Change amount of Shared memory (If you chose 59 G before, change to 59)

# name of witness controlled by this node (e.g. initwitness )
witness = "fbslo" Change username. Don't forget to remove # (It is #witness = by default)

# WIF PRIVATE KEY to be used by one or more witnesses or miners
private-key = Put you private key generated by suggest_brain_key here. Name needs quotes, private key don't need quotes.

Save by CTRL+X and then Y.


Then you need to disable ports forwarding for seeds.
nano .env

File will be blank. Enter following:
PORTS=
DOCKER_NAME=witness

Save by CTRL+X and then Y.


You can start server now

./run.sh replay
This will replay all blocks downloaded before.

You can check logs:
./run.sh logs

Or if you want to see logs in real time:
docker logs -f witness

If you don't get red error messages, leave it running. If you get error messages, ask for help in WITNESS channel on Steem.chat

When you get logs like this
application.cpp:514 handle_block ] Got 59 transactions on block 22014958 by pharesim -- latency: -449 ms
your witness is synced.


But you are not done yet. Open cli_wallet: ./run.sh wallet

Set password for cli_wallet: set_password thisismypassword

Unlock wallet: unlock thisismypassword

And import active key from steemit: import_key 5xxxxxxxxxxxxxxx
(You can get active key on steemit: Wallet -> Permissions -> Active Key -> Login to show -> you need to login -> Show private key. It begins with 5.)

Now you need to create witness on the network:
update_witness "ACCOUNT" "https://steemit.com/witness-category/@account/my-witness-thread" "STMxxxxxxx" {"account_creation_fee":"0.100 STEEM","maximum_block_size":65536,"sbd_interest_rate":0} true

Replace "ACCOUNT" with your account name (e.g. "fbslo") It need quotes.

Replace "https://steemit.com/witness-category/@account/my-witness-thread" with link to your witness post. It need quotes.

Replace "STMxxxxxxx" with PUBLIC key from suggest_brain_key.


You are witness now :)


But as witness, you need to run a price feed.

I'm using price feed by yabapmatt@yabapmatt.

You need npm and nodejs (if you alredy have npm and nodejs installed you can skip this).
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt-get install -y nodejs

Now download it form github and install it.
git clone https://github.com/MattyIce/pricefeed.git pricefeed
cd pricefeed
npm install

Now update config.json file in text editor (I use nano).
nano config.json

Enter account name, active key, interval and exchanges.

Run price feed background with PM2.
sudo npm install pm2 -g
pm2 start feed.js
pm2 logs feed


Monitor your RAM usage by Htop: htop


You are witness now. It can take days or weeks to get first block. Try to get votes.

Don't forget to vote for yourself, someguy123@someguy123, yabapmatt@yabapmatt and fbslo@fbslo!


Sources:
@someguy123's instructions
Price feed


fbslo@fbslo


27496184_2012467288996553_1171355060_n.png
(Click on the button)

alt

(Go to https://steemit.com/~witnesses and type fbslo at the bottom of the page)


Please read my Witness Thread and support me by voting fbslo@fbslo for witness.

Witness Server Setup Tutorial - [Steem-in-a-box] | Ecency