Hello Hivers!
If you did not see my last post i recently started self hosting a witness node at home and have had a bunch of questions around what I used, specs, and other stuff. I really think more would do this if they knew it was pretty simple to do but does take some basic knowledge of Linux & a bit of spare time.
First of I want to thank the community members that have taken tons of time to put resources out there and there are some similar posts that are out there. I am doing another one that I can maintain and help get something recent out.
Thank you to these great people for answering questions and making great guides & software:
@someguy123 @rishi556 @hivetrending @deathwing @acidyo
If you want to support the upkeep of this post please consider voting for my witness node:
https://vote.hive.uno/@crypt0gnome
the gEar
My setup is pretty simple, I am using an old gaming PC and it is connected to a UPS so that if there is a power/internet failure it has some time to write to the disk and prevent disk write errors. I am also running a 1GB connection but I would think a stable connection with around 200-400MB is probably fine to handle this and all your other network traffic in the house.
coRe hArdwAre sPecs:
- Intel Core i7-13700KF - Core i7 13th Gen Raptor Lake 16-Core
- Corsair VENGEANCE RGB PRO DDR4 32GB (2x16GB)
- SAMSUNG 970 EVO Plus SSD 1TB NVMe M.2 Internal Solid State Hard Drive
You could use any other motherboard, case, power supply, and on board graphics as they are not needed to run this.
soFtwAre
I am going to suggest running the latest version of Ubuntu Server LTS 22.04 LTS this will make sure you are compatible with the packages and the current version of HIAB.
https://ubuntu.com/download/server
After the setup is complete do a quick update to make sure linux is up to date:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install git -y
sudo apt-get install screen -y
settiNg uP HIAB
Clone the repo here: https://github.com/someguy123/hive-docker
git clone https://github.com/someguy123/hive-docker.git
Install docker
cd hive-docker
./run.sh install_docker
grab the latest version of the witness docker image
./run.sh install
time to start the node
./run.sh start
Creating Witness Keys
While it is possible to reuse existing keys, it is strongly advised to create new ones specifically for signing blocks. To accomplish this, we utilize the cli_wallet tool.
./run.sh wallet
Please use the set_password method to initialize a new wallet before continuing it will give you a prompt like this type the following after: new >>>
new >> set_password passwordhere
To set your password, use the command "set_password" followed by your desired password. Make sure to remember this password as it will be required to unlock the wallet later on. After setting the password, you can proceed to unlock your wallet. To unlock, simply enter "unlock" followed by the password you set, like this:
unlock passwordhere
Once your wallet is unlocked, you can utilize the command "suggest_brain_key"
to generate a public-private keypair. It is crucial to save this keypair as you will need it in the future.
Now you are ready to config, hit CTRL-D
to back back out to the terminal prompt.
Witness Config
set the shared memory size
./run.sh shm_size 32G
edit the config
nano data/witness_node_data_dir/config.ini
Update the fields in the image using the Hive account you would like to be a witness and the private key from the Brain wif_priv_key we created earlier.
witness = yourhivenamehere
private-key = brainwalletprivatekey
SYNC & WAIT
this part can take some time 24-48 hours and will require you to check in from time to time, your node should already be running sense we started it earlier but there are two commands in linux you will use often to check on it.
to check/watch node in Realtime
./run.sh logs
if the node is no longer syncing you can check the monitor by using this command
./run.sh monitor
you can also stop/start the node if needed
./run.sh stop
./run.sh start
Enable Witness Broadcast
Once you see the blocks going up one at a time like above that means you are fully synced and can enable as a witness.
Open the wallet
./run.sh wallet
Unlock the wallet using the password you created earlier
unlock walletpasswordhere
Time to import your PRIVATE ACTIVE KEY
, this should be the key for your witness account name used in the config. You can grab this from Hive Keychain if you have it saved there.
import_key 5KNrHHigj3PRurkm5moaV1XM3gWGrDZJJZCgPRL2FpBLjWy1obg
You will then want to edit this snippet below to the settings you wish to use for the node and so it can be broadcast on chain.
update_witness "usernamehere" "https://yoursiteofchoice.com" "STM1111111111111111111111111111111114T1Anm" {"account_creation_fee":"3.000 HIVE","maximum_block_size":65536,"hbd_interest_rate":2000} true
STM1111111111111111111111111111111114T1Anm should be the public key generated for your private signing key when we first logged into the wallet above
Give yourself a pat on the back if this all went well you should be up and running as a witness, it could take a bit of time but you should shortly after show up on one of these lists:
https://peakd.com/me/witnesses
https://hivehub.dev/witnesses
you version will say 0.0.0 until you have found your first block, now get out there and make your first witness post and get some votes!
EXTRAS
You can update the witness description easily using Peaked Profile editor to get a nice look on the witness lists!
If you want to support the upkeep of this post please consider voting for my witness node:
https://vote.hive.uno/@crypt0gnome
The Hive.Pizza team manually curated this post.
$PIZZA slices delivered:
@roninrelax(4/5) tipped @crypt0gnome
You can now send $PIZZA tips in Discord via tip.cc!
Congratulations @crypt0gnome! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)
Your next target is to reach 36000 upvotes.
Your next target is to reach 100 comments.
You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
To support your work, I also upvoted your post!
Check out our last posts:
Yay! 🤗
Your content has been boosted with Ecency Points, by @crypt0gnome.
Use Ecency daily to boost your growth on platform!
Support Ecency
Vote for new Proposal
Delegate HP and earn more
I'll bookmark this post :)
!PIZZA
Congratulations @crypt0gnome!
You raised your level and are now an Orca!
Check out our last posts:
Wow this is so impressive, even though I am still trying to figure out what being a witness entails.
Nice setup mate 😃
Awesome!!! I’ve wondered about this for a while :)
Thanks for sharing this information and great work not only on Hive witness but also on Terracore.
I have 1 vote from me, even it's not very high HP, however it shows my appreciation to all of your hard works.
Keep it up! 😁
Very cool! What level of Linux basics do you think a technically-savvy but non dev person would need to have in order to run a node with some confidence?
Also, please tell me that’s a fake Private Active Key you have pasted into the example?? 😅
Very basic, everything can be googled and learned along the way, if you follow the directions its pretty to the point unless you run into issues.
Of course its a fake private key 😜
Nice! Good to know.
I figured! 😁 Thought I'd check anyway juusssttt in case lol
pristine setup!