PUP-16 Increase MinimumNumberOfProofs

Attributes

  • Author(s): @pierre
  • Parameter: MinimumNumberOfProofs
  • Current Value: 10
  • New Value: 1000

Summary

There are around 300,000 transactions on POKT per day (96 blocks). Roughly 140,000 of these transactions are proofs and claims that only account for 2% of the POKT minted. This happens because nodes will submit claims and proofs for virtually any amount of relays, even if the amount is insignificant. I propose increasing the MinimumNumberOfProofs to 1000 to prevent these worthless transactions from being included into blocks, which would drastically reduce our blocksizes thereby reducing resource and storage requirements.

Abstract

The MinimumNumberOfProofs parameter is a parameter that declares the minimum number of relays served for a reward to be claimed. In order for the protocol to reward a node, the proof must meet this MinimumNumberOfProofs threshold. Transactions under this threshold fail on chain, but the client also validates that submitted proofs meet the threshold.

If this proposal were passed, the entire first bucket would be removed. This first bucket accounts for 43% of block size (with proofs) but only ~2% of rewards.

Motivation

With every gigabyte that the chain size grows by, that makes it more difficult to validate and maintain, especially for small node runners. If we want to be the most decentralized network, it is imperative that we have a small chain. Blockchains are immutable, and so anything that we put on the chain now, all of us will have to carry forever. We must make these optimizations now in order to build a healthier Pocket for the future.

Rationale

There are many reasons for decreasing block size.

  1. Severe reduction in state growth

    The network will grow an additional 141 gigabytes by V1 (18 months) at the current growth. This proposal will reduce that growth to 80 gigabytes if it is passed. (44% reduction)

  2. Smoother block processing

    If this proposal passes, it will decrease the block size from 2.6 MB to 1.5 MB. This will make block processing smoother and reduce the hardware requirements for a node.

Dissenting Opinions

  1. This will reduce node rewards.

    Yes, there will be a reduction in node rewards (roughly 1 POKT), reducing the network average by around 2%. However, this will reduce state growth by ~43%, which is well worth the cost. This analysis assumes that POKT price remains relatively stable in the short and mid-term. If there are significant changes this proposal can be revisited.

Analysis

Minimum Number of Proofs

Copyright

Copyright and related rights waived via CC0 1.

2 Likes

Brilliant work and observation Pierre.

I support this proposal.

Losing out on 1-2 pokt a day is definitely worth the lowered chain requirements moving forward.

1 Like

This seems like an elegant and simple way to improve block processing, at a reasonable cost. I support this proposal.

2 Likes

So we’d be looking at :

  • 1 POKT per day per node
  • ~50,000 POKT per day across the network
  • ~1,500,000 POKT per month across the network
  • ~27,000,000 POKT across the network over the next 18 months
  • ~$3,240,000 over the next 18 months across the network at current price
  • A cost of $54,000 per GB saved over the next 18 months at current price

Does this sound about right? Trying to make sure I’m understanding this correctly.

As mentioned above, this proposal reduces the cost of running nodes which counteracts this.

AWS SSD block storage costs $0.12 a month

  • A GB of storage costs $0.12
  • This proposal will save roughly 60 GB of storage between now and V1
  • 50,000 nodes storing 60 GB of storage for month is $360,000
  • Between now and V1 this proposal will save $3,240,000, which negates the loss in node rewards
  • This completely negates any lost rewards node runners will earn between now and then.
  • The blockchain is immutable, so this storage will be around for as long as POKT is, costing the network even more. 50000 nodes storing 60GB for another 9 years will cost ~$20,000,000

This is only accounting for storage, and there will be savings in CPU, RAM, and IO as well.

Although this proposal hurts the node runner in the short term, on the long term basis this helps the entire network save money

1 Like

Great, thank you. Just trying to make sure I fully understand the scope of the proposal, as well as everybody else.

I’m not sure $0.12/GB/month is the best comparison target, since for example OVH will add 2x 1.96 TB NVMe to a dedicated server build for $56/month, for a price per GB of around 1 cent per month. But compute and IO are incalculable so there’s that. With so many changing variables involved over time, number of nodes(down?), inflation(down?), POKT price(up?), storage prices(down?), it’s practically impossible to predict how this will go. But it’s a reduction in inflation, and I’m always down for that.

3 Likes

It looks like the blockers to moving forward here are:
1.) A slightly more granular look at the data (250, 500, 750)
2.) Some blockchain analysis on the results as they pertain to small chains (IE: Do low volume chains get completely cut out?)

Anyone willing / able?

2 Likes