Shard stall

Also, on the Infura dashboard, it still says zero requests but I have the key attached to multiple nodes. Any ideas?

image

Check your Node. My stall … unstalled for Shard 2 sometime in the last few hours. I did NOT delete chain info on this Node either.

I want to get see if I can get clarification, just to make sure I am understanding and I didn’t miss this comment on one of the many post about the updates for slashing and pNodes.

My current understanding is that slashing goes live in June, and if your node (p or v) doesn’t meaningfully contribute to committee it will get slashed and unstaked.

Does this mean, that pNodes will get unstaked and not have the ability to get the funded stake back?

I definitely understand the need for slashing, but I am a bit concerned that with the random selection process, there really isn’t enough time to test (and retest) if a stall/sync issue is fixed/resolved/still exist on pNodes… especially if you have one of those 30+ day dry spells waiting for selection…

This isnt a huge deal for vNodes, as you can just restake… and probably not a huge deal for pNodes if you can get the funded stake back, but I just wanted to get clarity on this… as I havent found the specific answer on this… which I could have definitely overlooked, through the multiple post I haver read about getting pNodes set up with new firmware, node monitor, etc.

3 Likes

Great question. I have been wondering this myself.

2 Likes

Thank you @doc for asking the question…I have 3 pnodes myself all with funded stake at this time and well I wonder if they were to get slashed what will happen to the funded stake on them…will it be reinstated since I took no action to unstake them, to begin with?.. :sunglasses:

1 Like

Corey – great questions. I’ve been asking some of the same things for a while now, more so in the past few weeks. This is a topic you’ve been on since last fall.

June was clarified to be a tentative date; not a hard deadline thankfully. However there has not been any further timeline update since, but I do hope the issues arising from this weekend’s changes will help push the date back until they are fully resolved.

That’s more or less the reality that, IMHO, has not truly sunk in for many pNode operators.

The stated position appears to be that every pNode operator must have enough PRV or enough funds to buy the requisite PRV to privately stake their pNode.

Of course that’s certainly not the case for any solo pNode operators. I estimate it would take 4-6 pNodes earning since the Genesis block to produce ONE stake of 1750 PRV. The move over the weekend to a Pending phase that will eventually reach 1 week seriously compromises any kind of meaningful reward potential going forward.

With the new approach, it is quite conceivable that unlucky Nodes may go 2-4 months without earning. The protocol adjustment has swung wildly out into left field, far overcompensating for slow syncs. An adjustment to 1-2 days max is all that was needed.

1 Like

@Mike_Wagner so you are telling me that those of us whom have Funded pNodes at this time that were to suddenly be defunded due to slashing then would be unable to recover that funded status for the slashed pNode even though we had no doing in unstaking or unfunding the pNode to begin with and it happened due to slashing…am I reading you correctly on this then?

Thanks for the reply, I do understand their policy change and the thought process around it… but this does feel a bit different. IMHO, it is different if I physically unstake my node, or am unable to keep my pNode is a proper environment to allow it to meaningfully contribute to network/committee… it is something completely different if my pNode gets slashed because we are working through bugs. Which I also completely understand happen and have to be worked through, but its different when on a testnet or no financial penalty is being felt while working through those bugs. Having a user now need to pony up 1750PRV (~$3,500 at time of writing), seems very different… and if a validator has to wait for a random selection process to verify their pNode is functioning properly… it seem pretty difficult to meaningfully test and validate.

Hopefully, as you suggested the timeline for June will not be hard and fast, and more consideration will be given on providing ample time to work through these issues.

1 Like

Once more may I state that the price of PRV has gone up since the genesis block was created…and well since the inception and creation of the pNodes…I mean 1750 in PRV a year ago was not what it would cost at today’s prices…so yea…I can say that staking a PRV back then was a much more easier and feasible thing to do as compared to today

Hey guys, I do really understand your concern about a pNode may not participate in funded staking aid if it gets un-staked for some reasons. There are two cases of un-staking:

  1. A pNode owner un-stakes physically and then re-stakes by his/her own funds in order to earn 100% of rewards. We would not support re-staking with rented funds for this case if he/she wants to go back as noticed earlier.

  2. A pNode gets slashed. We’re working on a way to distinguish this from the (1). If a pNode falls into this case (a.k.a unstaked because of slashing), it can still re-stake with rented funds as usual.

7 Likes

@duc Thank you for the much appreciated clarification!

1 Like

Thanks @duc ! That is very good to know.

1 Like

Apology for delayed response @duc…but indeed a very very grateful and thankful and enthusiastic response on my part to your post… :sunglasses: :100: :+1:

@Mike_Wagner, I’m looking for @duc to confirm this, but I think the move for more pending slots is with the idea of releasing all the slots. Currently I see anywhere between 128-152 nodes in pending slots on each shard. That is an incredibly long time to wait at the moment since they are only swapping out 5 at a time. When they release all the slots, they will be swapping out 32 at a time. Bringing the epoch pending time down to 4-5 epochs (less than a day) depending on how many nodes in front of you dont sync properly. Am I right here @duc?

Another weird thing I just encountered was I had a pending node that went into committee. During that, it stated 2 epochs before it went back into pending (instead of back to waiting). It just finished committee and indeed went back to pending. I’ve never seen that before.

Screen Shot 2021-05-19 at 9.14.17 AM

2 Likes

It is true the pending pool will need to be much larger to support all 32 slots as fixed slots are released. However I based my statement on this private chat with support earlier this month about fixing pNodes with Vote Stats of 0%:

image

I’ve been watching the same thing since the new rules went into effect on Saturday. I think it could be a symptom of a bigger issue though.

The waiting pool is no longer being shuffled. At all. Previously – at the beginning of each epoch the nodes in the waiting pool were shuffled. Later in that same epoch, 32 randomly selected nodes from random, non-sequential positions were pulled into the 8 shard pending lists. A node’s position in the waiting list did not factor into when a node moved to a pending list. A node in position 1 was just as likely to enter a shard’s pending list as the node in the very last position or any random position between.

If you searched for your node(s) by the BLS mining key each epoch, you would see the position in the waiting list change every epoch.

However now the waiting pool appears to no longer be shuffled. A node will now stay in the same position relative to the nodes immediately before and after it in the list. And nodes are now pulled only from the top of the list, not from random, non-sequential positions.

Here are the last five nodes in the waiting pool of Epoch 3479.

image

Here are the same five nodes in the waiting pool of Epoch 3480. Same order, just moved up a few positions.

image

Here are five nodes from the middle of the waiting pool in Epoch 3479.

image

And here are the same five nodes in the waiting pool of Epoch 3480. Again – same order, just moved up 50 positions.

image

Not shuffled. Moved up 50 index positions. And not shuffled.

Finally here are the five nodes at the top of the waiting list for Epoch 3479.

image

And here are the same nodes, after nodes are assigned to the 8 shard pending lists in Epoch 3480.

image
image
image
image
image

Each of those 5 nodes has moved to a shard pending list in Epoch 3480. Clearly no longer “SELECTED AT RANDOM” as the list header states.

One of my nodes has had the misfortune to be in the very last index position when the new rules went into effect. It has remained at the back of the list since this weekend. Based on the above observations, it could only enter the waiting pool committee once 99.5% of all nodes are already in the waiting pool.

As for your observation – it does appear nodes exiting committee are returned to the top of the list of nodes in the waiting pool where they immediately move back into the pending pool. Nodes being added to each shard’s pending list seem to be a mixture of nodes just released from committee AND nodes from the waiting list.


And to further complicate things, I think the new unstaking flow is broken. Before the weekend update, it was easy to see the new unstaking flow in action for new Unstaking Requests. Unstaking Requests were fulfilled about 2-3 hours after being submitted. Here 9 nodes submit Unstaking Requests which are fulfilled about 2.5 hours later.

image

However now we can see that Unstaking Requests are not being fulfilled in such a timely or orderly manner.

image

The 7 requests appear to be eventually fulfilled, albeit at random intervals not commiserate with submission requests. This also assumes that all these Unstaked transactions correlate to the shown Unstaking Requests and not any of the ~45 v.1 Unstaking Requests still waiting for committee selection to unstake.

image


It does appear something well beyond “longer time in the pending pool” has significantly altered the way candidate Nodes flow in the waiting pool, pending pool and even affects new v.2 Unstaking Requests.

6 Likes

@Mike_Wagner…WOW… :open_mouth: :astonished:

@Mike_Wagner, As I said earlier, Im still looking for confirmation from @duc, but this info you provided is super helpful. My assumption was, let’s say your node was in committee. It runs its two cycles and then goes back to waiting. As it goes into waiting, it is assigned at random where in the cue it goes. So, when you look at your node status, it will give you a countdown as to how many epochs you have before going into pending. So, that would be the 1st layer of randomness. Now, as a 2nd layer of randomness, as other nodes get sent back to waiting, they may be put in front or back of you in the waiting list. Now that makes that waiting epoch number less reliable as an indicator as to when you are actually going to start pending, BUT it would still make sense what you are seeing above when you see a small group of nodes heading up the ranks together while they are waiting to pop pending. However, I thought the pending process was linear. Once you go pending, you are in the back of the line and simply work your way up as they pull groups of nodes to go into committee next. Simple enough right? What I saw today was my node go from committee straight to the back of the line in pending. This does not make any sense to me. But, at this point @Support , if you are trying to use this time to assess results and problems from the new workflow, you’re going to have to be waaaaaaaaaay more specific on exactly how this is all working. No user can help you guys troubleshoot problems if they dont know what they are looking at, or what to look for.

3 Likes

The committes page can be hard to understand.

Let’s break it down.

COMMITTEE LISTS

At the top of the page are lists for the Beacon Committee and each of the 8 Shards (0-7).

image

The Beacon Committee is currently run by the Incognito Team. The seven beacon nodes are fixed and do not change.

Next are the Committee Lists; Shards 0-7 with 32 validators per each shard.
image

through

image

Index 1-22 of each shard represents a validator currently run by the Incognito Team. 22 * 8 = 176 fixed validators. These 176 validators (the first 22 per shard) do not change.

Index 23-32 of each shard are the 10 community validators. These are swapped out 5 at a time each epoch. The nodes in index slots 23-27 exit the committee at the end of the epoch/beginning of next epoch. The nodes in index slots 28-32 then move up to slots 23-27. 5 new nodes from the top of the corresponding shard pending list are moved into committee list, to index slots 28-32 in the same order as they appear in the pending list.

The previous process would swap 4 nodes each epoch, but otherwise this is the same as the previous process.

THE WAITING LIST

image

This is the big list of validators that have not been selected for committee. As the header reads – TO BE SELECTED AT RANDOM. Indeed nodes were previously selected at random. They are no longer.

Nodes are moved to a shard pending list directly from the top of the list.
This is different than the previous process.

The order of this list is not changing.
This is different than the previous process.

Nodes exiting committee should join this list. This is no longer happening.
This is different than the previous process.

THE PENDING LIST

image

This is the list of all the validators plucked from the above waiting list, in preparation to join the committee lists at the top of the page. While in this list, a node will sync the assigned shard’s chain. This used to be a much smaller period of time. It is now growing.

The order of this list does not change from epoch to epoch. Validators are pulled from the top of each shard’s list to join committee. Newly assigned validators from the waiting list join the assigned shard’s pending list at the bottom.

Other than the (still) increasing size of each shard’s list, this is the same as the previous process.


It would not have been possible to know which nodes would become validators, except for that short notice when a validator’s role was changed to “pending”. That short window has grown to 6, 14, 23, etc. epochs.

It is also now possible to even know when a validator will be assigned “pending” in n number of epochs ahead of that increasing window. This opens the network and validators up to potential exploitation.

image

This validator, currently in the Waiting List at position 51 for Epoch 3480, will be assigned to a shard waiting list in Epoch 3482; it will not do so in Epoch 3481. In Epoch 3481 (the next epoch) it will move up to position 1. (This will happen around block ~175 of 3481 +/- 25 blocks)

That kind of forecasting for “pending” was not previously possible. It is now. And it can be exploited to potentially attack the network. The only randomness now is which shard a validator will be assigned. The “when” of candidate selection is no longer a random unknown. Not while the Waiting List is fixed and unshuffled.

7 Likes

Thank you @Mike_Wagner…once again…WOW!!!.. :astonished: :open_mouth: