f(x)Core mainnet public validators : active set

This topic is created exclusively to discuss the issue of public validators in the active set.

In august 2023, only 50 validators are allowed in the active set of validators on mainnet.
This can be increased or decreased thru governance proposal.

However, modifying the list size of active validators also implies an impact on the delay to validate blocks and on commissions earnt by each validator (mostly used for aidrops, ad campaigns, HW infrastructure and maintenance, self-bonded stake, etc.).

There are 3 types of validators:

  1. Foundation Genesis validators (created at genesis - block #1) : Singapore, Miami, SoPaulo, NewYork, Taipeï, Istanbul, Madrid, Tokyo, Montreal, London, Amsterdam, Seoul, Dubaï, Delhi, Shenzhen, Bucharest, ChiangMai, Innsbruck, Jakarta - ~175.6M $FX delegated
  2. Partners validators : Litecoin Foundation, European University Cyprus, Asosiasi Blockchain Indonesia - ~40.7M $FX delegated
  3. Public validators : all others (like myself, FX FriendsX, ClaudioXBarros, etc.) - ~158.7M $FX delegated

Due to the nature of the FX project (funded thru a conversion of NPXS/PUNDIX towards FX project), many tokens were not bought by PUNDIX users thru the multiple conversion programs offered. And these tokens were all attributed at genesis to the FX foundation.

For that reason, the foundation owns most of the $FX tokens of the project, and they delegate them to the multiple validators.

The voting power is paramount for governance to be expressed : the more $FX are delegated to public validators, the more chances of seeing a proposal being voted YES or NO, since team validators and partner validators are not supposed to vote.

For example, in the numbers above, if a proposal was to be voted by all active validators, only 158.7/(158.7+40.7+175.6)=42.32% of votes could be expressed. So if only one or two public validators do not vote, it is impossible to reach the 40% quorum required for a proposal to be even just considered by the consensus (below 40%, it will be rejected, whatever the YES/NO result).

Also, to be in the active validator set, a validator needs to have more delegated tokens than the 50th validator. Otherwise, it just goes inactive in the consensus…

We used to have a discussion a year ago when DAOVerse proposal was rejected because public validators (the only ones to be voting on governance proposals) couldn’t reach the 40% quorum.Even though it’s now corrected, it appears some public validators are not “playing the game” and are not voting. And since the FX foundation is the one delegating most of the tokens to the public validators, it is clearly required to assess regularly which public validators should have more “foundation-delegated” tokens and which should have less. You can check for every public validators’ votes on the Starscan explorer, thru the Validators tab.

From here, I’m assuming you all understood how the Tendermint (or future CometBFT) consensus works. And for more information, the Tendermint/CometBFT consensus is the underlying consensus layer on which CosmosSDK is relying, and FX relies on CosmosSDK architecture.

3 public validators are currently waiting in the inactive list :

  • Aghanism (@Aghanims ) : 999.4k $FX delegations
  • FX FriendsX (@11110 ) : 799.4k $FX delegations
  • ByteX (@ByteXSylvia ) : 0.7k $FX delegations

@Aleksandr , @ByteXSylvia : I think this is the right place now to discuss issues with active validator set.

Update 11/AUG/2023: addition of pending inactive (not jailed) public validators.

4 Likes

@FrenchXCore thx for youre work :+1:

1 Like

*************************** SUGGESTIONS SUMMARY ***************************
************ FX foundation $FX delegations towards public validators ************

@FrenchXCore:

  • Increase delegations towards public validators based on public validator seniority
  • Decrease delegations towards public validators based on decentralization ($FX owned by users detaining less than 1% of total circulating $FX)
  • Increase delegations towards public validators based on participation in $FX ecosystem development (community sharing and help, tools, blockchain dev, tools dev, etc.)
  • Update FX foundation delegations every month or 2 months
  • Increase/decrease delegations based on participation of public validators to governance
  • Reserve 35% of total bonded $FX to delegate to public validators (if possible)
  • Allow one or more foundation validators to vote (up to 15% bonded $FX) based upon a restricted-committee council composed of public and foundation validators representatives with a veto right for foundation
  • Decrease temporarily (1st time) or definitely (2 or more times) a public validator base on downtime and even more in case of jail
  • Ban a public validator in case of tombstone (actually, it’s even mandatory here)
  • Incentivize public validators with bonus delegations in case of active governance involvement

************************ FX foundation validators ************************

  • Always keep 2 slots opened for public validators to join in (thru a reallocation among FX foundation validators and decrease of last foundation validators’ delegations)
  • Always keep at least 10 FX foundation validators active with a maximum of 65% of FX foundation delegations.
  • Airdrop FX foundation’s validators commission towards public validators
  • Fund FX foundation’s validators operation thru EGF/community-pool annually.

************************ What else ? ************************

  • FX foundation should be able to collect their own staking rewards (to compensate for the inflation of the $FX token)
  • FX foundation should be able to be transparent about the use of the genesis funds (EGF, product & marketing, engineering, etc.) - we still didn’t have any update on that matter since my previous posts of April 2022 (HERE)
  • The EGF as it is used right now (community-spend pool, which is an accepted tax over all $FX block rewards) SHOULD NOT be confused with the genesis EGF fund (endowed with 75.7M $FX) : needs to be fully understood…

— RESERVED FOR FUTURE SUGGESTIONS SUMMARY —

Please consider this as a draft, opened to any suggestions that I’ll update directly in this post.
Then I suggest we discuss with the foundation (@zaccheah , @DavidK ) and the staff.
Please also note that I’m eager to propose a transparent audit of the genesis funds, annually shared with the community. And that point seems paramount to me for $FX value to really take off one day.

Edit 11/AUG/2023 1642GMT : added @Aghanims comments.

4 Likes

Aghanism actively follows any upgrade, vote, and retweet! 2fa secured and no downtime.

1 Like

@Aghanims , do you have any suggestion to improve the criteria above ?

what you mention is good, I would suggest a game like where public validators earn bonus delegations through active governance involvement, this can boost the voting quorum and also encourage a dynamic ecosystem, or maybe decrease delegations when validator got punished like jailed?

1 Like

Took into account…

now I have a question , what if I want to delegate to a validator that is in the inactive list :thinking: … in the past I have already lost fx tokens due to prison of a validator who did not mention any problems

and if I understand correctly my delegated FX to partner validators don’t count towards my vote… or am I wrong

Hi @Darry !

Concerning inactive validators, you can delegate $FX to them :

  • your $FX can count for governance voting if the validator votes or if you vote,
    -but your $FX don’t produce rewards.

When a validator is slashed, your delegated tokens get slashed too:

  • 0.1% in case the validator was jailed because of downtime, or
  • 5% in cas the validator was tombstoned because of bad behaviour

Concerning partner validators (L.F., E.U.C., A.B.I.), they never voted in the past. This means $FX delegated to them will not count for governance voting, unless you vote yourself.

Regards
@FrenchXCore

1 Like

Ok thx :+1: I do notice that the partner validators offer a higher APY, what is the advantage or disadvantage of that? I always give my vote , because they do not vote , or does that not add value for these validators ?

APY varies depending on each validator’s commission.

  • Commission is how much they charge delegators for putting in work.

If it’s set at 5% commission, 5% of your rewards will be allocated towards the validator. Also, there are multiple factors to consider so don’t only look for higher APY.

  • Look for credibility and their overall uptime.
  • Look at how active they are.
  • Look at how much they self-bonded because this means they have skin in the game.
  • APY is not everything - Always be vigilant and cautious with near zero APY even for marketing.
  • Doxxed validators are generally “safer”.
  • Professionals usually charge a higher commission rate because it’s their forte.

This is the general guideline and is applicable to every blockchain in existence.

P.S. :point_down:

Always remember - Do not delegate because you are friends but because they’re good at the tech.

Money means business and you should always have proper considerations before letting someone handle your money for you.

3 Likes

Great response from @SCENE .

Just to give you an example @Darry (this is Litecoin Foundation validator public information).

Litecoin Foundation

🟢 @ block#11469221
 - @ Cons=fxvalcons1nv8826xq03c2kqg0srp8xr6egwzkzpm2wlw2yp
 - Website:        https://litecoin-foundation.org/
 - Bonded on block#2947755 (07/Jan/2022 15:06:49Z) - Min. self-bonded:   1,00 $FX
 - Self-bonded:           110,00 $FX
 - Delegated tokens:  16 582 985,78 FX
 - # Delegations:        572
 - Commission:         1.00% (Max=20.00% - MCR=1.00%/day)
 - Commission to be withdrawn:            4 129,55 $FX
 - Self-bond rewards to be withdrawn:    1 272 332,46 $FX
 - Missed blocks:                       10/19000 (0.05%)
 - Past slashes:                          none
 - Details:    The Litecoin Foundation is a non-profit organization founded for the good of society. It aims to develop and promote state-of-the-art blockchain technologies. Registered in Singapore, the Litecoin Foundation team consists of full-time and volunteer support from around the globe.

Many things can be taken into account:

  • Minimum self bonding = 1,00 $FX and Self bonding = 110,00 $FX : this means that it only puts 110 $FX in the game… They could stop any time, or just follow on keeping 110 $FX self delegated. It doesn’t participate in securing the network from a validator’s perspective.
  • Commission = 1% : it’s probably far not enough to cover the cost of servers with the commissions. they probably have their servers cost cover otherwise…
  • Missed blocks = 10 ==> downtime: it’s nothing to be worried about… Those are residual missed blocks. We only have to worry when it reaches 1000 blocks or more.
  • Past slashes = none : the validator was never slashed (jailed) before.

The above visual is what you’ll get soon from my bot (which will also be my first EGF proposal).

Regards
@FrenchXCore

1 Like

And just to correct on one thing, it is not exactly 5% of your rewards which go to the validator, the formula’s a bit more complex, but I don’t have it under my hand.
To compare, if you stake 10k $FX during 1 year :

  • using Litecoin (1% commission), you’ll currently get 1 713 $FX rewards
  • using FrenchXCore (4% commission), you’ll currently get 1 661 $FX rewards
    There’s a difference of 1 $FX per week (3,13%).
1 Like

@SCENE @FrenchXCore thanks for the explanation, now everyone who is not so familiar with this matter has the right information

It’s pretty much 4.999999% rounded and regular users prefer to see a simple whole number.


But if we want to get down right to the specifics, this is directly from the team: :ok_hand:

Let us take an example where we have 10 validators with equal voting power and a commission rate of 1%. Let us also assume that the reward for a block is 1000 FX and that each validator has 20% of self-bonded FX (remaining 80% are delegated FX). These tokens do not go directly to the proposer. Instead, they are evenly spread among validators. So now each validator’s pool has 100 FX. These 100 FX will be distributed according to each participant’s stake:

  • Commission: 100*80%*1% = 0.8 FX
  • Validator gets: 100*20% + Commission = 20.8 FX
  • All delegators get: 100*80% - Commission = 79.2 FX

Then, each delegator can claim their part of the 79.2 FX in proportion to their stake in the validator’s staking pool.


How are fees distributed?

Fees are similarly distributed with the exception that the block proposer can get a bonus on the fees of the block they propose if they include more than the required minimum number of pre-commits.

When a validator is selected to propose the next block, they must include at least 2/3 pre-commits of the previous block. However, there is an incentive to include more than 2/3 pre-commits in the form of a bonus. The bonus ranges from 1% if the proposer includes 2/3rd pre-commits (minimum for block validity) to 5% (growing linearly) if the proposer includes 100% pre-commits.

The proposer should strike a balance between waiting for more signatures and risk losing out on proposing the next block entirely. This mechanism aims to incentivize non-empty block proposals, better networking between validators as well as to mitigate censorship.

Let’s take a concrete example to illustrate the aforementioned concept. In this example, there are 10 validators with equal stake. Each of them applies a 1% commission rate and has 20% of self-delegated FX. Now comes a successful block that collects a total of 1025.51020408 FX in fees.

First, a 2% tax is applied. The corresponding FX go to the reserve pool. Reserve pool’s funds can be allocated through governance to fund bounties and upgrades.

  • 2% * 1025.51020408 = 20.51020408 FX go to the reserve pool.

1005 FX now remain. Let’s assume that the proposer included 100% of the signatures in its block. It thus obtains the full bonus of 5%.

We have to solve this simple equation to find the reward R for each validator:

9*R + R + R*5% = 1005 ⇔ R = 1005/10.05 = 100

  • For the proposer validator:
  • The pool obtains R + R * 5%: 105 FX
  • Commission: 105 * 80% * 1% = 0.84 FX
  • Validator’s reward: 105 * 20% + Commission = 21.84 FX
  • Delegators’ rewards: 105 * 80% - Commission = 83.16 FX (each delegator will be able to claim its portion of these rewards in proportion to their stake)
  • For each non-proposer validator:
  • The pool obtains R: 100 FX
  • Commission: 100 * 80% * 1% = 0.8 FX
  • Validator’s reward: 100 * 20% + Commission = 20.8 FX
  • Delegators’ rewards: 100 * 80% - Commission = 79.2 FX (each delegator will be able to claim their portion of these rewards in proportion to their stake)
2 Likes

there are validators who only have 100 self bonded FX :triumph: how is that possible :thinking:

That’s the bare minimum required at this moment.

is quite little

It was made this way at the beginning to attract public validators.

1 Like