NEAR Protocol Office Hours ⏰

Recorded: Nov. 16, 2022 Duration: 0:27:37

Player

Snippets

I'm not sure what just happened. I think it's a connectivity issue. I believe.
Hey. Whoops. There we go. You want to make me a co-host too. So like if you were the host, Nico and then you had connectivity issues, yeah, wouldn't it automatically default to
to check that out. No, yeah. Fortunately, that's not a, not that's a feature request we can tweet out, but you should have valued all those devs. There's no. Oh, really,
and resend it out for a sec. >> All right. >> It was an intense conversation and then I'm like, "What happened?"
So I think this is a topic we had Dennis also we could not pull him back up on the stage. I think Debra is fairly new on the validator side of things. I think this would be a good, there could be a good follow-up session for this also. Come back and read
chat about this. I love how Min is doing. Min is actually methodologically taking us through the different aspect step by step with her own preempting questions and asking.
Yeah, I thought I had... I was worried that I don't have enough material to... to for an hour, but now I realize I can't finish all this in an hour. Yeah.
Yeah, and you can also stop me too from asking questions. Oh, no, it's great. It's your question is great. Yeah, no, yeah, like like like like to know saying it like Debrao, you know, primarily our role here is helping developers build on top of the planet.
form and helping them use our tooling and overall developer experience. But yeah, like the protocol level is kind of like this different aspect. It's really interesting and fascinating. But yeah, sometimes a lot of devs just, it's this black box that they store their state on and you know, submit requests to
and get requests from, but the inner workings of which aren't necessarily something, yeah, we're experts on, and that's where this reel come in to kind of help educate us. But yeah, I definitely think like, you know, it's a common thing that people
ask when you know all the protocol questions that we do get it definitely is like you know what's the C price currently for a validator and then they find out how high it is and like okay cool and then we say there's trunk producers what's that current price we don't have that kind of illustrated somewhere but yeah people want to know more about like how that's determined
and then yeah like the comparison between you know now EC point 0 and their proof of stake model versus ours how it differs and yeah I think it'd be good to have like a session with maybe Marcin and whoever else you know you as well Ming would love to have you a part of that which is like doing the comparison of
like, East 2.0 versus Near and the Design choices. So I know originally we kind of like aimed for, okay, you know, 2.0 has this roadmap. We went, we started developing towards that and then at some point we decided to kind of fork off and kind of do our own thing and it'd be cool to kind of go over the different
differences in our implementation of sharding and proof of stake versus what 2.0 is. I think that would be a really cool session. And then capture that information in some meaningful way in like a doc or something would be cool.
Yeah, that's very good point. So I think it's very, yeah, I think you made a very good point that it's like, it's such an important question that people always wonder what the C price are, but it's kind of
hard to be found everywhere. It's also sort of dynamic. So I would say we should probably just, it's super easy to calculate so we can just ask them to explore it. Because you know like, now I've explored it, I have like total supply, total, yeah. And it's very easy to just add. The calculation is very
That would be just yeah, no, that's that's great. That's perfect right like why not have that on you know like currency price or something you know chunk chunk price currency price like we have the like same thing with gas right like that's dynamic and then we have that current gas price so yeah
Yeah, when I'd have something similar to that, that's easy that we can point to. And then, you know, like a little tool to have that says to learn more and then it links to the Namakhan doc that explains how this is calculated and, you know, allows people to dive deeper that are interested in looking under the hood.
Yeah, yeah, yeah, we can we can like save this as an action item I don't know who's responsible for maintaining I will I'll own this I can own like you know the Yeah logistics around this, but yeah
might ping in, ask for for some assistance, but yeah, I can definitely own kind of the follow through of this act on that. Okay. Okay, I think people are starting to join. Should we wait for longer? Yeah, perhaps we could there is a recording
that'll persist. So. I would agree because it's been recorded so to be we can they can catch up as well but yeah I didn't want it to.
I'm scared. I'm scared the loan listener out. However, apologies. This is a part two for the protocol meeting for today, which is November 16th. There was accidental closure of the previous Twitter space. So we read
started this and then I think Min will continue with the conversation. But before you continue Min, I had the question on the same topic. I think you were kind of addressing is like the probability of electing these nodes being a chunk only produced versus a block producer,
But epoch was very intriguing. So if you want to shed more light on that topic, that would be great. Yeah, so we assigned. So basically we wanted...
So basically we want block producers with more steak they should produce more blocks, right? And if a chunk producer have more steak they should produce more chunks. So if so we we have like disempling out with a
that computes which block producer is responsible to produce which block at which height and the sampling algorithm samples according to a weight that's proportional to the stake of
these validators. So let's say if I'm a block producer and I have 1% of the total like the total stake of all block producers, then I will produce, probabilistically speaking,
on average one block in every 100 block. He's not always like that because this is probabilistic but yeah the expected value is that right. And the same thing for a chunk producers, see if I have one person of total say for all chunk producers
then I will approximately produce one chunk out of 100 chunks. So this means if a chunk and also that's probabilistic. So that means if a chunk produced
user has two little stake because we have like every epoch we have 33,200
blocks, so I have like the kind of this many of chances to produce chunks like according to the sampling algorithm, right? But if the probability, if their ratio is too low, there's going to be a substantial probability that
they don't actually get to produce any block or chunk at all. And that is not desired at least because you then were kind of like waste sort of wasting
the resource that they kind of, they are, okay, not wasting resource, but they're, they put their stake, but they don't actually get to produce any chunks. I'll see. Yeah. It's, that's
It's interesting, like maybe we could think of ways to...
get rid of this, there could be ways around this. So maybe we can, because technically, there's not that much of an issue that they don't produce. If you feel like a bunch of validators there and
they don't actually get to produce Bruxor Chunks for epoch. It doesn't make the blockchain less secure or less efficient per se. It's just like how are you going to assign rewards to them because they actually don't produce any Bruxor Chunks.
But I think there are probably ways to get around that or like design something that makes sense. Yeah. Yeah. I thought that's two-sided. There's always two sides to these things. One is the valedictor who is trying to be part of
every block production in every sorry epoch to produce blocks so that they can be in the game. And how often like I think we have 100 block producers available every epoch or is it again the probabilistic way of
determining amongst those hundred how many will be producing blocks. Is that how the correlation work or is like am I completely off in how I'm thinking? Oh, yeah, totally right. Yeah, we so let's just only focus on block producers now we have 100 block producers.
and you don't have some state, right? So let's say they all have 1% of total stake, then at every block I would have to sample out with them that randomly
pick a block producer evenly, but if their stake is not even, then the probabilistic distribution will be proportional to their stake ratio. Yeah.
If I'm more steak, that means I have more chance to produce more blocks. This is a probabilistic distribution.
like just like because when I sample enough times in an epoch like because in epoch has many blocks right so at the end the total number of blocks
produce will be more or less close to the weight, the ratio, my stake ratio times the number of blocks in an epoch. Right. Yeah. Okay, so I guess we're
only have sort of 10 minutes left. So let me quickly say here how I calculate the state ratio of our state requirements for Maynet right now. So I told you that okay the cutoff for block valid for block
So the producer is 160 divided by 1 million. So I just go to the Explorer page, the validators page, the Explorer validators page. And on that page, you'll actually see this number of total staked.
Right. And right now it's like for 56 million something. So that is. You're on it for and it shows you a little stick. Yeah. Yeah. So if you go on mate.
If you go to explore.near.org/validators, you will see the header of that page. You'll see those validating total supply and they will see total stake. So this is still an approximation because I think the total stake here
probably because here we actually want to know is the total stake of our block producers but I think it's a close enough. It's very close. So as the estimation here I just take that number and I multiply that by the kind of
ratio which is 160 divided by 1 million. So the seed price then for block producer comes to around 75k a year as of right now. And for chunk. Okay, it actually it actually does have seed price on here. I would see this node pages.
for the right hand side. So it's just 20,000 there is the current sea price. Oh, oh, I see cool. That's the sea price. So all we need to do is just have this black producer. Yeah, for block producers higher for
producer it is yeah around 20k yes yeah okay then so we never see that I'm never
in it either. Okay, cool. So we have the seat price and that is for block producer is 20,000. How do we calculate the, uh, the producer? The here is for, it's not for block is for chunk here. The sea price is for chunk. Yeah, yeah, yeah, yeah, yeah, yeah. That's right. That's way low. Okay.
It's entry price, right? In entry seat price to get in for all of the data poor, right? In general, you could be a shampoo user or a block producer, but again, if you want to be a block producer, then you should have a high take obviously in order, but this is this is making
We had a higher seat price to even enter this validated poll. I think this would give us, give community the to enter from the lower stake point.
I think we wanted to reduce the friction and as part of the chunk only producer raw, it helped us actually give this opportunity from lower hardware requirements to lower seed price would allow more people to actually join the network.
That's what I see this. Rather than differentiating chunk producer versus block producer, of course the C-Prizes might vary in what is the role that you would play within the network, but at least there is no barrier to entry. There's less kind of barrier to entry
with the lower seed price and more open seeds with 200 additional chunk only producers, states that we created as part of the recent phase release is how I actually perceive this whole thing.
Um, okay, so
Okay, so I also want to talk about how rewards are calculated. So let's switch to that since we want to talk about that in this.
talk as well.
So this reward calculation also happens at the end of every epoch. So basically at the end of every epoch, we, like, the algorithm will actually calculate, okay, how, how we need to know how low
this epoch R and also how many blocks or chunks each validator has produced and how many they are expected to produce. So how this reward calculation works is that it's a first we calculate
in total how much reward we should create for this epoch. So that is kind of like that amount is kind of like minted new. So it is calculated from total supply
based on a design that we want to have a maximum inflation rate per year. So I think the inflation rate right now is that 25%.
So what we do is we calculate, okay, so if we want to issue at most 5% of new coins, new tokens every year. So that's like give us like okay the amount of new near tokens we should issue per year, right? And then
And we divided that by, we kind of scale that according to how long this last epoch has lasted. So that will give us, okay, how much of that token should be rewarded in this path epoch.
And so now we have the number of total epoch award reward and note that not all of that will go to validators. So actually 10% of total epoch reward will go to treacherous
the near treasure, like the project treasury, and the rest will go to validators. So validators will have 90% of total epoch reward.
And then all these validators will split this reward still proportional to their stake. But also that's assuming nobody missed any block.
So the actual reward that a validator gets will be the multiplier of three numbers. So first is this
total validator reward, which is 90% of total epoch reward. And then the second number is their stake ratio. The ratio of their stake divided by all validator stakes.
And then the third number is calculated according to their uptime, meaning how many, like, what's the proportion of the blocks where chunks I actually produce,
versus the blocks and chunks that I'm expected to produce. So let's say that I produced everything. For example, I'm a block producer, I produce all blocks and produce all chunks.
that I'm supposed to produce and I have 1% of total sake of all validators in this epoch. Then I will have 1%. The reward I will get will be 1% of the total validate reward.
in the CPOC. But let's say that I still have 1%, but I actually missed 20% of my blocks I'm supposed to produce. So actually that doesn't mean that I will still get 80% of what I'm getting. Actually that means it goes to
So this calculation actually starts from, I forgot it was 80% or 90% sorry, but that says 80%. So this calculation actually starts with, if you produce 80%, if you miss 20% blocks, you get zero.
If you produced 100 blocks, you got one and everything is linear in between. So if you produce 90% of blocks, you will get 50%. >> After reward. >> Does that make sense right now?
Yeah, it's interesting and a little complex, I think, to comprehend from first listening. But the same question as what Josh had, like just like calculating seed price, we don't have a specific documentation explaining the probability of chunk producer getting selected pretty
or the block producer. Do we have something regarding rewards as well? What you just mentioned, the three numbers that is involved in actually calculating reward for each of these validators, is there somewhere that people can take a look or is there a need for us to actually
document this. So I am making note as an action item also, just so whatever we discuss here it is, is kind of replicated in documentation for people to go back and look at. Yeah, it is documented on the air as our own nomical, but also the same as what I
the same comment that I had earlier. It was just a math equation you have there. It is like a little bit confusing for people who don't have the context. Yeah. Yeah.
Okay. It sounds good. I think we are at a time almost. We can wrap up the office hours. Maybe we can structure a little different next time. So I'm just learning every new call like what are different ways to do this and also this time
topic is again, kind of new for all of us and not a general root for the call topic. So and features specific topics. So there's something new for all of us and I also kind of reach out to validate a community to join. I think I missed this week to actually include validate a community.
communicate with them so they would have been here and then would have asked more questions because they have more hands on than any of us right running them. Yeah, in a month, I have a lot to say about rewards and exactly.
Yeah, so maybe in another few weeks or so we can come back to this and have better communicated out in advance for folks to actually join and ask question as well. Yeah, sounds good. Awesome. Awesome.
much more. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you.#