create account

Monitor Witness - Know your backup witness has failed before you depend on it by themarkymark

View this thread on: hive.blogpeakd.comecency.com
· @themarkymark ·
$73.98
Monitor Witness - Know your backup witness has failed before you depend on it
 https://i.imgur.com/FIVxZ3n.jpg 

If you are witness and run more than one witness node, even if you don't, you might find this handy.

I currently run four witness nodes, and there is one failure scenario I don't think many people think of.  Most witnesses have notification if their witness node starts missing blocks and even automated fail-over.  What if your backup node fails and you don't know it until it's time to fail over your primary node?  

Most witnesses have one or two nodes, so in this scenario you are at the mercy of a full resync, which can take days or even weeks depending on your hardware and is just getting slower as time goes on.

Would you like to know that your server is behind before you actually need to use it?

Well then,

### Introducing Monitor Witness

I know, not a very exciting name, I was lazy at the time and it wasn't something I planned on posting anywhere.  I recently threw it up on Github and letting other witnesses benefit from it.

Monitor Witness is build using completely free tools with no ongoing fees.  Unlike typical network monitoring, **Monitor Witness** will warn you *before* a problem happens potentially saving you days of downtime.

### How does it work?

Monitor WItness is a relatively simple bash shell script that monitors your witness log file looking for the last block processed, then compares against full nodes to determine if it is within 10 blocks.  If it is, it sends a heart beat, if it isn't, you get notified it is behind or even failed. 

First you need an account with HealthChecks, Uptime Robot, or your own Uptime Kuma instance.  Any service that provides ping/heatbeat type of monitors via url will work.

Healthchecks is basically a reverse notification.  Typically when you use notification services, you set a destination service for it to ping or monitor and alert you when it can't be reached.  With a healthcheck, you set up a URL that needs to be visited within a set amount of time, if it is not, then it starts to complain.  It's a dead man's switch, something you probably only heard of in movies.  This is an extremely handy tool for monitoring backup jobs, and other jobs that run and you want to make sure it completely properly but has no external IP to ping or monitor.

### Installation

#### Enable Logging

To use this, you need to have logging enabled.  The easiest way to do this is to use screen (i.e. screen -S witness -L -Logfile witness.log) so it can monitor the log file.   You can use tmux as well, but it much more diffcult to log with out of the box.

#### Setup Heartbeat monitors

Setup an account https://healthchecks.io.  Create one Health Check for each of your witness nodes.  I am going to assume through these instructions you are using healthchecks.io. 

 https://i.imgur.com/qCRPufL.png 

I recommend using the name of the witness as the name and slug.   I recommend setting it to 1 minute checks with a 5 minute grace period.  This means, if you don't visit this url every minute, it will go into a failure state, but there is a grace period of 5 minutes before it starts sending alerts.  Customize this as you wish, but this is what I would recommend.

If you want to see the health check in action, visit the URL of one of your health checks in the browser and you will see it turn green immediately.  By default, your healthchecks will notify you by email, but you can customize it with almost every tool you can think of from discord, ntfy, pushover, slack, and even SMS.

Once you have created these, just leave the tab open, we will come back to this.  

#### Download Monitor Witness

You can download **Monitor Witness* from Github using `git clone  https://github.com/officiallymarky/monitorwitness`.

As always, review the code and make sure it doesn't do anything you don't approve of.  The code is very easy to read and extremely short.  Should only take a minute.

Make sure monitorwitness.sh is executable using `chmod +x monitorwitness.sh`.

Modify *monitorwitness.env* with your preferred settings and healthcheck URL from above.  The defaults are three popular full nodes with allowing a single failure and a 10 block tolerance.  This means if you are outside of 10 blocks on 2 out of 3 nodes, you will send a heatbeat preventing any notifications.  If you are outside of 10 blocks for 2 or more nodes, you will not send a heartbeat causing an alert.  

**The code will not run unless you add a healthcheck URL to the configuration file. **

I recommend installing this on all witness nodes, and setting a unique healthcheck URL for each node, idealy with a matching name on Healthchecks.  UptimeRobot supports this sort of monitoring as well, but you need a paid account.   Healthchecks.io allows you 20 free healthchecks.  You can also use UptimeKuma (my favorite) which is an open source clone of Uptime Robot you can host yourself, but is a lot more involved.  Healthchecks.io works really well, is free, and super fast to set up (under 15 seconds to be up and running!).

#### Schedule monitorwitness.sh

Once you have modified monitorwitness.env with your preferred settings, all that is left is to schedule it.

I recommend using cron, it is as easy as typing `crontab -e` to modify your cron schedule.

Add in the following entry with the correct path to monitorwitness.sh.  Cron requires exact paths and will not use short cuts like $HOME or ~.

`* * * * * /home/marky/monitorwitness.sh`

This entry will call this script every 1 minute.  This is what I recommend, and remember your healthcheck will only fail after 5 minutes of failures.   Google search **crontab examples** or **crontab generator** if you do not understand this.

#### Verify installation

After about 60 seconds, you should be able to see all your healthchecks.io on healthchecks.io are green and everything is running and notifying you.   You can do two things to verify everything is working properly.  You can pause your witness or you can just remove the crontab entry once it turns green and make sure you get notified.

---

https://steemitimages.com/DQmPkQhAQceC7aHr4Gy5GKv7LMoiy47P7PyaNCeZBHMpFke/white-bg-with-drop-shadow.gif



Posted Using [InLeo Alpha](https://inleo.io/@themarkymark/monitor-witness-know-your-backup-witness-has-failed-before-you-depend-on-it)
πŸ‘  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 523 others
properties (23)
authorthemarkymark
permlinkmonitor-witness-know-your-backup-witness-has-failed-before-you-depend-on-it
categoryhive-167922
json_metadata{"app":"leothreads/0.3","format":"markdown","tags":["hive-167922","witness","hive","hive-engine","technology","development","vyb","pob","neoxian","leofinance"],"canonical_url":"https://inleo.io/@themarkymark/monitor-witness-know-your-backup-witness-has-failed-before-you-depend-on-it","links":["https://healthchecks.io.","https://github.com/officiallymarky/monitorwitness`.","https://inleo.io/@themarkymark/monitor-witness-know-your-backup-witness-has-failed-before-you-depend-on-it)"],"images":["https://i.imgur.com/FIVxZ3n.jpg","https://i.imgur.com/qCRPufL.png","https://steemitimages.com/DQmPkQhAQceC7aHr4Gy5GKv7LMoiy47P7PyaNCeZBHMpFke/white-bg-with-drop-shadow.gif"],"dimensions":{"https://i.imgur.com/FIVxZ3n.jpg":{"width":1280,"height":853},"https://i.imgur.com/qCRPufL.png":{"width":438,"height":456}}}
created2023-11-02 21:32:27
last_update2023-11-02 21:32:27
depth0
children17
last_payout2023-11-09 21:32:27
cashout_time1969-12-31 23:59:59
total_payout_value36.094 HBD
curator_payout_value37.885 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length6,292
author_reputation1,669,704,010,439,681
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries
0.
accountleofinance
weight500
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,529,770
net_rshares155,284,800,187,971
author_curate_reward""
vote details (587)
@alina93 ·
Friend, what you say is interesting, could monitor witness generate random IPs with a virtual machine? Those topics are interesting.
πŸ‘  ,
properties (23)
authoralina93
permlinkre-themarkymark-2023114t191559144z
categoryhive-167922
json_metadata{"type":"comment","tags":["hive-167922","witness","hive","hive-engine","technology","development","vyb","pob","neoxian","leofinance"],"app":"ecency/3.0.44-mobile","format":"markdown+html"}
created2023-11-04 23:17:09
last_update2023-11-04 23:17:09
depth1
children1
last_payout2023-11-11 23:17:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length132
author_reputation436,075,804,980
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,584,023
net_rshares103,840,761
author_curate_reward""
vote details (2)
@themarkymark ·
That's not what it is used for.
πŸ‘  ,
πŸ‘Ž  , , ,
properties (23)
authorthemarkymark
permlinkre-alina93-s3mheb
categoryhive-167922
json_metadata{"tags":["hive-167922"],"app":"peakd/2023.10.1"}
created2023-11-04 23:32:36
last_update2023-11-04 23:32:36
depth2
children0
last_payout2023-11-11 23:32:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length31
author_reputation1,669,704,010,439,681
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,584,256
net_rshares-156,601,408,333
author_curate_reward""
vote details (6)
@crypto-shots ·
> *Healthchecks.io allows you 20 free healthchecks*

Worth mentioning that with the free plan you get notified max 5 times per month:


![image.png](https://files.peakd.com/file/peakd-hive/crypto-shots/Eo6SCG8puy7gXjogJwGMtFYn6fH3GZs44SVYN7Xhbh2ZhE4eBC6zvqmrySEpfyfF4UT.png)
πŸ‘  
properties (23)
authorcrypto-shots
permlinkre-themarkymark-s66m1k
categoryhive-167922
json_metadata{"tags":["hive-167922"],"app":"peakd/2023.11.3"}
created2023-12-24 17:32:09
last_update2023-12-24 17:32:09
depth1
children3
last_payout2023-12-31 17:32:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length275
author_reputation32,187,361,852
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id129,954,295
net_rshares5,974,014
author_curate_reward""
vote details (1)
@themarkymark ·
This is only for Whatsapp and sms, email you get unlimited notifications.  I personally use my own monitoring, but you can also self host Healthchecks as well or use Uptime Kuma.
πŸ‘  ,
properties (23)
authorthemarkymark
permlinkre-crypto-shots-s66m3p
categoryhive-167922
json_metadata{"tags":["hive-167922"],"app":"peakd/2023.11.3"}
created2023-12-24 17:33:24
last_update2023-12-24 17:33:24
depth2
children2
last_payout2023-12-31 17:33:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length178
author_reputation1,669,704,010,439,681
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id129,954,319
net_rshares470,641,213
author_curate_reward""
vote details (2)
@crypto-shots ·
interesting

PS. I assumed that to receive emails you needed a paid plan. Looks like it's not the case.


![image.png](https://files.peakd.com/file/peakd-hive/crypto-shots/23tHb6kphzP96g5eDibyvitpxkvpzD8GZeqC6zAJyHKzR7DVgBhAJwxsLCNLwHW2gAVsx.png)
πŸ‘  
properties (23)
authorcrypto-shots
permlinkre-themarkymark-s66maa
categoryhive-167922
json_metadata{"tags":["hive-167922"],"app":"peakd/2023.11.3"}
created2023-12-24 17:37:24
last_update2023-12-24 17:37:24
depth3
children1
last_payout2023-12-31 17:37:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length247
author_reputation32,187,361,852
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id129,954,452
net_rshares7,109,657
author_curate_reward""
vote details (1)
@ecency ·
**Yay!** πŸ€—<br>Your content has been **boosted with Ecency Points**, by @drakernoise. <br>Use Ecency daily to boost your growth on platform! <br><br><b>Support Ecency</b><br>[Vote for new Proposal](https://hivesigner.com/sign/update-proposal-votes?proposal_ids=%5B245%5D&approve=true)<br>[Delegate HP and earn more](https://ecency.com/hive-125125/@ecency/daily-100-curation-rewards)
properties (22)
authorecency
permlinkre-2023112t221033489z
categoryhive-167922
json_metadata{"tags":["ecency"],"app":"ecency/3.0.20-welcome","format":"markdown+html"}
created2023-11-02 22:10:33
last_update2023-11-02 22:10:33
depth1
children0
last_payout2023-11-09 22:10:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length381
author_reputation549,971,547,212,413
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,530,535
net_rshares0
@mangowambo ·
Thanks, looks handy. :)
As iβ€˜m still learning the details of hive i  don’t understand how the network picks the witness? ( i guess β€žfind consensusβ€œ )

So lets say I broadcast a transaction, how does the network determines which witnesses can add the next block? 

Do you know were i can find this kind of information? Can also be on Code Level if you happen to know.
πŸ‘  ,
properties (23)
authormangowambo
permlinkre-themarkymark-s3iqz8
categoryhive-167922
json_metadata{"tags":["hive-167922"],"app":"peakd/2023.10.1"}
created2023-11-02 23:09:18
last_update2023-11-02 23:09:18
depth1
children4
last_payout2023-11-09 23:09:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length366
author_reputation126,476,164,979
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,531,922
net_rshares100,287,400
author_curate_reward""
vote details (2)
@andablackwidow ·
Since you've asked about witness schedule I'll shamelessly link [my old article](https://hive.blog/hive-139531/@andablackwidow/hf27-and-the-scheduling-problem) where you can find some information. The actual code that compiles future witness schedule starts [here](https://gitlab.syncad.com/hive/hive/-/blob/v1.27.4/libraries/chain/witness_schedule.cpp#L391) (follow to definition of `update_witness_schedule4`), but of course the data it uses is updated all over the place.
πŸ‘  , ,
properties (23)
authorandablackwidow
permlinkre-mangowambo-2023114t3389480z
categoryhive-167922
json_metadata{"tags":["hive-167922"],"app":"ecency/3.0.35-surfer","format":"markdown+html"}
created2023-11-04 02:38:09
last_update2023-11-04 02:38:09
depth2
children2
last_payout2023-11-11 02:38:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length474
author_reputation66,039,169,583,429
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,561,619
net_rshares2,327,008,511
author_curate_reward""
vote details (3)
@mangowambo ·
Thank you for sharing that valuable information and providing a link. It's exactly what I was searching for. Finding this kind of information, especially with the correct code examples and implementations, can be quite challenging.

I believe today is my lucky day as @edicted shared this post: https://peakd.com/hive-167922/@edicted/privex-hive-node-in-a-box-experience. It contains some really good information as well.

May I ask you something? I inquired with ChatGPT about consensus on the Hive blockchain and received this response. It appears to be quite accurate to me. Do you agree, or do you see any flaws in it?

**Consensus:**

In the Hive blockchain, the process of reaching consensus is a crucial step that ensures the validity and finality of a newly produced block. This consensus is achieved through the collaboration of various network participants, including the active witnesses and other nodes in the network. Here's how it works:

- **Broadcasted Block**: After a witness produces a block, it is broadcasted to the Hive network. This block contains a collection of transactions that have been validated by the producing witness.

- **Relayed to Network**: The block is propagated across the network to all other witnesses, full nodes, and participants in the Hive ecosystem.

- **Validation by Other Witnesses**: Upon receiving the block, other witnesses, including those who are currently active and those in the backup positions, validate the transactions within the block. They check that the transactions comply with the Hive blockchain's consensus rules, that the sender has the required balance, and that there are no double-spending attempts.

- **Consensus Process**: Witnesses and network participants then engage in a consensus process to determine the validity of the block. This process involves their nodes communicating with each other. Each participant verifies that the transactions within the block are valid and follow the established rules.

- **Acceptance or Rejection**: If the majority of witnesses and nodes reach a consensus that the block is valid, it is accepted, and the transactions within it are considered confirmed and added to the blockchain. If there is a discrepancy or a significant portion of participants deems the block as invalid, it is rejected.

- **Finalization**: Once consensus is reached, and the block is accepted, it is considered finalized. The transactions within the block are now an integral part of the Hive blockchain and are irreversible.
πŸ‘  ,
properties (23)
authormangowambo
permlinkre-andablackwidow-s3kwsv
categoryhive-167922
json_metadata{"tags":["hive-167922"],"app":"peakd/2023.10.1"}
created2023-11-04 03:10:09
last_update2023-11-04 03:10:09
depth3
children1
last_payout2023-11-11 03:10:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length2,514
author_reputation126,476,164,979
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,562,369
net_rshares449,771,224
author_curate_reward""
vote details (2)
@themarkymark ·
> As iβ€˜m still learning the details of hive i don’t understand how the network picks the witness? ( i guess β€žfind consensusβ€œ )

The top 20 witnesses take turns every block, then a shuffle is made for a backup witness in the 21st spot based on their rank.  

> So lets say I broadcast a transaction, how does the network determines which witnesses can add the next block?

It looks on the witness schedule.

> Do you know were i can find this kind of information? Can also be on Code Level if you happen to know.

https://hive.io
πŸ‘  , ,
πŸ‘Ž  , , ,
properties (23)
authorthemarkymark
permlinkre-mangowambo-s3ir8l
categoryhive-167922
json_metadata{"tags":["hive-167922"],"app":"peakd/2023.10.1"}
created2023-11-02 23:14:45
last_update2023-11-02 23:14:45
depth2
children0
last_payout2023-11-09 23:14:45
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length529
author_reputation1,669,704,010,439,681
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,532,033
net_rshares-170,362,977,147
author_curate_reward""
vote details (7)
@networkallstar ·
So many posts since your alleged "last post"!! What a fuggin loser... 🀣🀣🀣🀣🀣 I see you're dropping in the witness ranks..!? I hope you drop out of top 20 all together you downvoting POS πŸ–•πŸ½
πŸ‘Ž  ,
properties (23)
authornetworkallstar
permlinks3l7el
categoryhive-167922
json_metadata{"app":"hiveblog/0.1"}
created2023-11-04 06:59:09
last_update2023-11-04 06:59:09
depth1
children2
last_payout2023-11-11 06:59:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length187
author_reputation-5,617,423,063,785
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,564,922
net_rshares-1,564,458,072,366
author_curate_reward""
vote details (2)
@themarkymark ·
Your encouragement inspires me.
πŸ‘  ,
πŸ‘Ž  , , ,
properties (23)
authorthemarkymark
permlinkre-networkallstar-s3lz9a
categoryhive-167922
json_metadata{"tags":["hive-167922"],"app":"peakd/2023.10.1"}
created2023-11-04 17:00:45
last_update2023-11-04 17:00:45
depth2
children1
last_payout2023-11-11 17:00:45
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length31
author_reputation1,669,704,010,439,681
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,576,059
net_rshares-172,588,554,011
author_curate_reward""
vote details (6)
@networkallstar ·
Haha... You're a hypocrite PObullS and you know it... ;D
πŸ‘Ž  
properties (23)
authornetworkallstar
permlinks3pemx
categoryhive-167922
json_metadata{"app":"hiveblog/0.1"}
created2023-11-06 13:25:48
last_update2023-11-06 13:25:48
depth3
children0
last_payout2023-11-13 13:25:48
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length56
author_reputation-5,617,423,063,785
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,623,901
net_rshares-566,523,963,088
author_curate_reward""
vote details (1)
@omarrojas ·
https://x.com/Omarroj52318483/status/1720198479241159119?s=20
properties (22)
authoromarrojas
permlinkre-themarkymark-s3inw6
categoryhive-167922
json_metadata{"tags":["hive-167922"],"app":"peakd/2023.10.1"}
created2023-11-02 22:02:30
last_update2023-11-02 22:02:30
depth1
children0
last_payout2023-11-09 22:02:30
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length61
author_reputation374,345,122,356,211
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,530,397
net_rshares0
@riaz1122 ·
These are very informative and interesting. Good to grow if anyone follow your instructions. 
properties (22)
authorriaz1122
permlinkre-themarkymark-2023124t148942z
categoryhive-167922
json_metadata{"type":"comment","tags":["hive-167922","witness","hive","hive-engine","technology","development","vyb","pob","neoxian","leofinance"],"app":"ecency/3.0.44-mobile","format":"markdown+html"}
created2023-12-04 09:08:15
last_update2023-12-04 09:08:15
depth1
children0
last_payout2023-12-11 09:08:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length93
author_reputation4,022,504,843,419
root_title"Monitor Witness - Know your backup witness has failed before you depend on it"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id129,397,836
net_rshares0