From 241bdd4b9730dc7359758c6577a4538f08155e48 Mon Sep 17 00:00:00 2001 From: Mercybudda <708967537@qq.com> Date: Thu, 7 Sep 2023 18:40:04 +0800 Subject: [PATCH 1/4] BEP-283: Segmented History Data Maintenance --- BEPs/BEP283.md | 124 +++++++++++++++++++++++++++ BEPs/assets/bep-283/Data_Segment.png | Bin 0 -> 161731 bytes 2 files changed, 124 insertions(+) create mode 100644 BEPs/BEP283.md create mode 100644 BEPs/assets/bep-283/Data_Segment.png diff --git a/BEPs/BEP283.md b/BEPs/BEP283.md new file mode 100644 index 00000000..dced2996 --- /dev/null +++ b/BEPs/BEP283.md @@ -0,0 +1,124 @@ +
+  BEP: 283
+  Title: Segmented History Data Maintenance
+  Status: Draft
+  Type: Standards
+  Created: 2023-09-07
+
+ +# BEP-283: Segmented History Data Maintenance + +- [BEP-283: Segmented History Data Maintenance]((https://github.com/bnb-chain/BEPs/pull/283)) + - [1. Summary](#1-summary) + - [2. Motivation](#2-motivation) + - [3. Specification](#3-specification) + - [3.1 Asset Reconciliation](#31-asset-reconciliation) + - [3.2 Halt on Reconciliation Error](#32-halt-on-reconciliation-error) + - [4. License](#4-license) + +## 1. Summary + +This BEP proposes a practical solution to address the problem of increasing history data storage on the BSC(BNB Smart Chain) for full nodes, so they only need to maintain a limited range of blocks. + +## 2. Motivation + +The history data includes block header, body and receipt, they are useless to execute the latest blocks. A recent storage profile on Jul-02-2023 shows that the size of history data has reached ~1288 GB, which makes it a big burden to run a BSC full node. As BSC keeps generating new blocks, the history data also keeps growing. +Actually the history data can be maintained by some archive node or by a DA layer, a full node does not need to keep a full copy of the history data. But simply deleting the history data is also not acceptable, it will make the P2P network in chaos and hard to sync. +We need to make a rule so that full nodes only need to keep a recent period of blocks, like several months, it would be better to keep the bounded history data size within 200GB. It could reduce both node’s storage pressure and the network traffic cost. + + +## 3. Specification +| Parameter | Value | Description | +| ----------------- | ----------- | ------------------------ | +| BoundStartBlock | 31,268,530 | The starting block height of the first segment, block 31,268,530 was produced on Aug-29-2023, 3 years after the BSC genesis block. | +| HistorySegmentLength | 2,592,000 | assume 1 block for every 3 second, 2,592,000 blocks will be produced in 90 days. | + +### 3.1 General Workflow +![overview](./assets/bep-283/Data_Segment.png) + +The history data will be divided into several segments, the 1st segment is segment_0, which is from genesis to BoundStartBlock-1, then following segments will have the same length: HistorySegmentLength. +``` +HistorySegment_0 = [0, BoundStartBlock) +HistorySegment_1 = [BoundStartBlock, BoundStartBlock+HistorySegmentLength) +... +HistorySegment_N = [BoundStartBlock+(N-1)*HistorySegmentLength, BoundStartBlock+N*HistorySegmentLength) +``` +The BSC node only needs to maintain the latest 2 segments, in case of block reorg, the current segment number is calculated based on the “finalized” block. +``` +ImmutabilityThreshold = 90000 + +func GetFinalizedBlock() { + blockByAttestation := GetFinalizedByAttestation() + blockByThreshold := GetCurrentBlockNumber() - ImmutabilityThreshold + return max(blockByAttestation, blockByThreshold) +} + +func GetCurrentSegmentIndex(blockNum int) { + if blockNum < BoundStartBlock { + return 0 + } + boundBlocks = blockNum - BoundStartBlock + return (boundBlocks/HistorySegmentLength) + 1 +} + +finalizedBlock = GetFinalizedBlock() +segIndex = GetCurrentSegmentIndex(finalizedBlock) +if segIndex > = 2 { + // the segments before (segIndex - 2) can be pruned +} + +``` + +### 3.2 Prune + +The offline block prune would need to be boundary aligned and leave the most recent 2 segments. The most recent segment is determined by the finalized block, since FastFinality is to be enabled, we can take use of the feature to determine the finalized block and then get the current segment index. + +#### 3.2.1 Prune details +Since there’s already offline block prune flags in BSC, we can reuse most of the logic of this flag. Instead of letting users specify the amount to prune, we only keep the most recent two segments of blocks by default. But user can still specify how many blocks they’d like to reserve by passing the parameter. +``` +// Reuse the flag --block-amount-reserved +// backUp the OldDb for only the most recent 2 segements +segmentsStartNumber := BoundStartBlock + (segIndex - 2) * HistorySegmentLength +func (p *BlockPruner) backUpOldDb(segmentsStartNumber) { + for block := segmentsStartNumber; block <= headerNumebr; block++ { + // Write into the new DB instance +} +} +// Replace the old DB with new DB and delete the old DB files. + +``` + +### 3.3 Node Sync + It would be difficult to sync from genesis, since most nodes may choose to not preserve these old blocks, but it is still possible as long as some nodes still keep the whole history data. +There could have 2 approaches to do sync after this proposal +directly download a snapshot of a recent state, from a snapshot service provider or DA layer like GreenField +Segment based snap sync: user can take the boundary blockhash as the new `GenesisHash` and start from it directly. + +### 3.4 Data Availability +Some of the nodes like archive nodes would keep maintaining the whole history data. +And meanwhile, could take use of a DA layer, like greenfield to make sure the whole block data is available. + +## 4. Rationale +### 4.1 BoundStartBlock & HistorySegmentLength +As the current history data is already very large, we prefer to enable this proposal faster, so +BoundStartBlock is still more than 1 month ahead, it could be an acceptable date. +HistorySegmentLength, we did a profile, for the past 6 months(Jan-2023 to July 2023), ~1.2GB history data was generated per day on average. But it is somehow low traffic during this period. Traffic volume could be 3 times if the bull market starts, that is ~3.6GB per day. To keep the historical data size within 500GB in the bull market and 200GB in the bear market, 90 days could be a reasonable value. + +### 4.2 Why Segment The History Data +No Big fundamental differences to the EIP-4444 proposal +Pros: aligned +easier to determine the current living blocks? +easier to provide the snapshot download service? + +## 5. Forward Compatibility +### 5.1 Portal Network +Portal network is a hot topic to solve the storage pressure, once it is ready, it is possible that portal network can replace this proposal if it has a more applicable solution. + +## 6. Backward Compatibility +### 6.1 Archive Node +If you run an archive node, you can just keep all the history data, no impact to its business. +### 6.2 RPC API +If users query history data that have been pruned, could return a new error code to show it is expired and removed. + +## License +The content is licensed under the [CC0](https://creativecommons.org/publicdomain/zero/1.0/) license. diff --git a/BEPs/assets/bep-283/Data_Segment.png b/BEPs/assets/bep-283/Data_Segment.png new file mode 100644 index 0000000000000000000000000000000000000000..be312b710159ba2e632d311b9ddd577d8aa99168 GIT binary patch literal 161731 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 literal 0 HcmV?d00001 From 3802eab9d6ece6b5cbb53c19af7e7fc0f6ad69b6 Mon Sep 17 00:00:00 2001 From: Mercybudda <708967537@qq.com> Date: Mon, 11 Sep 2023 17:02:40 +0800 Subject: [PATCH 2/4] update bep doc --- BEPs/BEP283.md | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/BEPs/BEP283.md b/BEPs/BEP283.md index dced2996..ca80dbdf 100644 --- a/BEPs/BEP283.md +++ b/BEPs/BEP283.md @@ -1,14 +1,14 @@

   BEP: 283
-  Title: Segmented History Data Maintenance
+  Title: Segmented History Block Data Maintenance
   Status: Draft
   Type: Standards
   Created: 2023-09-07
 
-# BEP-283: Segmented History Data Maintenance +# BEP-283: Segmented History Block Maintenance -- [BEP-283: Segmented History Data Maintenance]((https://github.com/bnb-chain/BEPs/pull/283)) +- [BEP-283: Segmented History Block Maintenance]((https://github.com/bnb-chain/BEPs/pull/283)) - [1. Summary](#1-summary) - [2. Motivation](#2-motivation) - [3. Specification](#3-specification) @@ -17,14 +17,12 @@ - [4. License](#4-license) ## 1. Summary - -This BEP proposes a practical solution to address the problem of increasing history data storage on the BSC(BNB Smart Chain) for full nodes, so they only need to maintain a limited range of blocks. - +This BEP proposes a practical solution to reduce history block data storage requirements for BSC (BNB Smart Chain) full nodes, allowing it to maintain a limited block range. It also addresses occasional chaos in the BSC P2P network and enhances the flexibility and ease of use of the BSC snapshot. ## 2. Motivation -The history data includes block header, body and receipt, they are useless to execute the latest blocks. A recent storage profile on Jul-02-2023 shows that the size of history data has reached ~1288 GB, which makes it a big burden to run a BSC full node. As BSC keeps generating new blocks, the history data also keeps growing. -Actually the history data can be maintained by some archive node or by a DA layer, a full node does not need to keep a full copy of the history data. But simply deleting the history data is also not acceptable, it will make the P2P network in chaos and hard to sync. -We need to make a rule so that full nodes only need to keep a recent period of blocks, like several months, it would be better to keep the bounded history data size within 200GB. It could reduce both node’s storage pressure and the network traffic cost. +The history block data includes block header, body and receipt, they are useless to execute the latest blocks. A recent storage profile on Jul-02-2023 shows that the size of history block has reached ~1288 GB, which makes it a big burden to run a BSC full node. As BSC keeps generating new blocks, the history block data also keeps growing. +Actually the history block data can be maintained by some archive node or by a DA layer, a full node does not need to keep a full copy of the history block. But simply deleting the history block data is also not acceptable, it will make the P2P network in chaos and hard to sync. +We need to make a rule so that full nodes only need to keep a recent period of blocks, like several months, it would be better to keep the bounded history block data size within 200GB. It could reduce both node’s storage pressure and the network traffic cost. ## 3. Specification @@ -36,7 +34,7 @@ We need to make a rule so that full nodes only need to keep a recent period of b ### 3.1 General Workflow ![overview](./assets/bep-283/Data_Segment.png) -The history data will be divided into several segments, the 1st segment is segment_0, which is from genesis to BoundStartBlock-1, then following segments will have the same length: HistorySegmentLength. +The history block data will be divided into several segments, the 1st segment is segment_0, which is from genesis to BoundStartBlock-1, then following segments will have the same length: HistorySegmentLength. ``` HistorySegment_0 = [0, BoundStartBlock) HistorySegment_1 = [BoundStartBlock, BoundStartBlock+HistorySegmentLength) @@ -100,7 +98,7 @@ And meanwhile, could take use of a DA layer, like greenfield to make sure the wh ## 4. Rationale ### 4.1 BoundStartBlock & HistorySegmentLength -As the current history data is already very large, we prefer to enable this proposal faster, so +As the current history block data is already very large, we prefer to enable this proposal faster, so BoundStartBlock is still more than 1 month ahead, it could be an acceptable date. HistorySegmentLength, we did a profile, for the past 6 months(Jan-2023 to July 2023), ~1.2GB history data was generated per day on average. But it is somehow low traffic during this period. Traffic volume could be 3 times if the bull market starts, that is ~3.6GB per day. To keep the historical data size within 500GB in the bull market and 200GB in the bear market, 90 days could be a reasonable value. @@ -116,9 +114,9 @@ Portal network is a hot topic to solve the storage pressure, once it is ready, i ## 6. Backward Compatibility ### 6.1 Archive Node -If you run an archive node, you can just keep all the history data, no impact to its business. +If you run an archive node, you can just keep all the history block data, no impact to its business. ### 6.2 RPC API -If users query history data that have been pruned, could return a new error code to show it is expired and removed. +If users query history block data that have been pruned, could return a new error code to show it is expired and removed. ## License The content is licensed under the [CC0](https://creativecommons.org/publicdomain/zero/1.0/) license. From 64c9f6d6b536f81d3f473f94425621c6ad5ddf93 Mon Sep 17 00:00:00 2001 From: Mercybudda <708967537@qq.com> Date: Sun, 8 Oct 2023 16:18:57 +0800 Subject: [PATCH 3/4] update --- BEPs/BEP283.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BEPs/BEP283.md b/BEPs/BEP283.md index ca80dbdf..07554c54 100644 --- a/BEPs/BEP283.md +++ b/BEPs/BEP283.md @@ -17,7 +17,7 @@ - [4. License](#4-license) ## 1. Summary -This BEP proposes a practical solution to reduce history block data storage requirements for BSC (BNB Smart Chain) full nodes, allowing it to maintain a limited block range. It also addresses occasional chaos in the BSC P2P network and enhances the flexibility and ease of use of the BSC snapshot. +This BEP proposes a practical solution to address the issue of increasing history data storage on the BSC(BNB Smart Chain) for full nodes, so they only need to maintain a limited range of blocks. With the introduction of a new synchronization protocol and storage protocol, nodes can synchronize from a specific checkpoint and skip historical blocks. This eliminates the mandatory requirement to keep historical blocks. ## 2. Motivation The history block data includes block header, body and receipt, they are useless to execute the latest blocks. A recent storage profile on Jul-02-2023 shows that the size of history block has reached ~1288 GB, which makes it a big burden to run a BSC full node. As BSC keeps generating new blocks, the history block data also keeps growing. From a5597be7a1044a55a5b3486bb7f3844d886e2d18 Mon Sep 17 00:00:00 2001 From: Mercybudda <708967537@qq.com> Date: Wed, 11 Oct 2023 11:52:59 +0800 Subject: [PATCH 4/4] update --- BEPs/BEP283.md | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/BEPs/BEP283.md b/BEPs/BEP283.md index 07554c54..a1016642 100644 --- a/BEPs/BEP283.md +++ b/BEPs/BEP283.md @@ -72,20 +72,14 @@ if segIndex > = 2 { The offline block prune would need to be boundary aligned and leave the most recent 2 segments. The most recent segment is determined by the finalized block, since FastFinality is to be enabled, we can take use of the feature to determine the finalized block and then get the current segment index. #### 3.2.1 Prune details -Since there’s already offline block prune flags in BSC, we can reuse most of the logic of this flag. Instead of letting users specify the amount to prune, we only keep the most recent two segments of blocks by default. But user can still specify how many blocks they’d like to reserve by passing the parameter. +Since we introduced segment definition, the historical block data will be organized on a segment-by-segment basis within the file directory, making it easy to prune the block data by deleting the corresponding file folder. ``` -// Reuse the flag --block-amount-reserved -// backUp the OldDb for only the most recent 2 segements -segmentsStartNumber := BoundStartBlock + (segIndex - 2) * HistorySegmentLength -func (p *BlockPruner) backUpOldDb(segmentsStartNumber) { - for block := segmentsStartNumber; block <= headerNumebr; block++ { - // Write into the new DB instance +if segIndex > 2 { + // delete the file folder of segIndex0 to segIndex - 2 + // os.RemoveAll(segIndex0..segIndex-2) } -} -// Replace the old DB with new DB and delete the old DB files. ``` - ### 3.3 Node Sync It would be difficult to sync from genesis, since most nodes may choose to not preserve these old blocks, but it is still possible as long as some nodes still keep the whole history data. There could have 2 approaches to do sync after this proposal