How does the PoSe Score work?

A properly functionning masternode has a PoSe Score equal to 0: ok.
If your masternode has a PoSe Score greater than 0, with each new block in the blockchain, this PoSeScore is reduced by 1 and therefore approaches the value 0, until reaching it: ok.
It seemed logical to me that the opposite would be true: if your masternode is offline, its PoSe Score increases by 1 with each block where it is offline.
But this is not at all what happens: I have masternodes that go directly from a PoSe Score of 0 to 3200. If the PoSe Score were to increase by 1 with each block where the masternode is offline, it would have to be offline for more than 6 days before reaching 3200. Here, it goes from 0 to 3200 in a few hours (or maybe instantly: I do not monitor continuously).
On the other hand, never a masternode goes directly from 3200 to 0: they need 3200 blocks to return to 0.
Who can explain this operation to me?
I specify that I have this problem regardless of the masternode host.
Thank you.

3 Likes

Same question l/concern here. It is very confusing behavior

1 Like

When ever a Master Node is asked to provide service (as part of a quorum and needs to do validations etc.) if it is not online, has connectivity issues, or is too slow to respond (not enough CPU or memory assigned to it to provide service in time) it gets assigned a PoSe score equal to 66% of the number of currently active Master Nodes on the network. There is then a grace period (not sure how long - can’t find specific info - but likely the time it takes until it is requested to join a quorum again - and may be hours or days). In the mean time the PoSe score is reduced by 1 for every block that is mined. If the Master Node is requested to join a quorum again, and is still down or can not respond, an additional PoSe score equal to 66% of the number of currently active Master Nodes is added to the PoSe score. If the PoSe score is now higher than the current number of active Master Nodes on the network then the Node is banned. However, if it is still lower that the max (the PoSe score has been reduced enough to allow a new score to be added without going over the max), then the process continues with a reduction in the Pose score of 1 for each block mined. Ultimately the Node will be banned if it can not provide the network with reliable service. This is why Allnodes had to increase their prices - because they determined that the CPU and Memory requirements have increased to the point where it exceeded the VPS size they were using to host the Firo nodes reliably. All providers can have this problem if they are using VPSs that are too small, or have unreliable network providers. This guide can help you understand why nodes can be banned:

Hope this helps …

2 Likes

If the Masternode (MN) failed the quorum participation, it will get PoSe (Proof of Service) Score.
And if the PoSe Score >= All registered MN (~4853 on 2024-Aug-24), then this MN’s status will be BANNED.
The punish PoSe Score calculated by: 66% x All registered MN = ~3200

1 Like

Thank you both for your answers which actually explain what I see.

  • Why is the punishment so high? 66% when the masternode may have only been offline for 1 block, that seems huge to me?
  • Why does this 66% punishment take as a calculation basis the “ENABLED” masternodes (currently 3914 masternodes) + the “POSE_BANNED” masternodes (currently 933 masternodes).
    The “POSE_BANNED” masternodes (which no longer participate in the security of the network) inclusion in this calculation, increases the PoSe Score by 616, or more than a day of blocks production.

I note that since AllNodes doubled its rates, the proportion of “Pose_Banned” masternodes has gone from 5% to 20%: this may be just a coincidence, but it should draw our attention and alarm us about the FIRO resilience.

Between a very punitive system and an excessive number (20%!!!) of “POSE_BANNED” masternodes, there is certainly something to learn from and improve the management of masternodes to make them much more attractive and make people want to buy FIROs to set up masternodes.

I put myself in the shoes of a newcomer in the FIRO ecosystem who makes the effort to buy 100 FIROs to set up a masternode and sees it in “POSE_BANNED”, without any income while he continues to pay for hosting! This guy is going to be completely disgusted: not only will he give up, but he’s also going to give us some very bad publicity for FIRO.

  • Why is the punishment so high? 66% when the MN may have only been offline for 1 block, that seems huge to me?

1- The quorum participation is very important. If a MN failed to participate, it should be punished. The purpose of PoSe Score is to remove MN for misbehavior. There is no point to just increase the PoSe Core by 1 for every failure.
2- The number 66% is just a random number between 50% and 100%. To make sure that those MNs have one chance to recover after the first failure.

Why does this 66% punishment take as a calculation basis the “ENABLED” masternodes (currently 3914 masternodes) + the “POSE_BANNED” masternodes (currently 933 masternodes).
The “POSE_BANNED” masternodes (which no longer participate in the security of the network) inclusion in this calculation, increases the PoSe Score by 616, or more than a day of blocks production.

For the reason why calculated based on All MN instead of ENABLED MN, can @reuben and the team help on this?

the proportion of “Pose_Banned” masternodes has gone from 5% to 20%

Could you provide the source of the data showing the increase in Pose_Banned MNs from 5% to 20%? A screenshot or link to the relevant info would be helpful

1 Like

I did some quick stats on banned % (19.2%) and non-zero PoSe % (21%) (just looked at the sorted numbers in the Masternode columns of a Firo QT wallet - but don’t have any historical numbers to compare, so I’ll assume Zen saw the 5% number a while ago) - and there are likely at least two reasons why the percentage is this high. 1 - a small number would be from people who are quick to just shutdown their nodes in order to sell them quickly and the nodes don’t get properly un-registered, and 2 - the resource requirements have very slowly increased as the network traffic and transactions increase (and Spark likely adds a little bit more to processing requirements as well) - and this increases the VPS resources needed to run a Firo Master Node smoothly without PoSe scores.
When I was getting PoSe scores using Allnodes, and a few Bans, I complained, and they did an independent look at why the nodes were getting PoSe scores. The conclusion they came to was that the CPU and Ram memory requirements (and I’m assuming the swap file size needed as well) had outgrown the size of the VPSs they were using. Personally I switched from their Advanced service to the Basic service (basically kept my cost the same, but reduced the service levels from 99.9% uptime to 99.0% uptime (I didn’t really like doing this - but - ya-gotta-do-what-ya-gotta-do), and have only seen one PoSe score and no Bans in the past 4.5 months since they converted everything over to larger VPSs). I’m assuming if people are getting non-zero PoSe scores with other providers then they are either using a hosting service that is using a VPS that doesn’t have enough resources assigned to it (CPU, RAM, Swap) or if they are self-hosting on a VPS - then that VPS doesn’t have enough resources, and they need to pay for a larger VPS. I know no-one wants to hear this - but basically - as Firo grows in usage (which is a very good thing) - the VPS resource requirements will grow as well, and it will cost a little bit more to host reliable Firo Master Nodes and prevent PoSe scores.

1 Like

Date: 2024-Aug-25
Total MNs: 4853

  • POSE_BANNED MNs: 939 (19%)
  • ENABLED MNs: 3789 (81%)
    – Has PoSe Score: 125 (3.1%)
    – No PoSeScore: 3789 (96.9%)

Just ignore PoSe Score on banned MNs. The rate 3% of PoSe Scored MN / Enabled MN is not so big.
There are some reasons it turn to PoSe Scored:

  • Misbehaved and get POSE_BANNED
  • Banned by protx revoke command (Failed to pay masternode service fee, abandoned by owner, …)

If the collateral address is broken, the MN will be removed from the list instead of get banned

3 Likes

The PoSe_Score issue is complex, I agree.
But not to the point of stating “The purpose of PoSe Score is to remove MN for misbehavior. There is no point to just increase the PoSe Core by 1 for every failure.” (see the blog post you reference).
The problem is that masternodes are not queried at each block, but only “a subset of currently enabled masternodes is selected for participation in the quorum”.
A masternode only needs to be unavailable for 1 block for it to be penalized for 3200 blocks: I find this inconsistent and disproportionate.
I don’t know how other POS chains work, but there must be a way to make it fairer for FIRO.

My data source for the increase of “Pose_Banned” masternodes number is my FIRO-QT wallet and the “Masternodes.onlines” website which give exactly the same figures.
It seems to me that the “POSE_BANNED” masternodes number is an important criterion, therefore monitored by the team. I never could have believed that I would have had to take a screenshot during the many years when it was stable around 5%.
However, I hope that others in the community will be able to testify here to this number of 5%.
What I can say:
For the current number of 20%: just check on the FIRO-QT wallet and #Zed did it, thank you.
For the 5% figure: this was arround the AllNodes prices doubling, so around March, April, May 2024. So, for example, in January 2024, we should be at 5%, just like in 2023, 2022, 2021, 2020, 2019 and 2018 (from memory and barring possible one-off variations).

This quadrupling of FIRO “Pose_Banned” masternodes is a parameter that has a deep meaning that we must, I think, be concerned about. We can only simply assume that this is a marginal increase due to a few unpaid fees. And even if this were the case, we would have to ask ourselves does the price of FIRO allow us to finance technological choices that require so large VPS?

A 1000 Firo masternode allows you to receive approximately 13 Firos per month, or $11 at the August 5, 2024 price, the lowest price (Firo at $0.849). Hosting at Allnodes costs $10/month (Basic), or $20/month (Advanced). Firo will not survive if the person who invests 1000 FIRO sees 90% of his earnings go to his host (Basic), or worse, if his investment brings him nothing but costs him $9 each month (Advanced).
Firo has been falling for years, and the future choices of tokenomics (accelerated monetary emission + tail emission) can only maintain this decline: it is important to make choices that remunerate those who invest in FIRO… or FIRO will die becauseno one will want to pay to maintain loss-making masternodes.

Your details are interesting, but there are missing data that seem crucial to me:
1 - among the 19% of “Pose_Banned” masternodes, how many were banned because of the “PoSe_Score”, that is to say following a “PoSe_Score” punishment that occurs before the previous “PoSe_Sore” returned to 0 (or all 33%).
2 - how many masternode owners who were “Pose_Banned” following a “PoSe_Score” that was too high abandoned FIRO and fled its ecosystem.

With a quick and very superficial reasoning that is perhaps completely wrong:
You cite 125 masternodes (3.1%) “Enabled” with a non-zero “PoSe_Score”.
The punishment is currently 3200, so 3200 blocks. At 576 blocks per day, that’s a little over 5.5 days.
The probability that one of these 125 masternodes will be affected by a new punishment again while its “PoSe_Score” is lower than 4858 (total number of masternodes) - 3200 (punishment) = 1658 is 3.1%, * 33%, or 3 masternodes.
With this system, we are currently potentialy losing 3 masternodes every 5.5 days.

Believe it or not, all three of those long posts are just saying the same thing: “The PoSeScore punishment rule is unfair.”

Let’s take a look at how the Firo network handles bad masternodes (MNs):

  • A MN is not always part of a quorum, which means sometime it can go offline without receiving a PoSe_Score.
  • When a MN does receive a PoSe_Score, it has one chance to recover - Wait for PoSe_Score reaches zero (or drops below 34% of the total MNs).
  • Even if getting POSE_BANNED, just submit a protx update_service request to join the queue again

Imagine you work for a boss who will randomly calls to check you. If you miss the call, and it happens again within the next 5.5 days, you get fired.
However, after being fired, all you need to do is just submit a form to return to work.

Is that fair enough?

“A MN is not always part of a quorum,…”
I don’t know how this quorum is built, but the result is that a masternode only needs to be unreachable for 1 block, if it is part of the quorum of this block, to be punished with a 3200 PoSe_Score, even if it has been operational for hours/days/weeks/months/years without problems.

This does not seem fair to me and there must be a way to do it much more equitably (perhaps by abandoning this quorum system in favor of monitoring all masternodes).

I think we understand each other, with the same information: what differs is our points of view.

For your analogy with work: in the FIRO ecosystem, those who receive the salary (the rewards) are also those who finance the company (by buying FIROs) and it makes no sense that those who invest in FIRO are punished.
You do not fire those who finance you because they are 2.5 minutes late, even twice.
Today, FIRO masternode buyers (or FIRO buyers) are the only essential players in FIRO and we must do everything to attract them, not dissuade them at the slightest pretext.

I should point out that I am not writing this in anger because I have had one or more of my masternodes banned : all my masternodes are working.

even if it has been operational for hours/days/weeks/months/years without problems.

Yes, if it failed to act in the DKG session, it will get punished even if work normally for years.

This does not seem fair to me…perhaps by abandoning this quorum system

The quorums are responsible for ChainLocks, InstantSend and many important things, without them, Firo is nothing.
Feeling bad and unfair is personal right. Hope this information can help you.

For masternode providers out there, it is not just $10 and $20 plans, there are double-lower $price plans on some providers. Running firo MNs still profitable until now.

1 Like

Since the doubling of AllNodes prices, profitability has become very limited if we consider that they are the ones hosting the majority of FIRO masternodes…
I create this topic to help Firo masternodes owners on this point https://forum.firo.org/t/allnodes-hosting-prices-doubling/3167/41, but as Zed’s example above shows, AllNodes remains significant.

Challenging the quorum system seems very complicated…

This will therefore be an additional reason to ensure that masternodes remain a profitable system, in the absence of another better solution for Firo ecosystem.

Wanted to follow-up and check some numbers.

I crunched some more numbers from the current QT masternode stats:

933 nodes are Banned = 19.3% (but many of these are likely abandoned nodes - because over 870 (or almost 18% of total nodes) are over 1 month since they were banned - and some a lot longer than that)

119 Enabled with non-zero PoSe scores = 2.45% (not a significant amount but should be close to zero if everyone is hosting on reliable hardware)

7 newly banned in the past 7 days = 0.145% (not a lot)

Just wanted to verify that Alph_rabbits numbers looked right. This means that the problem isn’t as big an issue as originally thought.
As for quorums - that’s the way Firo Masternode validation works - and the payment of rewards is based on providing reliable service when requested.

1 Like

Well if you work for example on emergency line it sounds fair to be penalized if you don’t pick phone twice in 5.5 days as purpose of your work is to be ready to pick incoming calls, and your not picking phone can cost somebody life.

2 Likes