HOWTO Setup a Steem Witness Node

Step by step guide on how to setup a Steem Witness Node. Please see my references at the end of this article.

You can manually install Steem witness node, @someguy123 prepared STEEM-in-a-Box using Docker and I continuously updated it with screen captured installation guide to keep it simple stupid (KISS).

Revisions.

  • Aug 31, 2019. Updated to v0.22.0
  • June 30, 2019. Fresh install using 0.20.11 build to test this tutorial.
  • April 20, 2019. Fresh install using 0.20.10 build to test this step-by-step tutorial, making sure still working as intended.
  • January 22, 2019. Update to 0.20.9
  • December 14, 2018. Update to 0.20.8
  • December 10, 2018. Update to 0.20.7
  • October 26, 2018. Update to 0.20.6
  • September 29, 2018. Update to 0.20.5
  • September 28, 2018. Update to 0.20.4
  • September 25, 2018. Update to 0.20.3
  • September 24, 2018. Upgrade to HF 0.20.2
  • September 17, 2018. Halted the steem blockchain, developers are checking the issue.
  • September 15, 2018. Upgraded to HF 0.20, see detailed upgrade steps last page.
  • August 29, 2018. Step-by-step guide on how to install Witness node to AppBase version 0.19.12. I upgraded my server memory to 96GB RAM.
  • March 2, 2018. Updated to support 64GB RAM server.
  • January 10, 2018. Updated.
  • The OLD procedure is here for troubleshooting tips only.

What Server Specification is recommended? I’ve tested it using a minimum requirement listed below. You can buy or rent your server, it’s up to you to decide.

  • 4 CPU (Minimum CPU)
  • 64 GB RAM (recommend minimum).
  • 500 GB SSD (200GB minimum).

I’m using Ubuntu 16.04 LTS for my operating system. I failed to install Steem using the latest version of Ubuntu 17.x, so this procedure is using Ubuntu 16.04 LTS.

When I setup a Server or a workstation. I always set the date and time correct, so I can get a good event logs later on for trouble shooting.

I prefer using screen utility so I can open multiple session. If not installed, run this command.

$ sudo apt-get install screen

Install Linux Process Monitoring, to monitor CPU and Memory current usage.
$ apt-get install htop

Set your timezone, for me it’s EST (optional)
$ sudo timedatectl set-timezone America/New_York

Step 01. Install all dependencies.

sudo apt update

sudo apt install git curl wget

Step 02. Download Steem in the box courtesy by @someguy123 using git clone.

git clone https://github.com/Someguy123/steem-docker.git

cd steem-docker

Step 03. Let’s install docker.

./run.sh install_docker

THIS IS IMPORTANT. After the install_docker is finished. Logout, re-login, then change directory to steem-docker.

You will see something like this captured screen.

Yehey.com.install.docker

Step 04. Pre-compile Steem.

./run.sh install

Then build and start, this will take a while to finish the installation. This is the time to take a break.

Step 05. Download a copy of blocks. This will take some hours depending on your server specifications and internet speed.

./run.sh dlblocks

Alternative download from @gtg server.

cd data/witness_node_data_dir/blockchain
Download the file (currently 152GB as of September 1, 2018). This will take hours to download, time to take a break or watch a movie.
wget https://gtg.steem.house/get/blockchain/block_log

or I can use secure copy (scp) block_log from one of my backup server, using the following command.

scp /path/block_log DestinationServerLogin@DestinationServerIP:/path/

Enter the password of DestinationServerLogin to authenticate and begin copying.

Step 06. Run the wallet.

./run.sh remote_wallet

Step 07. Create a key pair for your witness.

suggest_brain_key

Yehey.com.remote.wallet.PNG

After running suggest_brain_key, copy your wif_priv_key and pub_key you will use this later on.

Press CTRL + D to exit the wallet.

Step 08. Adjust your Witness server memory. MUST re-adjust if server upgrade it’s memory. DO NOT GIVE MORE SHARED MEMORY THAN YOU HAVE ACTUAL RAM AVAILABLE. e.g. In our server specification example, we are using 64GB RAM only use 63G for your shared memory.

sudo ./run.sh shm_size 90G (my server runs on 96GB RAM)

Step 09. Edit the config.ini file.

nano data/witness_node_data_dir/config.ini

Some data in config.ini file.

# p2p-endpoint = 0.0.0.0:2001
p2p-seed-node = steem-seed1.abit-more.com:2001 52.74.152.79:2001 seed.steemd.com:34191 anyx.co:2001 seed.xeldal.com:12150 seed.steemnodes.com:2001 seed.liondani.com:2016 gtg.steem.house:2001 seed.jesta.us:2001 steemd.pharesim.me:2001 5.9.18.213:2001 lafonasteem.com:2001 seed.rossco99.com:2001 steem-seed.altcap.io:40696 seed.roelandp.nl:2001 steem.global:2001 seed.esteem.ws:2001 seed.timcliff.com:2001 104.199.118.92:2001 seed.steemviz.com:2001 steem-seed.lukestokes.info:2001 seed.steemian.info:2001 seed.followbtcnews.com:2001 node.mahdiyari.info:2001 seed.curiesteem.com:2001 seed.riversteem.com:2001 148.251.237.104:2001 seed1.blockbrothers.io:2001 steemseed-fin.privex.io:2001 seed.jamzed.pl:2001 seed1.cryptobot.news:2001 seed.thecryptodrive.com:2001 seed.brandonfrye.us:2001 seed.firepower.ltd:2001

shared-file-size = 90G (I upgraded my server, now using 96GB RAM)
shared-file-dir = /shm
# enable-plugin = witness condenser_api network_broadcast_api rc_api

plugin = witness condenser_api network_broadcast_api rc_api
witness = “yehey”  <– change this using your Steem account ID.
# WIF PRIVATE KEY to be used by one or more witnesses or miners. This the “wif_priv_key” result using suggest_brain_key.
private-key = 5KfKJ………….

Put in your witness name, and your WIF private key from earlier. Be aware the name needs quotes, while the private key doesn’t. You use the private key (wif_priv_key) you generated earlier using suggest_key_brain and put into notepad.

Step 10. To disable port forwarding for seeds:

nano .env

On a blank line, put the following:
PORTS=
DOCKER_NAME=witness

Step 11. 

./run.sh build v0.20.11 (check the latest build)

This will take 30+ minutes to build, time to take a break.

And when it’s done. You will see the successfully tag steem build number. As of writing this article, this is v0.20.11, as shown below.

Then Run these commands.

docker tag steem:v0.20.11 steem:latest

./run.sh replay

Check status
./run.sh status
Container exists?: YES
Container running?: YES

docker logs –tail=30 –follow witness

Check current version.
~/steem-docker$ docker logs witness | grep “blockchain version”
blockchain version: 0.20.11

Check the logs, every 10 minutes. Use this command to see the current logs.

./run.sh logs

or if you want to be nerdy, use this command to see the logs in real-time

docker logs –tail=30 –follow witness

You will see something like this results.

Yehey.com.replay.logs.PNG

You should see the logs below when it’s fully sync to the blockchain.

YEHEY.com.Witness.Blockchain.synched.PNG

Your Steem Witness Node server is ready. You’re not done, continue reading this article.

Running “top” (or htop if you installed it) will you an idea of your memory usage, see sample captured screen image below. This example shows 5.6% CPU and 89% MEM. The 89% utilization of Memory is too high if you ask me, but this is enough to run your Witness Node server. In humble opinion, you need to bring up your RAM to at least 64GB (as of March 2, 2018, updated from January 10, 2018).

YEHEY.com.Top.PNG

I also check docker session, ps -aux | grep docker

That’s a normal operations of my Witness Node server.

Step 12.  We are NOT done. Go to Steemit.com website, login to your account. Click on Wallet, Permission, click on Show Private Key. Your Active Private Key will appear as 5andSomeLongCharacter. Take note, your Active Private Key start in number 5 e.g. 5andSomeLongCharacter.

./run.sh wallet (local) or using ./run.sh remote_wallet (connect to a remote seed node)

Set a password, unlock the wallet with the same password, then import your ACTIVE private key from Steemit.com website.

For example.

set_password “MyAlph4Num4r1cP4ssw0rd”
unlock “MyAlph4Num4r1cP4ssw0rd”
import_key 5andSomeLongCharacter // this is your ACTIVE private key

press CTRL + d to exit.

Step 13. Finally, update your witness information on the network. Please note, you have to enter the command within 15-30 seconds before it timed out.

update_witness “yehey” “https://witness.yehey.org” “Public_Key_from_Suggest_Brain_Key” {“account_creation_fee”:”3.000 STEEM”,”maximum_block_size”:65536,”sbd_interest_rate”:0} true

If no error, congratulation to you as a Witness! Welcome to the STEEM Witness Club. If you received an “invalid state” error, your session timed out. Try it again, this time make it quick. Tips. I’ve used a notepad to prepare my update and paste it.

Now, vote for your self and yehey for Witness, go to https://steemit.com/~witnesses and vote for yehey.

YEHEY.com.Witness.Vote

As Witness, you are expected to send update for Price Feed. Thanks to @someguy123 and @yabapmatt they provided scripts ready to go.

Step 14. Installation of SteemFeed JS by @someguy123 and/or PriceFeed by @yabapmatt
First, download the git repository, then edit config.json as needed. The interval is in minutes.

Using steemfeed-js, in steem-docker folder

git clone https://github.com/Someguy123/steemfeed-js.git
cd steemfeed-js
cp config.example.json config.json
nano config.json

Sample config.json file. The Interval is 60 minutes, to send Price Feed update.

{
“node”: “wss://steemd.privex.io/”,  // Added Jan 8, 2018 to point to new server.
“name”: “yehey”,
“wif”: “5KUKG…ACTIVE_PRIVATE_KEY”,
“interval”: 60
}

Optional Node Servers: At this time, you only need one in config.json file. I don’t know yet if you can put multiple servers.

“wss://gtg.steem.house:8090”
“wss://seed.bitcoiner.me”
“wss://rpc.buildteam.io”
“wss://steemd.pevo.science”
“wss://steemd.steemitstage.com”

I’ve learned from other Witnesses, complaining about Steemfeed-js frequently. Well, it’s not the end of the world. Here’s your alternative https://github.com/KINGdotNET/pricefeed, courtesy by @yabapmatt. Just follow the step-by-step procedure to set it up.

Step 15. Starting Steemfeed-js

cd steemfeed-js
docker build -t steemfeed-js .
docker run -itd –rm –name feed steemfeed-js

PLEASE NOTE: single dash itd double dash rm double dash name, the website theme is messing it up.

# Check the status with docker logs
docker logs feed

Got an error the first time running the docker logs feed, as shown below. Attempting to login account.

YEHEY.com.docker.logs.feed

Waited to make sure the –replay-blockchain is fully synced, re-run the following command again.

docker build -t steemfeed-js .
docker run -itd –rm –name feed steemfeed-js
# Check the status with docker logs
docker logs feed

YEHEY.com.docker.logs.feed.success

Checking your Price Feed update using @drakos https://steemian.info/witnesses website. Or go to https://steemdb.com/@yehey to check your price feed update. You will see mine updating every hour.

If you get an error running “docker logs feed”, exit SSH and re-login again and it will correct itself.

Re-run ps aux | grep docker to check docker session. You will see the 3rd docker session pid “6297” as shown below. It will be a different number on your server.

That’s all for now.

To find out when did you processed a block, visit https://steemdb.com/@yehey/blocks change @yehey using your account.

What’s Next? You need to advertise to your family and friends that you are now a Witness and ask them to vote for you. Give them plenty of reason why their votes matter and how you give back to the community.

Step 16. What to review to make sure your Witness server is configured correctly?

  1. In Step 07 you will run suggest_brain_key to produce keys for your witness server, a private and public.
  2. You will use the private key (from suggest_brain_key) for your config.ini file in Step 09.
  3. You will import your ACTIVE Key in Step 12.
  4. You will use the public key (from suggest_brain_key) to broadcast your intent as a Witness in Step 13.
  5. To verify, go to https://steemd.com/@yehey (replace @yehey with your witness name), scroll down ’till you see your Authorities Signing Keys. You should see your public key here. If not, go back and review the step by step procedures.
  6. When it’s done, go to https://steemian.info/witnesses website and find your Witness Name. See captured image below.

The blue color indicates the Witness server is ready to produce block. The crossed witness name in red, means a witness server under maintenance (offline) or a new witness waiting to produce it’s first block.

FYI. Ranking is very important, this is how you produce blocks, more blocks produced more Steem goes to your witness account. This is very important to advertise your witness intent and ask them to vote for you and me (@yehey) as their witness. If your rank is LOW, it will take days for you to produce 1 block.

Question is can you afford to pay for Witness node per month producing 1 block in 24-72 hours? If YES, then continue to be a Witness make a better world. If No, you better spend your $$$ to buy Steem Power (SP) and create good content for a better reward.

How to check if you produce a block? Visit https://steemdb.com/@yehey (replace @yehey with your witness name) to check the producer_reward, see captured screen below. This automatically added to your witness account.

+++++++++++++++++++++++++++++++++++++++

The following procedures if you will upgrade your Witness Node server memory.

Upgrading my Witness Node server memory from 64GB to 96GB.

New server running at 96GB RAM.
./run.sh stop
sudo ./run.sh shm_size 90G

Edit config.ini in ~/steem-docker/data/witness_node_data_dir
shared-file-size = 90G

./run.sh replay

After sync.

# Check the status with docker logs
docker logs feed

Check your server memory, record utilization.

Use “docker logs –tail=30 –follow witness” (two dash line) to monitor logs in real-time.

Some useful commands and websites to remember.

+++++++++++++++++++++++++++++++++++

For maintenance:

Disable the signing key first to avoid missing blocks. As recommended by @drakos check the timing, if u’re low in the rank and now scheduled soon, u can do your maintenance and not lose your turn.

update_witness “yehey” “https://steemit.com/witness-category/@yehey/My-Witness-Campaign” “STM1111111111111111111111111111111114T1Anm” {“account_creation_fee”:”0.100 STEEM”,”maximum_block_size”:65536,”sbd_interest_rate”:0} true

Press CTRL + d, to exit

./run.sh stop

update_witness “yehey” “https://steemit.com/witness-category/@yehey/My-Witness-Campaign” “Public_Key_from_Suggest_Brain_Key” {“account_creation_fee”:”0.100 STEEM”,”maximum_block_size”:65536,”sbd_interest_rate”:0} true

Press CTRL + d, to exit

./run.sh start – to begin running steemd replay again.

If “docker feed logs” not working. Here’s how to troubleshoot.

$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
76f821043793 steemfeed-js “npm start” About a minute ago Up About a minute feed
12506a870ff7 steem “steemd –replay” 2 days ago Up 2 days 2001/tcp, 5000/tcp, 8090/tcp witness

You should see two cointainer ID, for feed and witness. If the feed is not available running. Do the following.

    1. docker rm -f feed
    1. cd steemfeed-js
    1. docker run -itd –rm –name feed steemfeed-js // to re-run steemfeed-js
  1. docker logs feed // to run price feed.

Note: steemd.steemit.com has retired since Jan 6, 2018. Edit app.js file, change it using steemd.privex.io. or update the config.json file with the following entries.

{
“node”: “wss://steemd.privex.io/”,  // Added Jan 8, 2018 to point to new server.
“name”: “yehey”,
“wif”: “5KUKG…ACTIVE_PRIVATE_KEY”,
“interval”: 60
}

Then, re-run the previous 4 steps.

+++++++++++++++++++++++++++++++++++

Install Conductor a Steem Witness Toolkit. In my personal opinion, this is the most easiest to update your Witness information.

$ steempy addkey

when prompted, paste your active key with shift-insert

Then use “steempy listkeys” to make sure it’s added, also “steempy listsaccounts”

$ steempy listkeys

$ steempy set nodes https://steemd.steemit.com,https://steemd.privex.io,https://gtg.steem.house:8090

$ conductor init
What is your witness account name?: yehey
Imported a witness yehey from its existing settings.

$ conductor feed
Fri Oct 20 16:52:28 2017
Old Price: 1.019
New Price: 1.002
Current STEEM price: 1.002 USD
Current SBD price: 0.942 USD
Quote: 1.000 STEEM
Spread between prices: 1.697%

steempy wallet is in .local/share/steem/steem.sqlite

Some references I’ve used to build my Witness node and Seed node.

Useful Tools

August 30, 2018. Troubleshooting error upgrading to 0.19.12. The error shows up after 99% replaying.

3186249ms p2p_plugin.cpp:650 operator() ] P2P adding seed node 162.213.199.171:34191
3186250ms p2p_plugin.cpp:650 operator() ] P2P adding seed node 144.217.88.191:2001
90003 already_connected_to_requested_peer: already connected to requested peer
already connected to requested endpoint 144.217.88.191:2001
{“endpoint”:”144.217.88.191:2001″}
node.cpp:4775 connect_to_endpoint
stack trace:
0x0000000001a8358c steemd : fc::segfault_handler(int, siginfo_t*, void*)+0x1c
0x00007fe838a72390 /lib/x86_64-linux-gnu/libpthread.so.0 : +0x11390
0x0000000001a6ee13 steemd : fc::exception_factory::rethrow(fc::exception const&) const+0x33
0x0000000001a6eeb4 steemd() [0x1a6eeb4]
0x0000000001a807b9 steemd : fc::promise_base::_wait_until(fc::time_point const&)+0x49
0x0000000001a80fb7 steemd : fc::promise_base::_wait(fc::microseconds const&)+0x1a7
0x000000000121021c steemd : graphene::net::peer_connection::destroy(char const*)+0x6bc
0x000000000121813e steemd : graphene::net::peer_connection::~peer_connection()+0x1e
0x00000000012188e1 steemd : std::_Sp_counted_ptr<graphene::net::peer_connection*, (__gnu_cxx::_Lock_policy)2>::_M_dispose()+0x21
0x0000000001097876 steemd : graphene::net::detail::node_impl::delayed_peer_deletion_task()+0x406
0x0000000001097d64 steemd() [0x1097d64]
0x0000000001a81704 steemd : fc::task_base::run_impl()+0x44
0x0000000001a7f2cb steemd : fc::thread_d::process_tasks()+0x50b
0x0000000001a7f9e5 steemd : fc::thread_d::start_process_tasks(long)+0x25
0x0000000001b9df61 steemd : make_fcontext+0x21
executing command:
addr2line -p -a -f -C -i -e /usr/bin/steemd 0000000001a82f16 0000000001a8358c 00007fe838a72390 0000000001a6ee13 0000000001a6eeb4 0000000001a807b9 0000000001a80fb7 000000000121021c 000000000121813e 00000000012188e1 0000000001097876 0000000001097d64 0000000001a81704 0000000001a7f2cb 0000000001a7f9e5 0000000001b9df61

Resolution: Still troubleshooting the error. ? Tried the following.

  1. Deleted block_logs.
  2. Download block_logs
  3. cd witness_node_data_dir/blockchain
  4. wget https://gtg.steem.house/get/blockchain/block_log
  5. after the download, run ./run.sh replay to try again.
  6. Check config.ini seed-nodes entries, making sure they are online. Use the website https://status.steemnodes.com/ to check the status.
  7. Above action didn’t work. ./run.sh status shows Container exist? Yes and Container running: No.
  8. Run ./run.sh replay… waiting for result. Still now working.
  9. As recommended by other witnesses, change the seed-node to p2p-seed-node (p2p-seed-node = steem-seed1.abit-more.com:2001 52.74.152.79:2001 seed.steemd.com:34191 anyx.co:2001 seed.xeldal.com:12150 seed.steemnodes.com:2001 seed.liondani.com:2016 gtg.steem.house:2001 seed.jesta.us:2001 steemd.pharesim.me:2001 5.9.18.213:2001 lafonasteem.com:2001 seed.rossco99.com:2001 steem-seed.altcap.io:40696 seed.roelandp.nl:2001 steem.global:2001 seed.esteem.ws:2001 seed.timcliff.com:2001 104.199.118.92:2001 seed.steemviz.com:2001 steem-seed.lukestokes.info:2001 seed.steemian.info:2001 seed.followbtcnews.com:2001 node.mahdiyari.info:2001 seed.curiesteem.com:2001 seed.riversteem.com:2001 148.251.237.104:2001 seed1.blockbrothers.io:2001 steemseed-fin.privex.io:2001 seed.jamzed.pl:2001 seed1.cryptobot.news:2001 seed.thecryptodrive.com:2001 seed.brandonfrye.us:2001 seed.firepower.ltd:2001). Fixed the issue, now producing block.
  10. Issue closed.

When I tried to run update_witness command, got the following error.

Assert Exception:_network_broadcast_api: network_broadcast_api_plugin not enabled.
{“error”:”Assert Exception:_network_broadcast_api: network_broadcast_api_plugin not enabled.”,”data”:{“id”:4,”error”:{“code”:-32003,”message”:”Assert Exception:_network_broadcast_api: network_broadcast_api_plugin not enabled.”,”data”:{“code”:10,”name”:”assert_exception”,”message”:”Assert Exception”,”stack”:[{“context”:{“level”:”error”,”file”:”condenser_api.cpp”,”line”:1722,”method”:”broadcast_transaction_synchronous”,”hostname”:””,”timestamp”:”2018-09-01T12:20:55″},”format”:”_network_broadcast_api: network_broadcast_api_plugin not enabled.”,”data”:{}}]}}}}
state.cpp:38 handle_reply
unlocked >>>

Resolution. I changed my steem account password, so I need to re-introduce the new information to the blockchain. I can do this using update_witness command via run.sh wallet but for this I have used a conductor tool. It is good to know other tools to managing your witness server.

In my conductor server (yes, I have a dedicated server). I run the following commands.

  1. steempy addkey // to add the new active key password
  2. steemy listaccounts // to check if the new active key information is added.
  3. conductor status // to check the current status
  4. conductor enable your_active_key // to enable witness server

Issue is resolved.

September 15, 2018 Upgrade to HF 0.20

Following @someguy123 ugprade step by step procedure.
Before I do the upgrade, I disabled my witness server so I won’t miss any block.
~/steem-docker $ git fetch
~/steem-docker $ git checkout master
~/steem-docker $ git pull
Backup your existing config.ini file.
mv data/witness_node_data_dir/config.ini data/witness_node_data_dir/config.ini.bak-sep2018
Run install
$ ./run.sh install
I also run this command to support my 96GB RAM
sudo ./run.sh shm_size 90G
Then, edit data/witness_node_data_dir/config.ini file to add your witness account and key.
nano data/witness_node_data_dir/config.ini
Example config.ini
# p2p-endpoint = 0.0.0.0:2001
shared-file-size = 90G
witness = “yehey”
private-key = your_witness_private_key
$ ./run.sh stop
$ ./run.sh start // getting error container not running.
$ ./run.sh status
Container exists?: YES
Container running?: NO (!)
Container isn’t running. Start it with ./run.sh start
Follow the steps below to fix it.
$ ./run.sh build // this will take a few minutes
then run
$ ./run.sh replay
Check the status
./run.sh status
Container exists?: YES
Container running?: YES
Resolved – fixed the container issue.
Check logs
docker logs –tail=30 –follow witness
When it’s ready to produce block.
Enable the Witness server by running conductor command.
$ conductor enable

September 25, 2018 Update to HF 0.20.3

from old setup
git checkout master
git pull
DK_TAG=someguy123/steem:v0.20.1
./run.sh install

updating to 0.20.3
git checkout master
git pull
./run.sh install

docker images // checking the docker releases/versions.
steem latest 149185b1373f 2 hours ago 1.34GB
someguy123/steem latest 149185b1373f 2 hours ago 1.34GB

you can also do it manually:
docker stop witness
docker rm witness
docker pull someguy123/steem
docker tag someguy123/steem steem
./run.sh replay

if modified the run.sh file, do this to reset back to original:*
git checkout master
git reset –hard
git pull

git checkout master
git pull
./run.sh build master
docker tag steem:master steem:latest

nano data/witness_node_data_dir/config.ini
# Plugin(s) to enable, may be specified multiple times
enable-plugin = witness condenser_api network_broadcast_api rc_api

If everything is ok, you should have this version.
docker logs seed | grep “blockchain version” or
docker logs witness | grep “blockchain version”
0.20.3

then run, to go live.
conductor enable pub_key

September 28 update.

This is to apply bug fix rlease regarding the rc plugin. https://github.com/steemit/steem/releases

Updating the backup witness server.
./run.sh install
./run.sh replay // container not working.

try this one.
./run.sh build v0.20.4 && docker tag steem:v0.20.4 steem:latest
./run.sh replay
that works ok.
Check status
./run.sh status
Container exists?: YES
Container running?: YES

Check current version.
~/steem-docker$ docker logs seed | grep “blockchain version”
blockchain version: 0.20.4

Disabled primary witness server.
conductor disable

Enable backup witness server
conductor enable pub_key

Next is to update the other witness server to 0.20.4 and make as backup.

September 29 update for maintenance.

./run.sh build v0.20.5 && docker tag steem:v0.20.5 steem:latest
./run.sh replay
that works ok.
Check status
./run.sh status
Container exists?: YES
Container running?: YES

docker logs –tail=30 –follow witness
or docker logs –tail=30 –follow seed

Check current version.
~/steem-docker$ docker logs witness | grep “blockchain version”
or docker logs seed | grep “blockchain version”
blockchain version: 0.20.5

Disabled primary witness server.
conductor disable

Enable backup witness server
conductor enable pub_key

October 26, 2018. Update to 0.20.6

Run the following update commands in your backup server.
./run.sh build v0.20.6 && docker tag steem:v0.20.6 steem:latest
./run.sh replay

Check status
./run.sh status
Container exists?: YES
Container running?: YES

docker logs –tail=30 –follow witness
or
docker logs –tail=30 –follow seed

Check current version.
~/steem-docker$ docker logs witness | grep “blockchain version”
or
docker logs seed | grep “blockchain version”
blockchain version: 0.20.6

Disabled primary witness server.
conductor disable

Enable backup witness server
conductor enable pub_key

December 10, 2018. Update to 0.20.7. Approximately 6 hours to run update and replay.

Run the following update commands in your backup server.
./run.sh build v0.20.7 && docker tag steem:v0.20.7 steem:latest
./run.sh replay

Check status
./run.sh status
Container exists?: YES
Container running?: YES

docker logs –tail=30 –follow witness
or
docker logs –tail=30 –follow seed

Check current version.
~/steem-docker$ docker logs witness | grep “blockchain version”
or
docker logs seed | grep “blockchain version”
blockchain version: 0.20.7

Disabled primary witness server.
conductor disable

Enable backup witness server
conductor enable pub_key

December 14, 2018. Update to 0.20.8. Approximately 5-6 hours to run update and replay.

Run the following update commands in your backup server.
./run.sh build v0.20.8 && docker tag steem:v0.20.8 steem:latest
./run.sh replay

Check status
./run.sh status
Container exists?: YES
Container running?: YES

docker logs –tail=30 –follow witness
or
docker logs –tail=30 –follow seed

Check current version.
~/steem-docker$ docker logs witness | grep “blockchain version”
or
docker logs seed | grep “blockchain version”
blockchain version: 0.20.8

Disabled primary witness server.
conductor disable

Enable backup witness server
conductor enable pub_key

January 22, 2019. Update to 0.20.9. (Approximately 5-6 hours to run update and replay). This release fixes a security vulnerability in JSON parsing. This update is optional, but recommended for all nodes running public API endpoints or plugins that rely on custom JSON operations (i.e. follow plugin).

Run the following update commands in your backup server.
./run.sh build v0.20.9 && docker tag steem:v0.20.9 steem:latest
./run.sh replay

Check status
./run.sh status
Container exists?: YES
Container running?: YES

docker logs –tail=30 –follow witness
or
docker logs –tail=30 –follow seed

Check current version.
~/steem-docker$ docker logs witness | grep “blockchain version”
or
docker logs seed | grep “blockchain version”
blockchain version: 0.20.9

Disabled primary witness server.
conductor disable

Enable backup witness server
conductor enable pub_key

This update is taking a while to complete, got this error during replay using one of my witness backup server.

So, I have to troubleshoot.

A fellow witness @prc suggested the following task.

“since the block_log file is sequential, instead of downloading the entire thing all the time, you can simply remove part of it’s tail with `truncate –size 100M block_log` (because it might be corrupted by some non graceful termination) and get just the rest of it with `wget –continue https://gtg.steem.house/get/blockchain/block_log` this makes it a lot faster!

This didn’t work for me, keep failing my connections despite I have 250+ Mbps download and upload internet bandwidth.

I rebuild the witness server from scratch deleting the “steem-docker” folder, then following the above steps 1 to 11, to install and build a Witness server.

After all the troubleshooting, Replay is working again.

August 31, 2019. Update to v0.22.0. This update took me 24-48 hours to complete.

Run the following update commands in your backup server.
./run.sh build v0.22.0 && docker tag steem:v0.22.0 steem:latest
./run.sh replay

Check status
./run.sh status
Container exists?: YES
Container running?: YES

docker logs –tail=30 –follow witness
or
docker logs –tail=30 –follow seed

Check current version.
~/steem-docker$ docker logs witness | grep “blockchain version”
or
docker logs seed | grep “blockchain version”
blockchain version: 0.22.0

Disabled primary witness server.
conductor disable

Enable backup witness server
conductor enable pub_key

Support @QUE.COM

Founder, QUE.COM Internet Media. | Founder, Yehey.com a Shout for Joy! | MAJ.COM Management of Assets and Joint Ventures. More at KING.NET Ideas to Life.

2 thoughts on “HOWTO Setup a Steem Witness Node

Leave a Reply

Discover more from QUE.com

Subscribe now to keep reading and get access to the full archive.

Continue reading