After hours trying to figure out where is what to support new user, I decided to put a small tutorial on becoming a witness.
Forgot about dockers, you need Linux basics. It's easier and fun.
Docker technology was intended to make things easy for non linux users to use Linux software. In reality it actually make it much harder as you will have no idea what's happening in the background.
Assumption: > 100GB RAM, make this according to your needs, but be sure to have at least 64GB.
Source of build instruction:
https://github.com/steemit/steem/blob/master/doc/building.md
Get Ubuntu 16.04
- Dependencies:
apt-get update
sudo apt-get install -y \
autoconf \
automake \
cmake \
g++ \
git \
libssl-dev \
libtool \
make \
pkg-config \
python3 \
python3-jinja2 \
libboost-chrono-dev \
libboost-context-dev \
libboost-coroutine-dev \
libboost-date-time-dev \
libboost-filesystem-dev \
libboost-iostreams-dev \
libboost-locale-dev \
libboost-program-options-dev \
libboost-serialization-dev \
libboost-signals-dev \
libboost-system-dev \
libboost-test-dev \
libboost-thread-dev \
doxygen \
libncurses5-dev \
libreadline-dev \
perl
- Cloning a repo and compiling
git clone https://github.com/steemit/steem
cd steem
git checkout stable
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc) steemd
make -j$(nproc) cli_wallet
Edit /etc/fstab and add a line
ramfs /dev/shm ramfs defaults,noexec,nosuid,size=100G 0 0
reboot now
cd build/programs/steemd/
./steemd
ctrl + c
This will create config.ini in witness_node_data_dir
Edit build/programs/steemd/witness_node_data_dir/config.ini
p2p-endpoint = 0.0.0.0:2001
seed-node = seed.steemnodes.com:2001
seed-node = seed.blackrift.net:2001
seed-node = seed.jerrybanfield.com:2001
seed-node = seed.curiesteem.com:2001
seed-node = seed.minnowshares.net:2001
seed-node = seed.liondani.com:2016
seed-node = steem-seed.altcap.io:40696
seed-node = seed.windforce.farm:2001
seed-node = seed.followbtcnews.com:2001
seed-node = 176.31.126.187:2001
seed-node = seed.rossco99.com:2001
seed-node = seed.esteem.ws:2001
seed-node = seed1.blockbrothers.io:2001
seed-node = seed.bitcoiner.me:2001
seed-node = seed.steem.prcolaco.com:2001
seed-node = steem.global:2001
seed-node = steemd.pharesim.me:2001
seed-node = 104.199.118.92:2001
seed-node = steem-seed1.abit-more.com:2001
seed-node = seed.riversteem.com:2001
seed-node = steem-id.altexplorer.xyz:2001
seed-node = seed.roelandp.nl:2001
seed-node = node.mahdiyari.info:2001
seed-node = seed.jamzed.pl:2001
seed-node = gtg.steem.house:2001
seed-node = seed.steemviz.com:2001
shared-file-dir = /dev/shm/steem
shared-file-size = 60G
rpc-endpoint = 127.0.0.1:8090
rpc-tls-endpoint = 127.0.0.1:8091
public-api = database_api login_api account_by_key_api network_broadcast_api
enable-plugin = witness account_by_key
Remain everything rest as it is and run:
screen
(hit enter)
build/programs/steemd/./steemd --resync-blockchain
CTRL + A + D to detach the screen
After it's done, leave it running and open another screen window:
screen
(hit enter)
cd build/programs/cli_wallet/
./cli_wallet --rpc-http-endpoint 127.0.0.1:8093 --rpc-http-allowip 127.0.0.1
set_password somepassword
unlock somepassword
import_key Active_Private_Key
list_my_accounts
suggest_brain_key
CTRL + A + D to detach this screen as well
Active_Private_Key - is the one you get from permissions tab on steemit.com by clicking on show key. You will be asked for password.
Keep the output of suggest_brain_key, you will need it.
edit config.ini again and put the following
witness = "yourusername"
private-key = wif_priv_key
(wif_priv_key is the one you got from suggest_brain_key)
screen -r -d firstTTY
update_witness "YOURUSERNAMEHERE" "YOURINTRODUCTIONPOSTHERE" "YOURKEYHERE" {"account_creation_fee":"0.200 STEEM","maximum_block_size":65536,"sbd_interest_rate":1000} true
Price Feeds
apt install uuid-dev libssl-dev
luarocks install seawolf
luarocks install luasec
luarocks install dkjson
Download, or clone https://github.com/develCuy/lazy-steem into /home/lazy-steem
Create script /usr/local/bin/updateprice.sh
#!/bin/bash
cd /home/lazy-steem
./publish_feed.lua YOURUSERNAME http://localhost:8093
echo "updated" > /tmp/pricefeeds
crontab -e
1 * * * * /home/lazy-steem/./updateprice.sh
HINTS
- You can list screens with screen -r -d
- The Idea is to have 2 of them running all the time, one for steemd one for wallet
- To connect to any of them, execute screen -r -d 4457.pts-0.steem (where 4457.pts-0.steem is an output of screen -r -d)
- Always exit steemd with CTRL + C or even better with SIGINT if controlling through script.
Useful wallet commands:
- list_my_accounts USERNAME
- get_witness USERNAME
Most Useful Linux command ever:
man application
For example:
man screen
DEBUG:
strace ./steemd
This will log all the system calls performed by steemd or any other linux app, and tell you exactly which one failed to execute and why.
If you would like to support me, you can do that via steemit website:
If you are an advanced user, You can do it with unlocked cli_wallet by executing:
vote_for_witness "yourusername" "crt" true true
Thanks to all supporters and all the members of Steemit Community.
Post your questions in comment sections, i'll try to address them all so new members can get on-board as quick as possible.
Would you like to become witness without too much headache? I now offer a Turn-Key paid setup services: https://steemit.com/witness-category/@crt/turnkey-paid-witness-setup-service