From f510b308ef03a5fbcbd08b2036a56b64f0032b1b Mon Sep 17 00:00:00 2001 From: forcodedancing Date: Fri, 7 Jan 2022 15:45:32 +0800 Subject: [PATCH 1/9] create bep for staking reward distribution --- BEP100.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 BEP100.md diff --git a/BEP100.md b/BEP100.md new file mode 100644 index 00000000..4c53320c --- /dev/null +++ b/BEP100.md @@ -0,0 +1,47 @@ +# BEP100: Improve Sidechain Staking Reward Distribution + +- [BEP100: Improve Sidechain Staking Reward Distribution](#bep-100-improve-sidechain-staking-reward-distribution) + - [1. Summary](#1-summary) + - [2. Abstract](#2-abstract) + - [3. Status](#3-status) + - [4. Motivation](#4-motivation) + - [5. Specification](#5-specification) + - [5.1 Overall Workflow](#51-overall-workflow) + - [5.2 Distribution Batch Size](#52-distribution-batch-size) + - [5.3 User Impact](#53-user-impact) + - [6. License](#6-license) + +## 1. Summary +This BEP describes a proposal to improve sidechain staking reward distribution on Binance Chain. + +## 2. Abstract +Instead of distributing sidechain staking rewards in a single block for each day, this proposal suggests distributing staking rewards in many consecutive blocks, to avoid heavy burdens on any specific blocks. + +## 3. Status +This BEP is a draft. + +## 4. Motivation +Currently, sidechain's staking rewards are distributed in the first block of a day on Binance Chain (we can call the block as breath block). With the increasing number of delegators (more than 50,000 nowdays), it will lead to a heavy load to breath blocks, and users' transactions/requests could be affacted. Meanwhile, it could be also a bottleneck for furthur evalution of Binance Chain. Thus, this proposal provides a solution to fix the issue and benefit the evaluation of Binance Chain as well hopefully. + +## 5. Specification +### 5.1 Overall Workflow +![overall workflow](https://user-images.githubusercontent.com/61674316/148506577-aac9d05a-488d-4ff0-b879-1aa1a0e5364c.png) + +The overall distribution processes work like this: + - in breath blocks, validators' commission fees will be distributed, delegators' rewards will be saved to a separated store + - after a breath block, delegators' rewards in batches any consecutive blocks + +### 5.2 Distribution Batch Size + +Distribution batch size controls how many delegator's rewards will be distributed in a block. It should be evaluated and ajusted to make sure: + - a day's staking rewards should be not distributed in many days, which also means the batch size should not be too small + - should not be too big, which could cause heavy load on a single block + +At the same time, this batch size can also be governed by submitting sidechain proposal. + +### 5.3 User Impact + +The impact to general users (i.e., delegators) is that their rewards will be delayed a bit after applying this proposal. However, the delay is very samll and can be ingored when comparing to the whole delegation process. Taking current delegation volume as an example, if 50,000 delegators' rewards are distributed, with batch size equals to 100, then at the worst case the delay is 3~4 minutes (500 blocks). + +## 6. License +The content is licensed under [CC0](https://creativecommons.org/publicdomain/zero/1.0/). \ No newline at end of file From 873b2151ae173189c5b614d8868f644e779b0bcf Mon Sep 17 00:00:00 2001 From: forcodedancing Date: Fri, 7 Jan 2022 16:20:17 +0800 Subject: [PATCH 2/9] change title --- BEP100.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BEP100.md b/BEP100.md index 4c53320c..57e7e959 100644 --- a/BEP100.md +++ b/BEP100.md @@ -1,6 +1,6 @@ -# BEP100: Improve Sidechain Staking Reward Distribution +# BEP-100: Improve Sidechain Staking Reward Distribution -- [BEP100: Improve Sidechain Staking Reward Distribution](#bep-100-improve-sidechain-staking-reward-distribution) +- [BEP-100: Improve Sidechain Staking Reward Distribution](#bep-100-improve-sidechain-staking-reward-distribution) - [1. Summary](#1-summary) - [2. Abstract](#2-abstract) - [3. Status](#3-status) From b00febeb8d3a6ea43df87fa7e9dae39b7dc86212 Mon Sep 17 00:00:00 2001 From: forcodedancing Date: Fri, 7 Jan 2022 18:50:41 +0800 Subject: [PATCH 3/9] change bep number --- BEP100.md => BEP128.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename BEP100.md => BEP128.md (93%) diff --git a/BEP100.md b/BEP128.md similarity index 93% rename from BEP100.md rename to BEP128.md index 57e7e959..dba232fc 100644 --- a/BEP100.md +++ b/BEP128.md @@ -1,6 +1,6 @@ -# BEP-100: Improve Sidechain Staking Reward Distribution +# BEP-128: Improve Sidechain Staking Reward Distribution -- [BEP-100: Improve Sidechain Staking Reward Distribution](#bep-100-improve-sidechain-staking-reward-distribution) +- [BEP-128: Improve Sidechain Staking Reward Distribution](#bep-128-improve-sidechain-staking-reward-distribution) - [1. Summary](#1-summary) - [2. Abstract](#2-abstract) - [3. Status](#3-status) From 33e3f15a5f96d6967520e7fed29018e43b580dea Mon Sep 17 00:00:00 2001 From: forcodedancing Date: Tue, 11 Jan 2022 15:58:00 +0800 Subject: [PATCH 4/9] improve wording --- BEP128.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/BEP128.md b/BEP128.md index dba232fc..2555a70a 100644 --- a/BEP128.md +++ b/BEP128.md @@ -1,6 +1,6 @@ -# BEP-128: Improve Sidechain Staking Reward Distribution +# BEP-128: Improve Binance Smart Chain Staking Reward Distribution -- [BEP-128: Improve Sidechain Staking Reward Distribution](#bep-128-improve-sidechain-staking-reward-distribution) +- [BEP-128: Improve Binance Smart Chain Staking Reward Distribution](#bep-128-improve-binance-smart-chain-staking-reward-distribution) - [1. Summary](#1-summary) - [2. Abstract](#2-abstract) - [3. Status](#3-status) @@ -12,36 +12,37 @@ - [6. License](#6-license) ## 1. Summary -This BEP describes a proposal to improve sidechain staking reward distribution on Binance Chain. +This BEP describes a proposal to improve the Binance Smart Chain staking reward distribution mechanism on Binance Chain. ## 2. Abstract -Instead of distributing sidechain staking rewards in a single block for each day, this proposal suggests distributing staking rewards in many consecutive blocks, to avoid heavy burdens on any specific blocks. +Instead of distributing BSC staking rewards in a single block for each day, this proposal suggests distributing staking rewards in many consecutive blocks, to avoid heavy burden on any specific blocks. ## 3. Status This BEP is a draft. ## 4. Motivation -Currently, sidechain's staking rewards are distributed in the first block of a day on Binance Chain (we can call the block as breath block). With the increasing number of delegators (more than 50,000 nowdays), it will lead to a heavy load to breath blocks, and users' transactions/requests could be affacted. Meanwhile, it could be also a bottleneck for furthur evalution of Binance Chain. Thus, this proposal provides a solution to fix the issue and benefit the evaluation of Binance Chain as well hopefully. +Currently, BSC’s staking rewards are distributed in the first block of a day on Binance Chain (which is named breath block). With the increasing number of delegators (more than 50,000 nowadays), it will lead to a heavy load to breath block, and users' transactions/requests could be affected. Meanwhile, it could also be a bottleneck for further evaluation of Binance Chain. Thus, this proposal provides a solution to fix the issue and benefit the evaluation of Binance Chain in the long term. ## 5. Specification ### 5.1 Overall Workflow ![overall workflow](https://user-images.githubusercontent.com/61674316/148506577-aac9d05a-488d-4ff0-b879-1aa1a0e5364c.png) The overall distribution processes work like this: - - in breath blocks, validators' commission fees will be distributed, delegators' rewards will be saved to a separated store - - after a breath block, delegators' rewards in batches any consecutive blocks + - In breath block, validators' commission fee will be distributed, all delegators' rewards will be saved to a separate store. + - Delegators' reward will be distributed in batches in the following blocks. ### 5.2 Distribution Batch Size -Distribution batch size controls how many delegator's rewards will be distributed in a block. It should be evaluated and ajusted to make sure: - - a day's staking rewards should be not distributed in many days, which also means the batch size should not be too small - - should not be too big, which could cause heavy load on a single block +Distribution batch size controls how many delegators will receive reward in a single block. It should be evaluated and adjusted to make sure: + - The reward distribution must finish within one days, which means the batch size should not be too small. + - It should not be too big to bring heavy load on a single block. -At the same time, this batch size can also be governed by submitting sidechain proposal. +At the same time, this batch size can also be governed. ### 5.3 User Impact -The impact to general users (i.e., delegators) is that their rewards will be delayed a bit after applying this proposal. However, the delay is very samll and can be ingored when comparing to the whole delegation process. Taking current delegation volume as an example, if 50,000 delegators' rewards are distributed, with batch size equals to 100, then at the worst case the delay is 3~4 minutes (500 blocks). +The impact to general users (i.e., delegators) is that their rewards will be delayed a bit after applying this proposal. However, the delay is relatively small and can be ignored compared to the whole delegation process. Taking the current delegation volume as an example, about 50,000 rewards are distributed, with batch size equals to 100, then at the worst case the delay is 3~4 minutes (500 blocks). ## 6. License -The content is licensed under [CC0](https://creativecommons.org/publicdomain/zero/1.0/). \ No newline at end of file +The content is licensed under [CC0](https://creativecommons.org/publicdomain/zero/1.0/). + From a812763221ae13b623b4bf02ea58bcccd2f15561 Mon Sep 17 00:00:00 2001 From: forcodedancing Date: Fri, 28 Jan 2022 11:18:53 +0800 Subject: [PATCH 5/9] update assets --- BEP128.md | 2 +- assets/bep-128/reward-distribution.png | Bin 0 -> 83429 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 assets/bep-128/reward-distribution.png diff --git a/BEP128.md b/BEP128.md index 2555a70a..284e1cae 100644 --- a/BEP128.md +++ b/BEP128.md @@ -25,7 +25,7 @@ Currently, BSC’s staking rewards are distributed in the first block of a day o ## 5. Specification ### 5.1 Overall Workflow -![overall workflow](https://user-images.githubusercontent.com/61674316/148506577-aac9d05a-488d-4ff0-b879-1aa1a0e5364c.png) +![overall workflow](./assets/bep-128/reward-distribution.png) The overall distribution processes work like this: - In breath block, validators' commission fee will be distributed, all delegators' rewards will be saved to a separate store. diff --git a/assets/bep-128/reward-distribution.png b/assets/bep-128/reward-distribution.png new file mode 100644 index 0000000000000000000000000000000000000000..547819f4b3963ae2ceda9f77d0c7fb2890f907ce GIT binary patch literal 83429 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 Date: Thu, 17 Feb 2022 14:49:03 +0800 Subject: [PATCH 6/9] update chain names --- BEP128.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/BEP128.md b/BEP128.md index 284e1cae..5ad0511d 100644 --- a/BEP128.md +++ b/BEP128.md @@ -1,6 +1,6 @@ -# BEP-128: Improve Binance Smart Chain Staking Reward Distribution +# BEP-128: Improve BNB Smart Chain Staking Reward Distribution -- [BEP-128: Improve Binance Smart Chain Staking Reward Distribution](#bep-128-improve-binance-smart-chain-staking-reward-distribution) +- [BEP-128: Improve BNB Smart Chain Staking Reward Distribution](#bep-128-improve-bnb-smart-chain-staking-reward-distribution) - [1. Summary](#1-summary) - [2. Abstract](#2-abstract) - [3. Status](#3-status) @@ -12,16 +12,16 @@ - [6. License](#6-license) ## 1. Summary -This BEP describes a proposal to improve the Binance Smart Chain staking reward distribution mechanism on Binance Chain. +This BEP describes a proposal to improve the BNB Smart Chain staking reward distribution mechanism on BNB Beacon Chain. ## 2. Abstract -Instead of distributing BSC staking rewards in a single block for each day, this proposal suggests distributing staking rewards in many consecutive blocks, to avoid heavy burden on any specific blocks. +Instead of distributing BNB Smart Chain staking rewards in a single block for each day, this proposal suggests distributing staking rewards in many consecutive blocks, to avoid heavy burden on any specific blocks. ## 3. Status This BEP is a draft. ## 4. Motivation -Currently, BSC’s staking rewards are distributed in the first block of a day on Binance Chain (which is named breath block). With the increasing number of delegators (more than 50,000 nowadays), it will lead to a heavy load to breath block, and users' transactions/requests could be affected. Meanwhile, it could also be a bottleneck for further evaluation of Binance Chain. Thus, this proposal provides a solution to fix the issue and benefit the evaluation of Binance Chain in the long term. +Currently, the staking rewards of BNB Smart Chain are distributed in the first block of a day on BNB Beacon Chain (which is named breath block). With the increasing number of delegators (more than 50,000 nowadays), it will lead to a heavy load to breath block, and users' transactions/requests could be affected. Meanwhile, it could also be a bottleneck for further evaluation of BNB Beacon Chain. Thus, this proposal provides a solution to fix the issue and benefit the evaluation of BNB Beacon Chain in the long term. ## 5. Specification ### 5.1 Overall Workflow From 9474eb0a0e99733b3b23b37871bd86191d36e5bb Mon Sep 17 00:00:00 2001 From: forcodedancing Date: Mon, 7 Mar 2022 11:38:10 +0800 Subject: [PATCH 7/9] improve wording --- BEP128.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/BEP128.md b/BEP128.md index 5ad0511d..ef8763a4 100644 --- a/BEP128.md +++ b/BEP128.md @@ -1,6 +1,6 @@ -# BEP-128: Improve BNB Smart Chain Staking Reward Distribution +# BEP-128: Improvement on BNB Smart Chain Staking Reward Distribution -- [BEP-128: Improve BNB Smart Chain Staking Reward Distribution](#bep-128-improve-bnb-smart-chain-staking-reward-distribution) +- [BEP-128: Improvement on BNB Smart Chain Staking Reward Distribution](#bep-128-improvement-on-bnb-smart-chain-staking-reward-distribution) - [1. Summary](#1-summary) - [2. Abstract](#2-abstract) - [3. Status](#3-status) @@ -15,13 +15,13 @@ This BEP describes a proposal to improve the BNB Smart Chain staking reward distribution mechanism on BNB Beacon Chain. ## 2. Abstract -Instead of distributing BNB Smart Chain staking rewards in a single block for each day, this proposal suggests distributing staking rewards in many consecutive blocks, to avoid heavy burden on any specific blocks. +Instead of distributing BNB Smart Chain staking rewards in a single block for each day, this proposal suggests distributing staking rewards in many consecutive blocks, to minimize the burden on the specific block. ## 3. Status This BEP is a draft. ## 4. Motivation -Currently, the staking rewards of BNB Smart Chain are distributed in the first block of a day on BNB Beacon Chain (which is named breath block). With the increasing number of delegators (more than 50,000 nowadays), it will lead to a heavy load to breath block, and users' transactions/requests could be affected. Meanwhile, it could also be a bottleneck for further evaluation of BNB Beacon Chain. Thus, this proposal provides a solution to fix the issue and benefit the evaluation of BNB Beacon Chain in the long term. +Currently, the staking rewards of BNB Smart Chain are distributed in the first block of a day on BNB Beacon Chain (which is known as breath block). With the increasing number of delegators (more than 50,000 nowadays), it will lead to a heavy load to breath block, and users' transactions/requests could be affected. Meanwhile, it could also be a bottleneck for further evaluation of BNB Beacon Chain. Thus, this proposal provides a solution to fix the issue and benefit the evaluation of BNB Beacon Chain in the long term. ## 5. Specification ### 5.1 Overall Workflow @@ -34,14 +34,14 @@ The overall distribution processes work like this: ### 5.2 Distribution Batch Size Distribution batch size controls how many delegators will receive reward in a single block. It should be evaluated and adjusted to make sure: - - The reward distribution must finish within one days, which means the batch size should not be too small. + - The reward distribution must finish within one day, which means the batch size should not be too small. - It should not be too big to bring heavy load on a single block. At the same time, this batch size can also be governed. ### 5.3 User Impact -The impact to general users (i.e., delegators) is that their rewards will be delayed a bit after applying this proposal. However, the delay is relatively small and can be ignored compared to the whole delegation process. Taking the current delegation volume as an example, about 50,000 rewards are distributed, with batch size equals to 100, then at the worst case the delay is 3~4 minutes (500 blocks). +The impact to general delegators is minimal, that their rewards will be delayed a bit after applying this proposal. However, the delay is relatively small and can be ignored compared to the whole staking process. Taking the current delegation volume as an example, about 50,000 rewards are distributed, then in the worst case the delay is 3~4 minutes (500 blocks) if the batch size is 100. ## 6. License The content is licensed under [CC0](https://creativecommons.org/publicdomain/zero/1.0/). From aa1fd1527dd76bf56cc52f56e3f7b3a850e75e4e Mon Sep 17 00:00:00 2001 From: forcodedancing Date: Thu, 10 Mar 2022 15:13:42 +0800 Subject: [PATCH 8/9] add BEP128 into index --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 53ad5489..e9fd014b 100644 --- a/README.md +++ b/README.md @@ -26,4 +26,4 @@ Here are the list of subjects of BEPs: * [BEP-91](BEP91.md): Increase Block Gas Ceiling for Binance Smart Chain * [BEP-93](BEP93.md): Diff Sync Protocol on BSC * [BEP-95](BEP95.md): Introduce Real-Time Burning Mechanism - +* [BEP-128](BEP128.md): Improvement on BNB Smart Chain Staking Reward Distribution From 9f17c222fb3346a0e7ad4944abac98dd6b371fe8 Mon Sep 17 00:00:00 2001 From: danliu Date: Wed, 4 May 2022 15:05:00 +0800 Subject: [PATCH 9/9] re-brand to BNB Chain --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e9fd014b..7062bc31 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # BEPs -BEP stands for Binance Chain Evolution Proposal. Each BEP will be a proposal document providing information to the Binance Chain/DEX community. +BEP stands for BNB Evolution Proposal. Each BEP will be a proposal document providing information to the BNB Chain ecosystem and community. Here are the list of subjects of BEPs: