How to deploy a Steem Witness node by Docker?steemCreated with Sketch.

in #witness2 years ago (edited)

Pre Words

Recently there are some new users coming in Steem ecology and they want to build their witness nodes.

I wrote a simple tutorial to tell people how to deploy it long long ago (

This tutorial uses a tool bash which were wroten by Someguy123. In my tutorial I just use this tool bash ./ start command. Other commands were not tested by me, so I didn't write into my tutorial.

But people always get in confused. They always ask me why ./ install command runs failed or why ./ dlblocks runs failed, etc....


I didn't tell you to run those commands. That means these commands are not fully testd by me. I am not responsible for these.

Well. That's why I decide to write a new tutorial without using Someguy123's bash tool.

BTW, please learn some base knowledge of Docker before you decide to deploy witness node by Docker. That will save everyone's time. I don't think explaining every docker command mean is my job.

Tutorial Start

Please do this tutorial under the root user.

Pre Environment

  • A Linux OS
  • Docker installed
  • wget installed
  • lz4 installed
  • Get in root user environment. All commands need be done under root.

Prepare folders

# mkdir -p /data/steem/data/blockchain

Prepare blockchain data

You could get my backup blockchain data from here:

  • If you want to replay blockchain data, just download block_log file. Replay data will takes a long time.
# wget
# gzip -d block_log_20220714.tar.gz
# mv block_log /data/steem/data/blockchain/
  • If you don't want to replay blockchain data, download steem_witness.tar.lz4 file.
# wget
# tar --use-compress-program=lz4 -xf steem_witness_20220714.tar.lz4 -C /data/steem/data

Notice: maybe the file name contains another date tag. Please refer to

Prepare sign private key

# docker run -it --rm \
steemit/steem:0.23.x-mira \
/usr/local/steemd/bin/get_dev_key STM your_random_str

Replace your_random_str by a strong random string.

Prepare config file

# wget
# mv config_witness.ini /data/steem/data/config.ini

Edit /data/steem/data/config.ini and add witness= and private-key = config into it.

Run Node

  • If you want to replay, do this command below:
# docker run -itd \
--name witness \
-p 2001:2001 \
-v /data/steem/data:/steem \
ety001/steem-mira:0.23.1 \
steemd --data-dir=/steem --replay-blockchain
  • If you don't want to replay, do this command below:
# docker run -itd \
--name witness \
-p 2001:2001 \
-v /data/steem/data:/steem \
ety001/steem-mira:0.23.1 \
steemd --data-dir=/steem

Check Node Log

# docker logs -f --tail 100 witness

You could edit the tail param to show more info.

Stop Node

# docker network disconnect bridge witness
# docker stop -t 600 witness
# docker rm witness

One more thing

If you replay blockchain data by yourself, please remember to restart node without the --replay-blockchain param after replaying finished.

Any issue, please leave a message for me.

Thank you for reading. I'm a witness. You could find more on my site

I would really appreciate your witness vote! You can vote by AuthSteem. Or open page, input ety001 to vote.


Thank you!


Thank you for the new tutorial.
One day I'll take the time to set up a node too :-)

Hello @ety001
I've been looking for the latest instructions for days. There are many, but not up to date. I'll try to create a seed node with your tutorial as soon as I've downloded. Unfortunately, the download rate is very low. Would it be possible to send the data quickly? if so, I would be very happy.
Thank you for the great guide, I hope it works.
I had no success with someguy's steem-docker, it hangs when replaying.

Since I'm using a cheap big storage vps, there's nothing I can do to increase my VPS network speed.
I think you can buy a cheap VPS located in US West as a transfer proxy to download.

Hello @ety001 dear friend
I would first like to thank you for the great tutorial.
FullNode works.
I tested function here
I would also like to thank @steem-supporter his tutorial just helped me so much -0-23-1-with-mira
A big thank you and @steem-supporter

Now I will test for a week



Hey @ety001

Since tonight I have had a problem with my witness node.
The server was not accessible for some time and apparently there was also a problem with the database during the restart:

62147ms database.cpp:192 open ] args.data_dir: /steem/blockchain args.shared_mem_dir: /steem/blockchain args.shared_file_size: 68719476736
62158ms chain_plugin.cpp:608 plugin_startup ] Error opening database. If the binary or configuration has changed, replay the blockchain explicitly using --replay-blockchain.

I'm going to try a replay_blockchain first. That will probably take a little while.
Or would you recommend downloading a current block_log right away and using that?

I suggest you remove all broken data and then downlaod the block data with status data and restart the witness node.

Download only block_log and replaying it by yourself would take a very long time.

Thank you. I better load the steem_witness file from your server then.

Edit: I got it. I removed the data in the blockchaindirectory and restart the node with the new data. Thank you again! :-)

Hello @ety001,

How to access wallet cli this tutorial?
And should I type the private key of my private-key partitions?

Sorry, I'm not using cli wallet. I can't give you any suggestion about it.

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.029
BTC 56948.01
ETH 3056.88
USDT 1.00
SBD 2.40