Already for a long time I've been thinking about looking into contributing more to the Hive ecosystem. Since 2018 I've been doing my part as being an active user. Back then when all we had was Steemit and it's basic API. I remember getting excited back then about obtaining the ability of weighting my votes with a slider bar. Now there's many layers of all sorts and development is continuing at insane pace. What a lot has changed!
I'm getting nostalgic here. My point here is that I wanted to contribute more to the chain in whatever way. Although I do know a few basics about writing code and I get my way around with a terminal, I am in no means able to contribute by developing anything useful with my own hands. I'm mostly versed in Fortran and the like, if you know what I mean!
Anyways, with the skillset that I have, I figured I might very well be able to setup a witness and contribute in that way. More nodes is always good for a decentralised system, amirite! Setting up my own witness is exactly what I will be talking about in this post!
I recently obtained access to a VPS and got a good black Friday deal on it to double the storage. I fund the server cost partially from my HBD interest. My account is basically funding the witness passively, isn't that great!
Since my last post a I've done quite a bit more work on the VPS. I already described setting up the access using keys. Next thing on the todo list is getting the witness running and setting up the price feed.
To keep things simple I'm using the hive in a box (HIAB) docker setup provided by @someguy123. The work put into this docker makes life easy for many of us. It for sure saved me a great deal of work and headache! Not just some guy, as the name suggest :) Credits to you!
The HIAB setup is easy as pie really. It's been described plenty in various posts, but for completeness and my own documentation here are the main steps to take in order to get your witness up and running.
First we update the system, install the necessary tools, and clone the repo containing the HIAB:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install git -y
sudo apt-get install screen -y
git clone https://github.com/someguy123/hive-docker.git
The last command will create a folder containing the repository. From within this folder the remainder of the setup is done. Move into this folder usingcd hive-docker. Docker itself can be installed using the main shell-script by:
./run.sh install_docker
Once docker is installed successfully the HIAB setup can setup itself using:
./run.sh install
Once the install is done, two more steps are to be done. The block history needs to be downloaded. This can be done p2p as I did, or by downloading the block log via the command: ./run.sh dlblocks. In my case downloading it p2p, which I believe takes longer, is done by simply starting the docker:
./run.sh start
You can monitor the progress until all blocks are done using ./run.sh logs. Over time chunks of blocks are downloaded until you reach the current block. From that point onwards each individual block is added. Example output of both stages is shown below.
With the docker running smoothly and the chain synced, the wallet can be setup. Simply open the wallet by: ./run.sh wallet. This opens a command line from which the next steps are performed. First create a password for this walled using set_password <your password>. Remember your chosen password well! Next unlock the wallet using unlock <your password>.
Next, we need to create a key pair for the witness using: suggest_brain_key. This should output a private brain and wif key as well as a public key. Store them safely as you will need them later. Exit the wallet by using cmd+D.
After creating the key pairs we need to configure the witness. The main configuration can be set in a config.ini file which is located inside the repo under: data/witness_node_data_dir/config.ini.
In this file add the username of the witness. This could be your own account or a dedicated one for the witness. Also add the wif private key as the private-key. Make sure to uncomment both lines (remove #) if they are commented out. Safe the file and your basic config is all set!
Finally open the wallet again and unlock it using the password that you have set previously. To do so first do
./run.sh wallet
And in the command line run unlock <your password>. Once it's unlocked you need to import the active key of the witness account you have used in config.ini. This can be done in the command line of the wallet using:
import_key <the active key of the witness account>
Great, we're all set now to fully activate the witness. Let's update the witness with the following one-liner:
update_witness "" "" "" {"account_creation_fee":"3.000 HIVE","maximum_block_size":65536,"hbd_interest_rate":20} true
This command contains in order:
Once you perform this command the witness is live! You can check it on the commong witness lists such as the one on PeakD. It might take a while for the list to update. On PeakD you can also modify some of the parameters by clicking the little dropdown next to the witness:
Finally, it is good practice to setup the hive price feed information. The most simple way to do this is using the additional docker provided by someguy123. The repo and install guide can be found here: https://github.com/someguy123/hivefeed-js. The price feed shows the current hive price and is updated (by default) every hour. Once you install it correctly, it will show you the price next to your witness on, e.g. peakd.
Now it's all set and time to get some users to vote for your witness!
While many monitoring tools exists for user accounts, the witness tools can be a little harder to find. Some nice tools that I came across which are worth looking into are listed below:
This should get you most of the witness related relevant information.
And with a witness all setup, of course the hardest taks comes. Getting users to vote for you! This is for me will be the hardest part. I don't have the biggest following and I'm also not involved in a big project that might get me the exposure to users. Hence, this is where the real challenge lies for me! I already received some votes from beefy accounts and this bumped the witness up some spots on the rankings. Nevertheless I would need to push the voting numbers further to really start producing blocks more frequently.
Therefor I ask any of you who's interested in helping an active user with a long time presence on Hive to vote for my witness. This will push decentralisation and diversity of witnesses further and will benefit all of us in the long run. My intention is to run this witness long term and to regularly give updates on the standings of things. Voting can done via the witness list in PeakD or directly via
this link: https://vote.hive.uno/@michelmake
While an official announcement of the witness will follow, all the help is appreciated already at this stage!
For now, stay tuned and have a great weekend!