To be honest, and so far, this looks like a very interesting thing. And this for me @forykw is only "experimental" because we all are in the very early stages of a new beginning of an amazing decentralization path and it is only humble to assume you can fail.
I have followed a couple of things as guidance, but because I usually need just a direction, and then I follow my own path. For the not so certain ones, I would advise following @rishi556 👉 Guide (best one so far, at least for me). There are a couple of reposts I did at @forykw, so check them out too.
Unlike most of the crypto community, I am not used to the cloud world or web development for that matter. Hence my experience is somehow more "Dinausour" alike (even if I am not that old).
$ tail -f node_app.log | grep round | grep atexoras
2021-02-08 23:01:01 info: [Blockchain] scheduled witness atexoras.witness for block 4699606 (round 14859)
2021-02-08 23:07:57 info: [Blockchain] scheduled witness atexoras.witness for block 4699689 (round 14870)
2021-02-08 23:08:12 info: [Blockchain] witness atexoras.witness signed round 14870
2021-02-08 23:10:15 info: [Blockchain] scheduled witness atexoras.witness for block 4699754 (round 14880)
2021-02-08 23:16:53 info: [Blockchain] scheduled witness atexoras.witness for block 4699862 (round 14895)
2021-02-08 23:22:49 info: [Blockchain] scheduled witness atexoras.witness for block 4699952 (round 14908)
2021-02-08 23:35:31 info: [Blockchain] scheduled witness atexoras.witness for block 4700130 (round 14933)
2021-02-08 23:36:03 info: [Blockchain] witness atexoras.witness signed round 14933
2021-02-08 23:36:45 info: [Blockchain] scheduled witness atexoras.witness for block 4700150 (round 14936)
2021-02-08 23:54:44 info: [Blockchain] scheduled witness atexoras.witness for block 4700470 (round 14982)
2021-02-09 00:11:40 info: [Blockchain] scheduled witness atexoras.witness for block 4700763 (round 15024)
2021-02-09 00:14:42 info: [Blockchain] scheduled witness atexoras.witness for block 4700814 (round 15031)
2021-02-09 00:16:19 info: [Blockchain] scheduled witness atexoras.witness for block 4700843 (round 15035)
2021-02-09 00:28:00 info: [Blockchain] scheduled witness atexoras.witness for block 4701035 (round 15063)
2021-02-09 00:32:05 info: [Blockchain] scheduled witness atexoras.witness for block 4701108 (round 15073)
2021-02-09 00:34:17 info: [Blockchain] scheduled witness atexoras.witness for block 4701145 (round 15078)
2021-02-09 00:34:49 info: [Blockchain] witness atexoras.witness signed round 15078
2021-02-09 00:41:49 info: [Blockchain] scheduled witness atexoras.witness for block 4701261 (round 15095)
2021-02-09 00:42:09 info: [Blockchain] scheduled witness atexoras.witness for block 4701271 (round 15096)
2021-02-09 00:42:37 info: [Blockchain] witness atexoras.witness signed round 15096
2021-02-09 00:42:37 info: [Blockchain] scheduled witness atexoras.witness for block 4701273 (round 15097)
2021-02-09 00:43:34 info: [Blockchain] scheduled witness atexoras.witness for block 4701286 (round 15099)
Example: My simple way to check when I am about to sign a block or when I do one.
I mostly followed @rishi556 for purposes of comparison but then, I have used (not because I needed) a 4-core and 8GB RAM VM... this is basically because I am using the VM as a sort of "mini-workstation" for the witness node (experimental) where I run other stuff that might occupy memory and use more CPU. Gives me a bit more flexibility on my "tests" and learning curve.
@rishi556 (you are being tagged! LOL) was right about the minimum requirements... 2-core is more than enough, and 2GB RAM + 2GB SWAP or 4GB RAM is pretty enough for the witness node at the moment.
Although, I wish to lay some extra details about these...
There are a couple of initial phases that might make use of more CPU+RAM, depending on the IO subsystem. Those are the Mongo DB restore and the re-sync phase after starting the node. But for sure, if you are IO bound, those will not make any use.
These are my own preferences and somehow biased by the business world experience I work with.
sysctl -w vm.swappiness=0
and then add vm.swappiness=0
it to /etc/sysctl.conf
sudo apt install nmon -y
. Then just type nmon
followed by c
(CPU), m
(Memory), d
(disk) and n
(network). For more type h
for help and you will easily get to all the other options. Any extra questions, let me know. I use this tool for more than 15 years.npm ci
on top of the cloned repo, to install the dependencies. There was a change on how npm works and if you use npm i
it might install the latest versions of depedencies which are not guaranteed to work with the current state of the hive-engine code. Note: Althought its a great way to understand if there are any "warnings" to watch for. I have learned this today.The right way in my view to do "any" kind of updates (unless you have 2 mongo DBs running in parallel) is to:
node witness_action.js unregister
)pm2 stop <app_name>
)pm2 start <app_name>
)node witness_action.js register
)Otherwise, you can miss blocks, depending on your round schedule and approval weight.
Using the same IP... useful for most people. Still need to mangle around pm2 because I saw some HA features and what I am saying might be actually stupid. But this will work anyway. This is manual but possible to automate, process.
Note: This is assuming you don't need to replay the node.
For different IPs HA deployments, you will most likely need to run separate mongo DBs and hence it's just like another node. This would be the "Enterprise" architecture in my view.
If that comes around, I will post about it, otherwise DM me somewhere.
This will be a topic for the next post. As I am running late for tonight.
You first need to stake WORKERBEE and then either go to https://tribaldex.com/witnesses and vote for your witnesses or if you are running from the node that is your witness... simply execute the following script:
node witness_action.sh approve <witness>
or the other way around...
node witness_action.sh disapprove <witness>
Being <witness>
any of the accounts showing at https://tribaldex.com/witnesses
Thanks to everyone else sharing their insights and skills across this, and if you have a node running, consider joining the Discord server, and let the admins know.
https://twitter.com/forkyishere/status/1358765702639849476
Tomorrow I will do a proper announcement... seams that people are too busy at the moment.
Congratulations @atexoras! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :
Your next target is to reach 50 upvotes.
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
Check out the last post from @hivebuzz:
https://twitter.com/forkyishere/status/1359111483381092355
Good work
excelente trabajo
Nice