Witness Update December 2016, How to setup a Stable Witness Node After HF16 A to Z

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@joseph·
0.000 HBD
Witness Update December 2016, How to setup a Stable Witness Node After HF16 A to Z
After meddling enough with the main witness node on HDD decided it's time to move my main witness node to a new dedicated server with a little more resources and speed. On a system with HDD and optimal settings a block miss is to be expected. I have encountered a few since HF16 at a rate of 3 or 4 per week.

<b>New Server Specs:</b>

*Intel® Xeon® D-1531
* 6C / 12T @2.2 Ghz
* 32 GB DDR4 RAM
* 2 × 250 GB SSD 

With this server the first thing to notice was the amazing speed DDR4 RAM offers.
This witness node started signing blocks as of 12/26/2016 with 294 blocks missed from mining/other_setup.

<b>How to setup a Stable witness node after HF16:</b>

This information was provided by a number of current witnesses who ran different settings/configs and provided the data in the witness channel or on Steemit posts: 
( @abit @arhag @smooth @bhuz @aizensou @riverhead @complexring and others )

This setup assumes you have Ubuntu 16.04 installed and System RAM of 32GiG with an SSD drive:
(if you are running this on a 16GiG RAM system please pay attention to the notes)

<b>Installing Steem for witness production:</b>
* an updated seed-node list can be obtained here (more seed-nodes = faster sync):
 https://github.com/steemit/steem/blob/develop/doc/seednodes.txt

```
sudo apt-get update
sudo apt-get install git cmake g++ python-dev autotools-dev libicu-dev build-essential
sudo apt-get install libbz2-dev libboost-all-dev libssl-dev libncurses5-dev 
sudo apt-get install doxygen libreadline-dev dh-autoreconf

secp256k:
cd
git clone https://github.com/bitcoin/secp256k1
cd secp256k1
./autogen.sh
./configure
make
./tests

steem:
cd
git clone https://github.com/steemit/steem.git
cd steem
git submodule update --init --recursive
cmake -DCMAKE_BUILD_TYPE=Release -DLOW_MEMORY_NODE=ON CMakeLists.txt
make

cd programs/steemd
./steemd
CTRL-C
nano witness_node_data_dir/config.ini

###################
seed-node =  
shared-file-dir = /dev/shm
shared-file-size = 16G #set at 12G if you have 16GiG of RAM
flush = 0
public-api = database_api #login_api 
enable-plugin = witness #account_by_key
witness = "YourWitnessName" #with quotes
private-key = witness_private_signing_key # without quotes
####################

CTRL - X  save & exit
Note: If you are running this on a 32GiG RAM system you are all set, skip to run steemd.
If you are running this on a 16GiG Ram system run this command:

sudo mount -o remount,size=12G /dev/shm

#Run steemd 
./steemd --shared-file-dir /dev/shm/

# when your node is fully synced
# switch private keys to this node from cli_wallet using update_witness command.
```
<BR><BR>
<b>Witness Settings:</b>

I have chosen the following witness controlled variables;
* account creation fee : 35.00 Steem ( steemit promises $5 worth of Steem upon signup)
* Price Feed Bias: -1% (SBD price slightly above $1)
* SBD interest Rate: 5% (To encourage conversion to Steem)

This completes my move to a new stable witness node with an SSD drive and appropriate RAM to deal with Steemd v0.16.0 & ChainBase - I/O Issues. I will be monitoring this setup for any issues that might come up.

These are screenshots I took during the setup:
Starting steemd with a full sync:

https://i.imgsafe.org/19211b60a3.jpg

Steemd fully synced about an hour later:

https://i.imgsafe.org/19208ee2a8.jpg

shut down steemd and tested replay:

https://i.imgsafe.org/1920dbca5c.jpg
https://i.imgsafe.org/1920e01047.jpg

After the replay was done I shut down steemd and backed up the blockchain files:

```
cd
mkdir backup
cd backup
cp -p /dev/shm/shared_memory.bin .
cp -p /dev/shm/shared_memory.meta .
cd
```
<br>
You will need to copy these files back to /dev/shm/ in case of a reboot or accidental shutdown. 
<br>
If you encounter any errors during setup, or notice something wrong in this post, please let me know in comments.
<br>
 @joseph

resources: 
1- https://steemit.com/witness-category/@abit/best-practice-running-steemd-v0-16-0
2- https://steemit.com/witness-category/@bhuz/steemd-v0-16-0-and-chainbase-i-o-issues-and-possible-solutions 
3- https://steemit.com/witness-category/@aizensou/witness-update
4- Steem Witness Channel Discussions.
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,