-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
TariThrottle is a simple process controller designed to modulate the layer two burn rate in order to achieve two goals: * Primarily, keep the emission and burn rate roughly balanced (ensuring long-term sustainability of Tari), and * Secondarily, to maintain the total circulating supply at a target value (satisfying an implicit assumption in cryptocurrencies that token supplies are finite). A proof-of-concept controller has been implemented and tested in a simulation environment ([repo]). As the results below attest, the controller logic is sufficient to achieve these goals, even under highly volatile layer two fee conditions. However, the controller achieves the goals at the expense of a rapidly changing layer two burn rate, which may be detrimental to the sustainability of validator nodes. At the risk of the tail wagging the dog, the primary conclusion of this study is that the TariThrottle controller should likely _not_ aim to maintain a supply target, but instead to ensure a sustainable layer two ecosystem, to whit: * maintain a constant demand gradient so that under normal circumstances there is _always_ a demand for new Tari and thus Minotari are constantly being burnt to satisfy this demand, * marginal Validator Nodes are able to operate at or near break-even rates, while maintaining a healthy reserve of capacity for surge demand, and * the supply of Minotari is sustainable over the long-term. Therefore, the conclusion of this study is not to abandon the original targets of the TariThrottle completely, but to adjust the priority of the primary goal (a sustainable long-term balance), and make it subservient to the primary goal of ensuring a constant demand gradient. A modified Tari throttle model that seeks to achieve these aims is outside of the scope of this RFC and is left for a follow-up study.
- Loading branch information
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.