From 519afb13b4d2a517ca68ed3a2e279f4d7dae76e9 Mon Sep 17 00:00:00 2001 From: brucexc Date: Sun, 1 Dec 2024 22:21:07 -0500 Subject: [PATCH 1/4] REP-54: draft --- README.md | 1 + REPs/REP-54.md | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 REPs/REP-54.md diff --git a/README.md b/README.md index b4dcab5..11b0d52 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ This repository tracks all REPs proposed by the RSS3 Community. | [REP-38](./REPs/REP-38.md) | Demotion and Slashing Mechanism | [Polebug](mailto:polebug@rss3.io) | Core | Draft | | [REP-40](./REPs/REP-40.md) | Whitepaper Updates | [pseudoyu](mailto:pseudoyu@connect.hku.hk) | Core | Final | | [REP-43](./REPs/REP-43.md) | Introducing Payment Processor for Request Fees | [Nya Candy](mailto:dev@candinya.com) | Core | Review | +| [REP-54](./REPs/REP-54.md) | Network Operation Rewards Distribution | [BruceXC](mailto:xichang1510@gmail.com) | Core | Draft | ## Submit an REP diff --git a/REPs/REP-54.md b/REPs/REP-54.md new file mode 100644 index 0000000..89d44a3 --- /dev/null +++ b/REPs/REP-54.md @@ -0,0 +1,81 @@ +``` +REP: REP-54 +Title: Network operation rewards distribution adjustment +Status: Draft +Type: Core +Created: 1 Dec 2024 +Author(s): BruceXC +Description: This REP proposes a new Network operation rewards distribution mechanism +Discussions: https://forum.rss3.io/t/rep-network-operation-rewards-distribution-adjustment/223 +``` + +# REP-54: Network operation rewards distribution adjustment + +## Table of Contents + +- [Abstract](#abstract) +- [Motivation](#motivation) +- [Specification](#specification) +- [Rationale](#rationale) +- [Reference Implementations](#reference-implementations) + +## Abstract + +This REP proposes to adjust the Network operation rewards distribution mechanism. +The REP will update the Whitepaper first, and then the rewards distribution mechanism will be adjusted on the Global Indexer accordingly. + +## Motivation + +The proposed adjustment accounts for various aspects of Node contributions to the network, aiming to optimize the allocation of rewards to Nodes and help cover their operational costs. + +## Specification + +The current formula is based on various factors reflecting Node contributions to the network. The total score for Node $i$ is defined as $S_i$, calculated using the following formula: + +$$ +S_i = W_1 \cdot R_i + W_2 \cdot D_i + W_3 \cdot E_i +$$ + +Where: + +- $W_1$, $W_2$, $W_3$ are the weights of the three factors, and $W_1 + W_2 + W_3 = 1$. +- $R_i$ is the request distribution score of Node $i$. +- $D_i$ is the data indexing score of Node $i$. +- $E_i$ is the stability score of Node $i$. + +$$ +R_i = \frac{\text{valid\_count}_i}{\max(\text{valid\_count})} - \alpha \cdot \frac{\text{invalid\_count}_i}{\max(\text{invalid\_count})} +$$ + +where: + +- $\text{valid\_count}_i$ is the valid request count of Node $i$. +- $\text{invalid\_count}_i$ is the potential invalid request count of Node $i$. +- $\alpha$ is a constant factor, representing the weight of the invalid request count. + +$$ +D_i = \beta_1 \cdot \frac{\text{network\_count}_i}{\max(\text{network\_count})} + \beta_2 \cdot \frac{\text{worker\_count}_i}{\max(\text{worker\_count})} + \beta_3 \cdot \frac{\text{activity\_count}_i}{\max(\text{activity\_count})} +$$ + +where: + +- $\text{network\_count}_i$ is the number of supported networks of Node $i$. +- $\text{worker\_count}_i$ is the worker count of Node $i$. +- $\text{activity\_count}_i$ is the activity count of Node $i$. +- $\beta_1$, $\beta_2$, $\beta_3$ are the weights of the three factors, and $\beta_1 + \beta_2 + \beta_3 = 1$. + +$$ +E_i = \gamma_1 \cdot \frac{\text{uptime}_i}{\max(\text{uptime})} + \gamma_2 \cdot \text{version\_score}_i +$$ + +where: + +- $\text{uptime}_i$ is the continuous uptime of Node $i$. +- $\text{version\_score}_i = 1$ if the node uses the latest version, otherwise $0$. +- $\gamma_1$, $\gamma_2$ are the weights of the two factors, and $\gamma_1 + \gamma_2 = 1$. + +## Rationale + +The core goal of this proposal is to evaluate Node contributions from multiple perspectives to ensure a fair allocation of network operation rewards. This approach enables Node operators to receive Network operation rewards while reducing their operational costs. + +## Reference Implementations From 257991184f551133bd0d6a17b07cd2958315e46a Mon Sep 17 00:00:00 2001 From: brucexc Date: Sun, 1 Dec 2024 22:23:27 -0500 Subject: [PATCH 2/4] chore: latex format --- REPs/REP-54.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/REPs/REP-54.md b/REPs/REP-54.md index 89d44a3..68766ae 100644 --- a/REPs/REP-54.md +++ b/REPs/REP-54.md @@ -44,34 +44,34 @@ Where: - $E_i$ is the stability score of Node $i$. $$ -R_i = \frac{\text{valid\_count}_i}{\max(\text{valid\_count})} - \alpha \cdot \frac{\text{invalid\_count}_i}{\max(\text{invalid\_count})} +R_i = \frac{\text{valid_count}_i}{\max(\text{valid_count})} - \alpha \cdot \frac{\text{invalid_count}_i}{\max(\text{invalid_count})} $$ where: -- $\text{valid\_count}_i$ is the valid request count of Node $i$. -- $\text{invalid\_count}_i$ is the potential invalid request count of Node $i$. +- $\text{valid_count}_i$ is the valid request count of Node $i$. +- $\text{invalid_count}_i$ is the potential invalid request count of Node $i$. - $\alpha$ is a constant factor, representing the weight of the invalid request count. $$ -D_i = \beta_1 \cdot \frac{\text{network\_count}_i}{\max(\text{network\_count})} + \beta_2 \cdot \frac{\text{worker\_count}_i}{\max(\text{worker\_count})} + \beta_3 \cdot \frac{\text{activity\_count}_i}{\max(\text{activity\_count})} +D_i = \beta_1 \cdot \frac{\text{network_count}_i}{\max(\text{network_count})} + \beta_2 \cdot \frac{\text{worker_count}_i}{\max(\text{worker_count})} + \beta_3 \cdot \frac{\text{activity_count}_i}{\max(\text{activity_count})} $$ where: -- $\text{network\_count}_i$ is the number of supported networks of Node $i$. -- $\text{worker\_count}_i$ is the worker count of Node $i$. -- $\text{activity\_count}_i$ is the activity count of Node $i$. +- $\text{network_count}_i$ is the number of supported networks of Node $i$. +- $\text{worker_count}_i$ is the worker count of Node $i$. +- $\text{activity_count}_i$ is the activity count of Node $i$. - $\beta_1$, $\beta_2$, $\beta_3$ are the weights of the three factors, and $\beta_1 + \beta_2 + \beta_3 = 1$. $$ -E_i = \gamma_1 \cdot \frac{\text{uptime}_i}{\max(\text{uptime})} + \gamma_2 \cdot \text{version\_score}_i +E_i = \gamma_1 \cdot \frac{\text{uptime}_i}{\max(\text{uptime})} + \gamma_2 \cdot \text{version_score}_i $$ where: - $\text{uptime}_i$ is the continuous uptime of Node $i$. -- $\text{version\_score}_i = 1$ if the node uses the latest version, otherwise $0$. +- $\text{version_score}_i = 1$ if the node uses the latest version, otherwise $0$. - $\gamma_1$, $\gamma_2$ are the weights of the two factors, and $\gamma_1 + \gamma_2 = 1$. ## Rationale From 1bb302f23f3a0f89ddb554a6cd293df282592d2c Mon Sep 17 00:00:00 2001 From: brucexc Date: Sun, 1 Dec 2024 22:30:00 -0500 Subject: [PATCH 3/4] chore: latex format --- REPs/REP-54.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/REPs/REP-54.md b/REPs/REP-54.md index 68766ae..89d44a3 100644 --- a/REPs/REP-54.md +++ b/REPs/REP-54.md @@ -44,34 +44,34 @@ Where: - $E_i$ is the stability score of Node $i$. $$ -R_i = \frac{\text{valid_count}_i}{\max(\text{valid_count})} - \alpha \cdot \frac{\text{invalid_count}_i}{\max(\text{invalid_count})} +R_i = \frac{\text{valid\_count}_i}{\max(\text{valid\_count})} - \alpha \cdot \frac{\text{invalid\_count}_i}{\max(\text{invalid\_count})} $$ where: -- $\text{valid_count}_i$ is the valid request count of Node $i$. -- $\text{invalid_count}_i$ is the potential invalid request count of Node $i$. +- $\text{valid\_count}_i$ is the valid request count of Node $i$. +- $\text{invalid\_count}_i$ is the potential invalid request count of Node $i$. - $\alpha$ is a constant factor, representing the weight of the invalid request count. $$ -D_i = \beta_1 \cdot \frac{\text{network_count}_i}{\max(\text{network_count})} + \beta_2 \cdot \frac{\text{worker_count}_i}{\max(\text{worker_count})} + \beta_3 \cdot \frac{\text{activity_count}_i}{\max(\text{activity_count})} +D_i = \beta_1 \cdot \frac{\text{network\_count}_i}{\max(\text{network\_count})} + \beta_2 \cdot \frac{\text{worker\_count}_i}{\max(\text{worker\_count})} + \beta_3 \cdot \frac{\text{activity\_count}_i}{\max(\text{activity\_count})} $$ where: -- $\text{network_count}_i$ is the number of supported networks of Node $i$. -- $\text{worker_count}_i$ is the worker count of Node $i$. -- $\text{activity_count}_i$ is the activity count of Node $i$. +- $\text{network\_count}_i$ is the number of supported networks of Node $i$. +- $\text{worker\_count}_i$ is the worker count of Node $i$. +- $\text{activity\_count}_i$ is the activity count of Node $i$. - $\beta_1$, $\beta_2$, $\beta_3$ are the weights of the three factors, and $\beta_1 + \beta_2 + \beta_3 = 1$. $$ -E_i = \gamma_1 \cdot \frac{\text{uptime}_i}{\max(\text{uptime})} + \gamma_2 \cdot \text{version_score}_i +E_i = \gamma_1 \cdot \frac{\text{uptime}_i}{\max(\text{uptime})} + \gamma_2 \cdot \text{version\_score}_i $$ where: - $\text{uptime}_i$ is the continuous uptime of Node $i$. -- $\text{version_score}_i = 1$ if the node uses the latest version, otherwise $0$. +- $\text{version\_score}_i = 1$ if the node uses the latest version, otherwise $0$. - $\gamma_1$, $\gamma_2$ are the weights of the two factors, and $\gamma_1 + \gamma_2 = 1$. ## Rationale From 9a50aa104c298bd08dd3999c7051eccbdc77a5ba Mon Sep 17 00:00:00 2001 From: brucexc Date: Sun, 1 Dec 2024 22:33:38 -0500 Subject: [PATCH 4/4] chore: rename --- REPs/REP-54.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/REPs/REP-54.md b/REPs/REP-54.md index 89d44a3..2f2b9c0 100644 --- a/REPs/REP-54.md +++ b/REPs/REP-54.md @@ -44,34 +44,34 @@ Where: - $E_i$ is the stability score of Node $i$. $$ -R_i = \frac{\text{valid\_count}_i}{\max(\text{valid\_count})} - \alpha \cdot \frac{\text{invalid\_count}_i}{\max(\text{invalid\_count})} +R_i = \frac{\text{validCount}_i}{\max(\text{validCount})} - \alpha \cdot \frac{\text{invalidCount}_i}{\max(\text{invalidCount})} $$ where: -- $\text{valid\_count}_i$ is the valid request count of Node $i$. -- $\text{invalid\_count}_i$ is the potential invalid request count of Node $i$. +- $\text{validCount}_i$ is the valid request count of Node $i$. +- $\text{invalidCount}_i$ is the potential invalid request count of Node $i$. - $\alpha$ is a constant factor, representing the weight of the invalid request count. $$ -D_i = \beta_1 \cdot \frac{\text{network\_count}_i}{\max(\text{network\_count})} + \beta_2 \cdot \frac{\text{worker\_count}_i}{\max(\text{worker\_count})} + \beta_3 \cdot \frac{\text{activity\_count}_i}{\max(\text{activity\_count})} +D_i = \beta_1 \cdot \frac{\text{networkCount}_i}{\max(\text{networkCount})} + \beta_2 \cdot \frac{\text{workerCount}_i}{\max(\text{workerCount})} + \beta_3 \cdot \frac{\text{activityCount}_i}{\max(\text{activityCount})} $$ where: -- $\text{network\_count}_i$ is the number of supported networks of Node $i$. -- $\text{worker\_count}_i$ is the worker count of Node $i$. -- $\text{activity\_count}_i$ is the activity count of Node $i$. +- $\text{networkCount}_i$ is the number of supported networks of Node $i$. +- $\text{workerCount}_i$ is the worker count of Node $i$. +- $\text{activityCount}_i$ is the activity count of Node $i$. - $\beta_1$, $\beta_2$, $\beta_3$ are the weights of the three factors, and $\beta_1 + \beta_2 + \beta_3 = 1$. $$ -E_i = \gamma_1 \cdot \frac{\text{uptime}_i}{\max(\text{uptime})} + \gamma_2 \cdot \text{version\_score}_i +E_i = \gamma_1 \cdot \frac{\text{uptime}_i}{\max(\text{uptime})} + \gamma_2 \cdot \text{versionScore}_i $$ where: - $\text{uptime}_i$ is the continuous uptime of Node $i$. -- $\text{version\_score}_i = 1$ if the node uses the latest version, otherwise $0$. +- $\text{versionScore}_i = 1$ if the node uses the latest version, otherwise $0$. - $\gamma_1$, $\gamma_2$ are the weights of the two factors, and $\gamma_1 + \gamma_2 = 1$. ## Rationale