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!
Image source: unsplash.com
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!
HIAB -- A Toddler Can Do the Job
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.
Chunks of blocks being downloaded. This screenshot also shows one of the hard forks.
Individual blocks being logged after syncing has finished.
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 "<witness-username>" "<url to witness website>" "<the public key of the wallet that you have just created above>" {"account_creation_fee":"3.000 HIVE","maximum_block_size":65536,"hbd_interest_rate":20} true
This command contains in order:
- the user name of the witness excluding an @ symbol but including quotations.
- A url to a witness website. I used the url of the wintess' peakd account.
- The public key of the witness wallet you've just setup.
- The final part sets the main parameters of the witness including the HBD interest rate.
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!
Keeping an Eye on 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:
- To check your and other witness' earnings: https://primersion.com/earnings
- A tool by @arcange to get detailed witness information https://hive.arcange.eu/witnesses/
- Some more details on witness block scheduling is presented nicely here by the work of arcange as well: https://hive.arcange.eu/schedule/
- Finally on https://hivetasks.com/ similar information can be found including some filetering options for transactions.
This should get you most of the witness related relevant information.
Now for the Hard Part: I Could use Some Help!
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!
Great!
By the way, I wrote a similar step-by-step manual for computer laymen already last year:
https://peakd.com/hive-121566/@stayoutoftherz/wie-man-einen-hive-witness-node-aufsetzt-ein-tutorial-fur-computerlaien
Thanks! I did actually use your post to set it up. I linked your tutorial in a post preceding this one but didn’t tagged you to not spam you: https://ecency.com/hive-189641/@michelmake/joining-the-workforce It worked nicely with your explanation, thanks a lot! I only used the price feed setup using the docker by someguy123 as I got some errors following the manual setup. I just reiterate the steps here for my own documentation in the future 😊
On a side note: if you are up to supporting this minnow-sized dutch witness, that would be very greatly appreciated 🤓
Also noticed that there might be something up with your pricefeed. Seems like it's not updating anymore:
I am considering it :)
Yes, I gave up on this, last time I wanted to start there were only error messages.
Cool, I'll be patient :)
Did you try this docker setup from @someguy123 https://github.com/someguy123/hivefeed-js It took me no more the 5 mins from cloning to having it run.
Thanks man, up and running again!
Awesome!
Just voted for you, I hope you get your first block soon :) Good luck!
Always good to have more witnesses!
Thanks for the big pile of support by voting!
Welcome, I appreciate people that DIY the whole thing!
Great to see it.
Thanks, it’s good fun! If you want to support my witness, fee free to vote for it here: https://vote.hive.uno/@michelmake It would help a lot!
Us Dutchies should support each other :) I've always known you as a friendly guy on chain even though we may not speak for months lol. I had a spare vote so I gave you a vote. Good luck with the witness!
!PIMP
Thanks a lot! Every vote helps ❤️ Hive can be so messy it's easy to loose track of people here... Anyways, on that note I'm actually in the process of making some sort of monthly update post on where all the Dutchies are on hive. Something similar to this https://ecency.com/hive-133987/@steevc/the-brit-list-december-2023 Have the script for it more or less ready, I'm just waiting for the month to end to post it :)
That's cool you can put me on it but with the only info that I live in Spain, not which area please. I don't need my location to be on the radar every month. The people living in Spain that I want to connect with will be able to find me through DM anyway.
No worries! I’ll make everything quite discrete and use user info only form the chain if needed.
You've been in S for quite a while now right? Still enjoying it?
Great, it's because I didn't leave the country for no reason and there are some ghosts from the past there for me.
We've been here for 14 months in 2016 and then left to Hungary for four and a half years. The pandemic actually made us overstay longer than we desired but thankfully back since 1,5 years now.
We didn't have the best first apartment when we arrived but we arrived in summer season so rentals went through the roof and our monthly fee was usually the weekly fee for most places. We just took the one thing that we were offered and wasn't too expensive. Just moved to a better and bigger place a month ago so much better and life really became so much better now.
Not planning on moving in the next years, hopefully when we buy something ourselves.
You must be killin' it out here!
@thisismylife just slapped you with 5.000 PIMP, @michelmake.
You earned 5.000 PIMP for the strong hand.
They're getting a workout and slapped 2/3 possible people today.
Read about some PIMP Shit or Look for the PIMP District
Seems you missed a block, @michelmake. Better to disable the witness, until the problem is fixed!
Hey thaks for the heads up. I already worked on it this morning and now waiting to see if it’s working now 👍
Seems to do the job now! Thanks for the help 👍