NodleCode / chain

A repo for the Nodle blockchain node ⛓
GNU General Public License v3.0
188 stars 46 forks source link

Hard limit reward allocations according to a piecewise linear curve #661

Closed aliXsed closed 1 year ago

aliXsed commented 2 years ago

Design

Enforcing Nodle's tokenomics which dictates there should ever be 21B NODLs minted at a rate that is not going to exceed the following curve here, issuance-aa5848b6aa5c8d4869a003ae87e24740 we need to embed a piecewise linear throttle into our allocations pallet. Initially we wouldn't need to make this curve configurable and potentially we may decide we never do that. However even if we make it configurable, this configuration would be through an extrinsic limited to a root level privileged entity.

Implementation Notes

ETeissonniere commented 2 years ago

This is great, a few questions below:

nodlflow7 commented 2 years ago

My views here:

ETeissonniere commented 2 years ago

On 1) the notion of time, it seems to me that it is the best approach. This is the approach chosen by the two largest blockchains if I am not mistaken. PoW chains use this and while it is not 100% accurate, over many years, this is reasonably good. I personally like this approach because it is not based on anything external to the chain.

Agreed, using the relay chain's blocks is probably the most stable solution at this stage. Our Parachain blocks suffer too much latency right now, other parachains had similar issues.

aliXsed commented 2 years ago

My views here:

  • On 1) the notion of time, it seems to me that it is the best approach. This is the approach chosen by the two largest blockchains if I am not mistaken. PoW chains use this and while it is not 100% accurate, over many years, this is reasonably good. I personally like this approach because it is not based on anything external to the chain.
  • On 4) I believe the network should mint until the supply has reached its maximum. Every attempts to mint above should be rejected by the network participants (invalid reward).

@nodlflow7 the suggested limitation in point 4 is for the case, our allocations oracle has been minting lower than what it was allowed to do for a while. the suggestion is for extra security and to contain any adversary we don't allow the quota to be accumulated and usable in short period of time.