Would you like to learn how to do a Steem witness installation? In this tutorial, we are going to show you how to install a Steem witness using a computer running Ubuntu Linux.
Hardware List:
The following section presents the list of equipment used to create this Steem tutorial.
Every piece of hardware listed above can be found at Amazon website.
Steem Related Tutorial:
On this page, we offer quick access to a list of tutorials related to Steem.
Tutorial – Steem Witness Installation
On the Ubuntu Linux console, use the following commands to install the BerkleyDB package:
# apt-get update
# apt-get install libdb++-dev libdb-dev
Use the following commands to install the required libraries and the required packages:
# apt-get install libboost-all-dev libzmq3-dev libminiupnpc-dev
# apt-get install curl git build-essential libtool autotools-dev
# apt-get install automake pkg-config bsdmainutils python3
# apt-get install software-properties-common libssl-dev libevent-dev
# apt-get install cmake doxygen
Create a directory to the node software and download the Steem package.
# mkdir /downloads
# cd /downloads
# git clone https://github.com/steemit/steem
Compile and install the Steem node software.
# cd steem
# git checkout stable
# git submodule update –init –recursive
# mkdir build
# cd build
# cmake -DLOW_MEMORY_NODE=ON -DCMAKE_BUILD_TYPE=Release ..
# make
# make install
Create the Steem configuration structure using the following commands:
# cd /root
# steemd
Press [CTRL + C] to stop the steem service.
This will create a directory named witness_node_data_dir with all the required files and folders inside /root.
First, let me show you how the default configuration file, config.ini, looks like.
Here is the original file, before our configuration:
shared-file-size = 54G
public-api = database_api login_api account_by_key_api
enable-plugin = witness account_history account_by_key
max-block-age = 200
flush = 100000
backtrace = yes
account-stats-bucket-size = [60,3600,21600,86400,604800,2592000]
account-stats-history-per-bucket = 100
account-stats-tracked-accounts = []
chain-stats-bucket-size = [60,3600,21600,86400,604800,2592000]
chain-stats-history-per-bucket = 100
follow-max-feed-size = 500
follow-start-feeds = 0
market-history-bucket-size = [15,60,300,3600,86400]
market-history-buckets-per-size = 5760
enable-stale-production = false
required-participation = false
[log.console_appender.stderr]
stream=std_error[log.file_appender.p2p]
filename=logs/p2p/p2p.log
[logger.default] level=warn
appenders=stderr
[logger.p2p] level=warn
appenders=p2p
Now, let’s delete the content of the configuration file.
# echo > witness_node_data_dir/config.ini
Our next step is to edit the configuration file.
# vi witness_node_data_dir/config.ini
Here is the new file with our configuration.
seed-node = seed-east.steemit.com:2001
seed-node = seed-central.steemit.com:2001
seed-node = seed-west.steemit.com:2001
seed-node = steem-seed1.abit-more.com:2001
seed-node = 52.74.152.79:2001
seed-node = seed.steemd.com:34191
seed-node = anyx.co:2001
seed-node = seed.xeldal.com:12150
seed-node = seed.steemnodes.com:2001
seed-node = seed.liondani.com:2016
seed-node = gtg.steem.house:2001
seed-node = seed.jesta.us:2001
seed-node = steemd.pharesim.me:2001
seed-node = 5.9.18.213:2001
seed-node = lafonasteem.com:2001
seed-node = seed.rossco99.com:2001
seed-node = steem-seed.altcap.io:40696
seed-node = seed.steemfeeder.com:2001
seed-node = seed.roelandp.nl:2001
seed-node = steem.global:2001
seed-node = seed.esteem.ws:2001
seed-node = 176.31.126.187:2001
seed-node = seed.thecryptodrive.com:2001
seed-node = steem-id.altexplorer.xyz:2001
seed-node = seed.bitcoiner.me:2001
seed-node = 104.199.118.92:2001
seed-node = 192.99.4.226:2001
seed-node = seed.bhuz.info:2001
seed-node = seed.steemviz.com:2001
seed-node = steem-seed.lukestokes.info:2001
seed-node = seed.blackrift.net:2001
seed-node = seed.followbtcnews.com:2001
seed-node = node.mahdiyari.info:2001
seed-node = seed.jerrybanfield.com:2001
seed-node = seed.minnowshares.net:2001
seed-node = seed.windforce.farm:2001
seed-node = seed.teamsteem.me:2001
seed-node = steem-seed.crypto.fans:2001
shared-file-size = 100G
flush = 100000
rpc-endpoint = 0.0.0.0:8090
public-api = database_api login_api
enable-plugin = witness
bucket-size = [15,60,300,3600,86400]
history-per-size = 5760
enable-stale-production = false
required-participation = false
witness = “virtualcoin”
private-key = 5KABCDEFGHIJKLMNOPQRSTUVXYZ
[log.console_appender.stderr]
stream=std_error
[log.file_appender.p2p]
filename=logs/p2p/p2p.log
[logger.default]
level=warn
appenders=stderr
[logger.p2p]
level=warn
appenders=p2p
Copy the contents above to your config.ini file and change only the following options.
On the witness option, set it to your Steemit username.
witness = “virtualcoin”
In our example, we used our steemit username virtualcoin
On the private-key option, set it to your Steemit account ACTIVE PRIVATE KEY..
private-key = 5KABCDEFGHIJKLMNOPQRSTUVXYZ
Now, it is time to start your Steem witness node daemon.
# cd /root
# steemd
Wait for the synchronization of the blockchain to end.
The blockchain synchronization might take days or weeks.
After finishing the blockchain synchronization, you should start seeing messages like these:
Got 56 transactions on block 20094300 by good-karma — latency: 606 ms
Got 60 transactions on block 20094301 by blocktrades — latency: 710 ms
Got 47 transactions on block 20094302 by pharesim — latency: 732 ms
Got 50 transactions on block 20094303 by steemychicken1 — latency: 776 ms
Got 60 transactions on block 20094296 by someguy123 — latency: 613 ms
This means that your Steem witness is up and running
Use the following command to stop the Steem service:
# [CRTL + C]
Steem – Active Private key
If you don’t know how to get you ACTIVE PRIVATE KEY, here is a quick tutorial:
Go to the website steemit.com, access the Wallet menu and select the Permissions option.
On the permission menu, you will be presented to 4 public keys named: POSTING, ACTIVE, OWNER and MEMO.
Locate the ACTIVE option, click on the LOGIN TO SHOW button and enter your Steemit password.
After entering the Steemit password, click on the LOGIN TO SHOW button and your ACTIVE PRIVATE KEY key will be shown.
Copy this value and use it on the configuration file private-key option.
Steem – Reporting for Duty
After finishing the installation of your Steem witness, you need to let the network know that you are available.
After the Steemd service finishes the Blockchain synchronization, you need to access the local wallet.
# cd /root
# cli_wallet
Now, let’s protect the local wallet by setting a password.
# set_password “kamisama123”
In our example, we set the password kamisama123.
To unlock the local wallet use the following command.
# unlock “kamisama123”
The next step, is to import your steem account’s ACTIVE PRIVATE KEY inside the local wallet.
# import_key 5KABCDEFGHIJKLMNOPQRSTUVXYZ
Time to notify the network of your witness.
# update_witness “virtualcoin” “https://steemit.com/witness-category/@virtualcoin/my-witness-thread” “STM6ABCDEFGHIJKLMONPRST” {“account_creation_fee”:”0.100 STEEM”,”maximum_block_size”:65536,”sbd_interest_rate”:0} true
On the command above, you need to change my username virtualcoin to your Steem username.
On the command above, you need to change my ACTIVE PUBLIC KEY STM6ABCDEFGHIJKLMONPRST to your Steem ACTIVE PUBLIC KEY.
As a Witness, you are supposed to inform the system about the Steem Based Dolar price.
use the following command to notify the price to the system:
# publish_feed virtualcoin { “base”:”3.989 SBD”, “quote”:”1.000 STEEM”} true
After finishing everything, you can verify the status of your Steem witness.
# get_witness virtualcoin