From eb058c07714f2a95ad08a2cab6c361b926f8d92d Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Wed, 9 Oct 2024 22:57:57 -0400 Subject: [PATCH 01/27] feat: add 6 second block CIP draft --- cips/README.md | 1 + cips/SUMMARY.md | 1 + cips/cip-6-second-blocks.md | 60 +++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 cips/cip-6-second-blocks.md diff --git a/cips/README.md b/cips/README.md index 89044a5..9aab2d8 100644 --- a/cips/README.md +++ b/cips/README.md @@ -54,6 +54,7 @@ Read [CIP-1](./cip-1.md) for information on the CIP process. | [23](./cip-23.md) | Coordinated prevote times | Callum Waters ([@cmwaters](https://github.com/cmwaters)) | | [24](./cip-24.md) | Versioned Gas Scheduler Variable | Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | | [25](./cip-25.md) | Ginger Network Upgrade | Josh Stein ([@jcstein](https://github.com/jcstein)), Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | +| [6 second blocks](./cip-6-second-blocks.md) | Reduce block time to six seconds | Josh Stein ([@jcstein](https://github.com/jcstein)) | ## Contributing diff --git a/cips/SUMMARY.md b/cips/SUMMARY.md index 5c8125f..0873a8f 100644 --- a/cips/SUMMARY.md +++ b/cips/SUMMARY.md @@ -28,6 +28,7 @@ - [CIP-23](./cip-23.md) - [CIP-24](./cip-24.md) - [CIP-25](./cip-25.md) + - [CIP-6-second-blocks](./cip-6-second-blocks.md) - [Core Devs Call notes](./notes/README.md) - [CDC #14](./notes/cdc-14.md) diff --git a/cips/cip-6-second-blocks.md b/cips/cip-6-second-blocks.md new file mode 100644 index 0000000..179c3c7 --- /dev/null +++ b/cips/cip-6-second-blocks.md @@ -0,0 +1,60 @@ +| cip | TBD | +| - | - | +| title | Reduce block time to six seconds | +| description | Proposal to reduce block time on celestia-app to 6 seconds, from 12. | +| author | Josh Stein ([@jcstein](https://github.com/jcstein)) | +| discussions-to | | +| status | Draft | +| type | Standards Track | +| category | Core | +| created | 2024-10-09 | + +## Abstract + +This CIP proposes to reduce the block time on celestia-app to 6 seconds, from 12. This will increase the throughput by double and and reduce the time it takes for transactions to be finalized by half. + +## Motivation + +The motivation for this CIP stems from a discussion in Core Devs Call 17, where it was proposed to reduce the block time to 6 seconds from 12 seconds. + +## Specification + +1. The block time in celestia-app MUST be reduced from 12 seconds to 6 seconds. + +2. All implementations of celestia-app SHALL adjust their block production mechanisms to conform to this new 6-second block time. + +3. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia network participants. + +4. Celestia nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. + +5. The reduction in block time SHALL NOT affect the overall security or integrity of the Celestia network. + +6. Block validators MUST ensure that their systems are capable of producing and validating blocks at this increased rate. + +7. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. + +8. The implementation of this change SHOULD include appropriate testing and monitoring to ensure network stability during and after the transition. + +9. Documentation and APIs related to block time and block production MUST be updated to reflect this change. + +10. The network SHOULD provide a grace period for node operators and other participants to adapt to the new block time, but all participants MUST be compliant by the agreed-upon implementation block height. + +## Rationale + +The rationale for this change is to increase the throughput of the Celestia network by doubling the number of blocks produced per unit of time. This will reduce the time it takes for transactions to be finalized and improve the overall user experience on the network. + +## Backwards Compatibility + +This is a breaking network upgrade and will require all participants to update their software to accommodate the new block time. The change in block time will not be backward compatible with the existing network, and all participants MUST be compliant by the agreed-upon implementation block height. + +## Test Cases + +This will be tested on Arabica devnet and Mocha testnet before going live on Celestia Mainnet Beta. + +## Security Considerations + +The security considerations for this change are minimal, as the reduction in block time does not introduce any new security risks to the network. However, participants should be aware of the faster block time and ensure that their systems are capable of handling the increased throughput. + +## Copyright + +Copyright and related rights waived via [CC0](https://github.com/celestiaorg/CIPs/blob/main/LICENSE). From f7c77ddaca17fa01e14dc3b1a8f10ea2e6e53259 Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Wed, 9 Oct 2024 23:46:04 -0400 Subject: [PATCH 02/27] docs: edits --- cips/cip-6-second-blocks.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cips/cip-6-second-blocks.md b/cips/cip-6-second-blocks.md index 179c3c7..c15a8be 100644 --- a/cips/cip-6-second-blocks.md +++ b/cips/cip-6-second-blocks.md @@ -23,13 +23,13 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where 2. All implementations of celestia-app SHALL adjust their block production mechanisms to conform to this new 6-second block time. -3. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia network participants. +3. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia community. -4. Celestia nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. +4. Celestia consensus nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. 5. The reduction in block time SHALL NOT affect the overall security or integrity of the Celestia network. -6. Block validators MUST ensure that their systems are capable of producing and validating blocks at this increased rate. +6. Validators MUST ensure that their systems are capable of producing and validating blocks at this increased rate. 7. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. From d5c7daffcd99a689b689d620d41fdd1d7f801c15 Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Thu, 10 Oct 2024 15:35:26 -0400 Subject: [PATCH 03/27] Apply suggestions from code review Co-authored-by: Rootul P --- cips/cip-6-second-blocks.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cips/cip-6-second-blocks.md b/cips/cip-6-second-blocks.md index c15a8be..09c8a72 100644 --- a/cips/cip-6-second-blocks.md +++ b/cips/cip-6-second-blocks.md @@ -11,7 +11,7 @@ ## Abstract -This CIP proposes to reduce the block time on celestia-app to 6 seconds, from 12. This will increase the throughput by double and and reduce the time it takes for transactions to be finalized by half. +This CIP proposes to reduce the block time on celestia-app to 6 seconds, from 12. This will double the throughput and reduce the time it takes for transactions to be finalized in half. ## Motivation @@ -27,9 +27,7 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where 4. Celestia consensus nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. -5. The reduction in block time SHALL NOT affect the overall security or integrity of the Celestia network. -6. Validators MUST ensure that their systems are capable of producing and validating blocks at this increased rate. 7. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. From 9e50d02021f66fd7e6e4f4a1f0774f1fc7f2eb28 Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Thu, 10 Oct 2024 15:41:54 -0400 Subject: [PATCH 04/27] docs: add suggestions from review part 1 --- cips/cip-6-second-blocks.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/cips/cip-6-second-blocks.md b/cips/cip-6-second-blocks.md index 09c8a72..8f52236 100644 --- a/cips/cip-6-second-blocks.md +++ b/cips/cip-6-second-blocks.md @@ -2,7 +2,7 @@ | - | - | | title | Reduce block time to six seconds | | description | Proposal to reduce block time on celestia-app to 6 seconds, from 12. | -| author | Josh Stein ([@jcstein](https://github.com/jcstein)) | +| author | Josh Stein ([@jcstein](https://github.com/jcstein)), Rootul Patel ([@rootulp](https://github.com/rootulp))| | discussions-to | | | status | Draft | | type | Standards Track | @@ -19,23 +19,21 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where ## Specification -1. The block time in celestia-app MUST be reduced from 12 seconds to 6 seconds. +1. The block time in celestia-app SHOULD be reduced from 12 seconds to 6 seconds. Concretely, this implies decreasing `TimeoutCommit` to 1 seconds and `TimeoutPropose` to 3 seconds. 2. All implementations of celestia-app SHALL adjust their block production mechanisms to conform to this new 6-second block time. -3. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia community. +3. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia community via on-chain signaling by validators. 4. Celestia consensus nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. +5. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. +7. The implementation of this change SHOULD include appropriate testing and monitoring to ensure network stability during and after the transition. -7. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. +8. Documentation and APIs related to block time and block production MUST be updated to reflect this change. -8. The implementation of this change SHOULD include appropriate testing and monitoring to ensure network stability during and after the transition. - -9. Documentation and APIs related to block time and block production MUST be updated to reflect this change. - -10. The network SHOULD provide a grace period for node operators and other participants to adapt to the new block time, but all participants MUST be compliant by the agreed-upon implementation block height. +9. The network SHOULD provide a grace period for node operators and other participants to adapt to the new block time, but all participants MUST be compliant by the agreed-upon implementation block height. ## Rationale From 2fb54eb71ad9877568605b7002e1c04f12273544 Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Thu, 10 Oct 2024 19:36:40 -0400 Subject: [PATCH 05/27] suggestion from code review --- cips/cip-6-second-blocks.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/cips/cip-6-second-blocks.md b/cips/cip-6-second-blocks.md index 8f52236..2ba4e15 100644 --- a/cips/cip-6-second-blocks.md +++ b/cips/cip-6-second-blocks.md @@ -33,8 +33,6 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where 8. Documentation and APIs related to block time and block production MUST be updated to reflect this change. -9. The network SHOULD provide a grace period for node operators and other participants to adapt to the new block time, but all participants MUST be compliant by the agreed-upon implementation block height. - ## Rationale The rationale for this change is to increase the throughput of the Celestia network by doubling the number of blocks produced per unit of time. This will reduce the time it takes for transactions to be finalized and improve the overall user experience on the network. From a57d4944edfe65f0e3156d9f08b0a0225dc82b70 Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:46:59 -0400 Subject: [PATCH 06/27] docs: fix lint --- cips/cip-6-second-blocks.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cips/cip-6-second-blocks.md b/cips/cip-6-second-blocks.md index 2ba4e15..d5bbd4c 100644 --- a/cips/cip-6-second-blocks.md +++ b/cips/cip-6-second-blocks.md @@ -21,17 +21,17 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where 1. The block time in celestia-app SHOULD be reduced from 12 seconds to 6 seconds. Concretely, this implies decreasing `TimeoutCommit` to 1 seconds and `TimeoutPropose` to 3 seconds. -2. All implementations of celestia-app SHALL adjust their block production mechanisms to conform to this new 6-second block time. +1. All implementations of celestia-app SHALL adjust their block production mechanisms to conform to this new 6-second block time. -3. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia community via on-chain signaling by validators. +1. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia community via on-chain signaling by validators. -4. Celestia consensus nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. +1. Celestia consensus nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. -5. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. +1. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. -7. The implementation of this change SHOULD include appropriate testing and monitoring to ensure network stability during and after the transition. +1. The implementation of this change SHOULD include appropriate testing and monitoring to ensure network stability during and after the transition. -8. Documentation and APIs related to block time and block production MUST be updated to reflect this change. +1. Documentation and APIs related to block time and block production MUST be updated to reflect this change. ## Rationale From cabdb4cb7d1a92fa95e42512e2b22ed9dfb6d05e Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:05:39 -0400 Subject: [PATCH 07/27] docs: suggestion from code review --- cips/cip-6-second-blocks.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/cips/cip-6-second-blocks.md b/cips/cip-6-second-blocks.md index d5bbd4c..ea3b7f1 100644 --- a/cips/cip-6-second-blocks.md +++ b/cips/cip-6-second-blocks.md @@ -11,7 +11,7 @@ ## Abstract -This CIP proposes to reduce the block time on celestia-app to 6 seconds, from 12. This will double the throughput and reduce the time it takes for transactions to be finalized in half. +This CIP proposes to reduce the block time on celestia-app to 6 seconds, from 12. This CIP also proposes to increase the `ttl-num-blocks` parameter in the mempool configuration from 5 to 12 to maintain consistency with the new block time. This will double the throughput and reduce the time it takes for transactions to be finalized in half. ## Motivation @@ -33,13 +33,23 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where 1. Documentation and APIs related to block time and block production MUST be updated to reflect this change. +1. The `ttl-num-blocks` parameter in the mempool configuration SHALL be increased from 5 to 12. This change is necessary to maintain consistency with the new block time and ensure that transactions remain in the mempool for a similar duration as before. + 1. Current default: `ttl-num-blocks = 5` + 1. New default: `ttl-num-blocks = 12` + +1. This change SHALL be implemented alongside the block time reduction to ensure consistent behavior of the mempool across the network upgrade. + +1. All validator nodes MUST update their configuration files to reflect this new `ttl-num-blocks` value before the agreed-upon implementation block height. + ## Rationale The rationale for this change is to increase the throughput of the Celestia network by doubling the number of blocks produced per unit of time. This will reduce the time it takes for transactions to be finalized and improve the overall user experience on the network. +The increase in `ttl-num-blocks` from 5 to 12 is necessary to maintain consistent mempool behavior with the new block time. This change ensures that transactions remain in the mempool for approximately 72 seconds (12 blocks * 6 seconds), which closely matches the previous behavior of about 60 seconds (5 blocks * 12 seconds). + ## Backwards Compatibility -This is a breaking network upgrade and will require all participants to update their software to accommodate the new block time. The change in block time will not be backward compatible with the existing network, and all participants MUST be compliant by the agreed-upon implementation block height. +This is a breaking network upgrade and will require all participants to update their software to accommodate the new block time and `ttl-num-blocks`. The change in block time will not be backward compatible with the existing network, and all participants MUST be compliant by the agreed-upon implementation block height. ## Test Cases @@ -47,7 +57,15 @@ This will be tested on Arabica devnet and Mocha testnet before going live on Cel ## Security Considerations -The security considerations for this change are minimal, as the reduction in block time does not introduce any new security risks to the network. However, participants should be aware of the faster block time and ensure that their systems are capable of handling the increased throughput. +While the reduction in block time itself does not introduce significant new security risks to the network, there are important considerations: + +1. Participants should ensure that their systems are capable of handling the increased throughput from faster block times. +1. The increase of `ttl-num-blocks` from 5 to 12 is crucial for maintaining the security and efficiency of the mempool: + 1. It prevents premature removal of valid transactions, reducing the risk of unintended exclusion from blocks. + 1. Without this adjustment, transactions would be pruned from the mempool after only 30 seconds, potentially leading to increased transaction failures and a poor user experience. +1. Validators and node operators must update their configurations to reflect the new `ttl-num-blocks` value to maintain network consistency and security. + +These changes require careful implementation and testing to ensure network stability during and after the transition. ## Copyright From fc4f6c6d010779a7b647a84b0bb2ce704719e9f2 Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:41:18 -0400 Subject: [PATCH 08/27] docs: fix lint --- cips/cip-6-second-blocks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cips/cip-6-second-blocks.md b/cips/cip-6-second-blocks.md index ea3b7f1..4eafe4c 100644 --- a/cips/cip-6-second-blocks.md +++ b/cips/cip-6-second-blocks.md @@ -45,7 +45,7 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where The rationale for this change is to increase the throughput of the Celestia network by doubling the number of blocks produced per unit of time. This will reduce the time it takes for transactions to be finalized and improve the overall user experience on the network. -The increase in `ttl-num-blocks` from 5 to 12 is necessary to maintain consistent mempool behavior with the new block time. This change ensures that transactions remain in the mempool for approximately 72 seconds (12 blocks * 6 seconds), which closely matches the previous behavior of about 60 seconds (5 blocks * 12 seconds). +The increase in `ttl-num-blocks` from 5 to 12 is necessary to maintain consistent mempool behavior with the new block time. This change ensures that transactions remain in the mempool for approximately 72 seconds (12 blocks times 6 seconds), which closely matches the previous behavior of about 60 seconds (5 blocks times 12 seconds). ## Backwards Compatibility From 30484f3e4975d3fab191deb7a46c41118f8f971d Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Wed, 16 Oct 2024 09:55:07 -0400 Subject: [PATCH 09/27] Apply suggestions from code review --- cips/cip-6-second-blocks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cips/cip-6-second-blocks.md b/cips/cip-6-second-blocks.md index 4eafe4c..9d414f4 100644 --- a/cips/cip-6-second-blocks.md +++ b/cips/cip-6-second-blocks.md @@ -11,7 +11,7 @@ ## Abstract -This CIP proposes to reduce the block time on celestia-app to 6 seconds, from 12. This CIP also proposes to increase the `ttl-num-blocks` parameter in the mempool configuration from 5 to 12 to maintain consistency with the new block time. This will double the throughput and reduce the time it takes for transactions to be finalized in half. +This CIP proposes to reduce the block time on celestia-app to 6 seconds, from 12. This will double the throughput and reduce the time it takes for transactions to be finalized in half. This CIP also proposes to increase the `ttl-num-blocks` parameter in the mempool configuration from 5 to 12 to maintain consistency with the new block time. ## Motivation From 017751b1be7ce7606b32aa88b1ab5338c85a6ae9 Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:36:28 -0400 Subject: [PATCH 10/27] docs: remove unecessary spec point --- cips/{cip-6-second-blocks.md => cip-26.md} | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) rename cips/{cip-6-second-blocks.md => cip-26.md} (97%) diff --git a/cips/cip-6-second-blocks.md b/cips/cip-26.md similarity index 97% rename from cips/cip-6-second-blocks.md rename to cips/cip-26.md index 9d414f4..992a0e4 100644 --- a/cips/cip-6-second-blocks.md +++ b/cips/cip-26.md @@ -1,4 +1,4 @@ -| cip | TBD | +| cip | 26 | | - | - | | title | Reduce block time to six seconds | | description | Proposal to reduce block time on celestia-app to 6 seconds, from 12. | @@ -21,8 +21,6 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where 1. The block time in celestia-app SHOULD be reduced from 12 seconds to 6 seconds. Concretely, this implies decreasing `TimeoutCommit` to 1 seconds and `TimeoutPropose` to 3 seconds. -1. All implementations of celestia-app SHALL adjust their block production mechanisms to conform to this new 6-second block time. - 1. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia community via on-chain signaling by validators. 1. Celestia consensus nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. From bb8278016f72cf2cdc02298c4093869f7a47870b Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:37:02 -0400 Subject: [PATCH 11/27] docs: remove another repetitive point --- cips/cip-26.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/cips/cip-26.md b/cips/cip-26.md index 992a0e4..351a471 100644 --- a/cips/cip-26.md +++ b/cips/cip-26.md @@ -27,8 +27,6 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where 1. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. -1. The implementation of this change SHOULD include appropriate testing and monitoring to ensure network stability during and after the transition. - 1. Documentation and APIs related to block time and block production MUST be updated to reflect this change. 1. The `ttl-num-blocks` parameter in the mempool configuration SHALL be increased from 5 to 12. This change is necessary to maintain consistency with the new block time and ensure that transactions remain in the mempool for a similar duration as before. From a435fb37482358ce58a94437e2342c51500374ed Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:38:36 -0400 Subject: [PATCH 12/27] Apply suggestions from code review --- cips/README.md | 2 +- cips/SUMMARY.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cips/README.md b/cips/README.md index 9aab2d8..eb661ce 100644 --- a/cips/README.md +++ b/cips/README.md @@ -54,7 +54,7 @@ Read [CIP-1](./cip-1.md) for information on the CIP process. | [23](./cip-23.md) | Coordinated prevote times | Callum Waters ([@cmwaters](https://github.com/cmwaters)) | | [24](./cip-24.md) | Versioned Gas Scheduler Variable | Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | | [25](./cip-25.md) | Ginger Network Upgrade | Josh Stein ([@jcstein](https://github.com/jcstein)), Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | -| [6 second blocks](./cip-6-second-blocks.md) | Reduce block time to six seconds | Josh Stein ([@jcstein](https://github.com/jcstein)) | +| [6 second blocks](./cip-26.md) | Reduce block time to six seconds | Josh Stein ([@jcstein](https://github.com/jcstein)) | ## Contributing diff --git a/cips/SUMMARY.md b/cips/SUMMARY.md index 0873a8f..c9756ac 100644 --- a/cips/SUMMARY.md +++ b/cips/SUMMARY.md @@ -28,7 +28,7 @@ - [CIP-23](./cip-23.md) - [CIP-24](./cip-24.md) - [CIP-25](./cip-25.md) - - [CIP-6-second-blocks](./cip-6-second-blocks.md) + - [CIP-26](./cip-26.md) - [Core Devs Call notes](./notes/README.md) - [CDC #14](./notes/cdc-14.md) From 627866eaa585b4ecfd76ddcbfae268f07abb2c7c Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:42:40 -0400 Subject: [PATCH 13/27] docs: suggestions from review --- cips/cip-26.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cips/cip-26.md b/cips/cip-26.md index 351a471..c11df11 100644 --- a/cips/cip-26.md +++ b/cips/cip-26.md @@ -19,7 +19,7 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where ## Specification -1. The block time in celestia-app SHOULD be reduced from 12 seconds to 6 seconds. Concretely, this implies decreasing `TimeoutCommit` to 1 seconds and `TimeoutPropose` to 3 seconds. +1. The block time in celestia-app SHOULD be reduced from 12 seconds to 6 seconds. Concretely, this implies decreasing `TimeoutCommit` to 4.2 seconds and `TimeoutPropose` to 3.5 seconds. 1. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia community via on-chain signaling by validators. @@ -29,7 +29,7 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where 1. Documentation and APIs related to block time and block production MUST be updated to reflect this change. -1. The `ttl-num-blocks` parameter in the mempool configuration SHALL be increased from 5 to 12. This change is necessary to maintain consistency with the new block time and ensure that transactions remain in the mempool for a similar duration as before. +1. The default `ttl-num-blocks` parameter in the mempool configuration SHALL be increased from 5 to 12. This change is necessary to maintain consistency with the new block time and ensure that transactions remain in the mempool for a similar duration as before. 1. Current default: `ttl-num-blocks = 5` 1. New default: `ttl-num-blocks = 12` From 837357a1aa8e705fb11aff72c3b6ace03b225382 Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:49:54 -0400 Subject: [PATCH 14/27] docs: clarify upgrade path and why params moved --- cips/cip-26.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/cips/cip-26.md b/cips/cip-26.md index c11df11..4542d5f 100644 --- a/cips/cip-26.md +++ b/cips/cip-26.md @@ -20,22 +20,18 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where ## Specification 1. The block time in celestia-app SHOULD be reduced from 12 seconds to 6 seconds. Concretely, this implies decreasing `TimeoutCommit` to 4.2 seconds and `TimeoutPropose` to 3.5 seconds. - -1. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia community via on-chain signaling by validators. - -1. Celestia consensus nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. - -1. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. + 1. The `TimeoutCommit` and `TimeoutPropose` parameters were moved from local config parameters into versioned parameters controlled by the state machine to ensure consistency and correctness across different protocol versions. This change allows the system to adapt dynamically to version-specific requirements, improving overall stability and interoperability during upgrades. + 1. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia community via on-chain signaling by validators. + 1. Celestia consensus nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. + 1. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. 1. Documentation and APIs related to block time and block production MUST be updated to reflect this change. 1. The default `ttl-num-blocks` parameter in the mempool configuration SHALL be increased from 5 to 12. This change is necessary to maintain consistency with the new block time and ensure that transactions remain in the mempool for a similar duration as before. 1. Current default: `ttl-num-blocks = 5` 1. New default: `ttl-num-blocks = 12` - -1. This change SHALL be implemented alongside the block time reduction to ensure consistent behavior of the mempool across the network upgrade. - -1. All validator nodes MUST update their configuration files to reflect this new `ttl-num-blocks` value before the agreed-upon implementation block height. + 1. This change SHALL NOT be implemented alongside the block time reduction. The default increase from 5 to 12 will occur when users upgrade to v3.0.0 and regenerate their config files. The block time reduction will happen one week later when the v2 to v3 activation height occurs. This approach ensures consistent behavior of the mempool across the network upgrade. + 1. All validator nodes MUST update their configuration files to reflect this new `ttl-num-blocks` value before the agreed-upon implementation block height. ## Rationale From 107de98a591464d0ec6343a7af76d73b8d50aede Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:51:20 -0400 Subject: [PATCH 15/27] docs: rearrange spec --- cips/cip-26.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cips/cip-26.md b/cips/cip-26.md index 4542d5f..f66cc73 100644 --- a/cips/cip-26.md +++ b/cips/cip-26.md @@ -25,14 +25,14 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where 1. Celestia consensus nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. 1. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. -1. Documentation and APIs related to block time and block production MUST be updated to reflect this change. - 1. The default `ttl-num-blocks` parameter in the mempool configuration SHALL be increased from 5 to 12. This change is necessary to maintain consistency with the new block time and ensure that transactions remain in the mempool for a similar duration as before. 1. Current default: `ttl-num-blocks = 5` 1. New default: `ttl-num-blocks = 12` 1. This change SHALL NOT be implemented alongside the block time reduction. The default increase from 5 to 12 will occur when users upgrade to v3.0.0 and regenerate their config files. The block time reduction will happen one week later when the v2 to v3 activation height occurs. This approach ensures consistent behavior of the mempool across the network upgrade. 1. All validator nodes MUST update their configuration files to reflect this new `ttl-num-blocks` value before the agreed-upon implementation block height. +1. Documentation and APIs related to block time and block production MUST be updated to reflect these changes. + ## Rationale The rationale for this change is to increase the throughput of the Celestia network by doubling the number of blocks produced per unit of time. This will reduce the time it takes for transactions to be finalized and improve the overall user experience on the network. From 2696f42419a58b6ef2ddfe3d0400f2d02a540a6a Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:13:24 -0400 Subject: [PATCH 16/27] Apply suggestions from code review Co-authored-by: Rootul P --- cips/cip-26.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cips/cip-26.md b/cips/cip-26.md index f66cc73..fd36d08 100644 --- a/cips/cip-26.md +++ b/cips/cip-26.md @@ -20,7 +20,7 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where ## Specification 1. The block time in celestia-app SHOULD be reduced from 12 seconds to 6 seconds. Concretely, this implies decreasing `TimeoutCommit` to 4.2 seconds and `TimeoutPropose` to 3.5 seconds. - 1. The `TimeoutCommit` and `TimeoutPropose` parameters were moved from local config parameters into versioned parameters controlled by the state machine to ensure consistency and correctness across different protocol versions. This change allows the system to adapt dynamically to version-specific requirements, improving overall stability and interoperability during upgrades. + 1. The `TimeoutCommit` and `TimeoutPropose` parameters were moved from local config parameters into versioned parameters controlled by the state machine to ensure consistency and correctness across different protocol versions. 1. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia community via on-chain signaling by validators. 1. Celestia consensus nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. 1. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. @@ -29,7 +29,7 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where 1. Current default: `ttl-num-blocks = 5` 1. New default: `ttl-num-blocks = 12` 1. This change SHALL NOT be implemented alongside the block time reduction. The default increase from 5 to 12 will occur when users upgrade to v3.0.0 and regenerate their config files. The block time reduction will happen one week later when the v2 to v3 activation height occurs. This approach ensures consistent behavior of the mempool across the network upgrade. - 1. All validator nodes MUST update their configuration files to reflect this new `ttl-num-blocks` value before the agreed-upon implementation block height. + 1. All validator nodes SHOULD update their configuration files to reflect this new `ttl-num-blocks` value before the agreed-upon implementation block height. 1. Documentation and APIs related to block time and block production MUST be updated to reflect these changes. @@ -55,7 +55,7 @@ While the reduction in block time itself does not introduce significant new secu 1. The increase of `ttl-num-blocks` from 5 to 12 is crucial for maintaining the security and efficiency of the mempool: 1. It prevents premature removal of valid transactions, reducing the risk of unintended exclusion from blocks. 1. Without this adjustment, transactions would be pruned from the mempool after only 30 seconds, potentially leading to increased transaction failures and a poor user experience. -1. Validators and node operators must update their configurations to reflect the new `ttl-num-blocks` value to maintain network consistency and security. +1. Validators and node operators should update their configurations to reflect the new `ttl-num-blocks` value to maintain network consistency and security. These changes require careful implementation and testing to ensure network stability during and after the transition. From b46a5e5053dc5f4518f5c45975f5845bffb7205e Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:14:40 -0400 Subject: [PATCH 17/27] Apply suggestions from code review Co-authored-by: Sanaz Taheri <35961250+staheri14@users.noreply.github.com> --- cips/cip-26.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cips/cip-26.md b/cips/cip-26.md index fd36d08..5b71e2f 100644 --- a/cips/cip-26.md +++ b/cips/cip-26.md @@ -2,7 +2,7 @@ | - | - | | title | Reduce block time to six seconds | | description | Proposal to reduce block time on celestia-app to 6 seconds, from 12. | -| author | Josh Stein ([@jcstein](https://github.com/jcstein)), Rootul Patel ([@rootulp](https://github.com/rootulp))| +| author | Josh Stein ([@jcstein](https://github.com/jcstein)), Rootul Patel ([@rootulp](https://github.com/rootulp))| Sanaz Taheri ([@staheri14](https://github.com/staheri14) ) | discussions-to | | | status | Draft | | type | Standards Track | From 28091523985d4913bd5031d76bfadc299b1f5f23 Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:21:31 -0400 Subject: [PATCH 18/27] docs: edit CIP-25 to include this CIP-26 --- cips/cip-25.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cips/cip-25.md b/cips/cip-25.md index 156f684..62a341d 100644 --- a/cips/cip-25.md +++ b/cips/cip-25.md @@ -7,7 +7,7 @@ | status | Draft | | type | Meta | | created | 2024-10-01 | -| requires | CIP-21, CIP-24, CIP-TBD | +| requires | CIP-21, CIP-24, CIP-26 | ## Abstract @@ -19,6 +19,7 @@ This Meta CIP lists the CIPs included in the Ginger network upgrade. - [CIP-21](./cip-21.md): Introduce blob type with verified signer - [CIP-24](./cip-24.md): Versioned Gas Scheduler Variables +- [CIP-26](./cip-26.md): Reduce block time to six seconds - CIP-TBD: limiting compute per block All of the above CIPs are state breaking, and thus require a breaking network upgrade. The activation of this network upgrade will be different from previous network upgrades, as described in [CIP-10](./cip-10.md). From 9b016b8974521a10a6a2f65508aa5529f406ae74 Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:01:39 -0400 Subject: [PATCH 19/27] Apply suggestions from code review Co-authored-by: Sanaz Taheri <35961250+staheri14@users.noreply.github.com> --- cips/README.md | 2 +- cips/cip-26.md | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/cips/README.md b/cips/README.md index eb661ce..9f6c138 100644 --- a/cips/README.md +++ b/cips/README.md @@ -54,7 +54,7 @@ Read [CIP-1](./cip-1.md) for information on the CIP process. | [23](./cip-23.md) | Coordinated prevote times | Callum Waters ([@cmwaters](https://github.com/cmwaters)) | | [24](./cip-24.md) | Versioned Gas Scheduler Variable | Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | | [25](./cip-25.md) | Ginger Network Upgrade | Josh Stein ([@jcstein](https://github.com/jcstein)), Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | -| [6 second blocks](./cip-26.md) | Reduce block time to six seconds | Josh Stein ([@jcstein](https://github.com/jcstein)) | +| [6 second blocks](./cip-26.md) | Versioned timeouts| Josh Stein ([@jcstein](https://github.com/jcstein)) | ## Contributing diff --git a/cips/cip-26.md b/cips/cip-26.md index 5b71e2f..b34d002 100644 --- a/cips/cip-26.md +++ b/cips/cip-26.md @@ -11,7 +11,13 @@ ## Abstract -This CIP proposes to reduce the block time on celestia-app to 6 seconds, from 12. This will double the throughput and reduce the time it takes for transactions to be finalized in half. This CIP also proposes to increase the `ttl-num-blocks` parameter in the mempool configuration from 5 to 12 to maintain consistency with the new block time. +This CIP proposes making timeouts application-version dependent. Starting from v3, timeouts will be controlled by the application version, rendering manual timeout configurations ineffective unless the implementation changes in the future. + +This change enables automated block time adjustments, eliminating the need for validators to modify configurations manually, as the adjustments (if any) will occur automatically with each celestia-app version upgrade. + +Updating the timeouts will naturally impact block time, block rate, and network throughput. For v3 of celestia-app, the timeout values are set to reduce the block time from 12 seconds to 6 seconds. This means block time is cut in half which, consequently, will nearly double the block rate and throughput (considering other network factors). + +Additionally, this CIP proposes increasing the `ttl-num-blocks` parameter in the mempool configuration from 5 to 12 to align with the reduced block time. ## Motivation @@ -28,7 +34,7 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where 1. The default `ttl-num-blocks` parameter in the mempool configuration SHALL be increased from 5 to 12. This change is necessary to maintain consistency with the new block time and ensure that transactions remain in the mempool for a similar duration as before. 1. Current default: `ttl-num-blocks = 5` 1. New default: `ttl-num-blocks = 12` - 1. This change SHALL NOT be implemented alongside the block time reduction. The default increase from 5 to 12 will occur when users upgrade to v3.0.0 and regenerate their config files. The block time reduction will happen one week later when the v2 to v3 activation height occurs. This approach ensures consistent behavior of the mempool across the network upgrade. + 1. This change SHALL NOT be implemented alongside the block time reduction. The default increase from 5 to 12 will occur when users upgrade to celestia-app v3.0.0 and regenerate their config files. The block time reduction will happen one week later when the v2 to v3 activation height occurs. This approach ensures consistent behavior of the mempool across the network upgrade. 1. All validator nodes SHOULD update their configuration files to reflect this new `ttl-num-blocks` value before the agreed-upon implementation block height. 1. Documentation and APIs related to block time and block production MUST be updated to reflect these changes. From 3cde8069fdeb3073cbf6ae34342e754874c442ea Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:04:47 -0400 Subject: [PATCH 20/27] Apply suggestions from code review --- cips/README.md | 2 +- cips/cip-25.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cips/README.md b/cips/README.md index 9f6c138..18ff5b2 100644 --- a/cips/README.md +++ b/cips/README.md @@ -54,7 +54,7 @@ Read [CIP-1](./cip-1.md) for information on the CIP process. | [23](./cip-23.md) | Coordinated prevote times | Callum Waters ([@cmwaters](https://github.com/cmwaters)) | | [24](./cip-24.md) | Versioned Gas Scheduler Variable | Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | | [25](./cip-25.md) | Ginger Network Upgrade | Josh Stein ([@jcstein](https://github.com/jcstein)), Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | -| [6 second blocks](./cip-26.md) | Versioned timeouts| Josh Stein ([@jcstein](https://github.com/jcstein)) | +| [26](./cip-26.md) | Versioned timeouts| Josh Stein ([@jcstein](https://github.com/jcstein)) | ## Contributing diff --git a/cips/cip-25.md b/cips/cip-25.md index cc3101b..8b93857 100644 --- a/cips/cip-25.md +++ b/cips/cip-25.md @@ -19,7 +19,7 @@ This Meta CIP lists the CIPs included in the Ginger network upgrade. - [CIP-21](./cip-21.md): Introduce blob type with verified signer - [CIP-24](./cip-24.md): Versioned Gas Scheduler Variables -- [CIP-26](./cip-26.md): Reduce block time to six seconds +- [CIP-26](./cip-26.md): Versioned timeouts - CIP-TBD-2: limiting compute per block All of the above CIPs are state breaking, and thus require a breaking network upgrade. The activation of this network upgrade will be different from previous network upgrades, as described in [CIP-10](./cip-10.md). From ee6a7338547f3e1f1ff6f1d98cecda1637c49c99 Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:05:37 -0400 Subject: [PATCH 21/27] Update cips/README.md --- cips/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cips/README.md b/cips/README.md index 18ff5b2..109c5a1 100644 --- a/cips/README.md +++ b/cips/README.md @@ -54,7 +54,7 @@ Read [CIP-1](./cip-1.md) for information on the CIP process. | [23](./cip-23.md) | Coordinated prevote times | Callum Waters ([@cmwaters](https://github.com/cmwaters)) | | [24](./cip-24.md) | Versioned Gas Scheduler Variable | Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | | [25](./cip-25.md) | Ginger Network Upgrade | Josh Stein ([@jcstein](https://github.com/jcstein)), Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | -| [26](./cip-26.md) | Versioned timeouts| Josh Stein ([@jcstein](https://github.com/jcstein)) | +| [26](./cip-26.md) | Versioned timeouts| Josh Stein ([@jcstein](https://github.com/jcstein)), Rootul Patel ([@rootulp](https://github.com/rootulp))| Sanaz Taheri ([@staheri14](https://github.com/staheri14) | ## Contributing From 57d1dd5d0897bb7dfb7a707aa648ca9b8f7bdb25 Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:09:26 -0400 Subject: [PATCH 22/27] Apply suggestions from code review --- cips/cip-26.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cips/cip-26.md b/cips/cip-26.md index b34d002..f62d3b8 100644 --- a/cips/cip-26.md +++ b/cips/cip-26.md @@ -1,7 +1,7 @@ | cip | 26 | | - | - | -| title | Reduce block time to six seconds | -| description | Proposal to reduce block time on celestia-app to 6 seconds, from 12. | +| title | Versioned timeouts | +| description | Timeouts are now controlled by the application version. | | author | Josh Stein ([@jcstein](https://github.com/jcstein)), Rootul Patel ([@rootulp](https://github.com/rootulp))| Sanaz Taheri ([@staheri14](https://github.com/staheri14) ) | discussions-to | | | status | Draft | From 684d62ca382aa0bbc182245ce98fcab4143cb8f5 Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:10:59 -0400 Subject: [PATCH 23/27] Apply suggestions from code review --- cips/README.md | 2 +- cips/cip-26.md | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/cips/README.md b/cips/README.md index 109c5a1..c928293 100644 --- a/cips/README.md +++ b/cips/README.md @@ -54,7 +54,7 @@ Read [CIP-1](./cip-1.md) for information on the CIP process. | [23](./cip-23.md) | Coordinated prevote times | Callum Waters ([@cmwaters](https://github.com/cmwaters)) | | [24](./cip-24.md) | Versioned Gas Scheduler Variable | Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | | [25](./cip-25.md) | Ginger Network Upgrade | Josh Stein ([@jcstein](https://github.com/jcstein)), Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | -| [26](./cip-26.md) | Versioned timeouts| Josh Stein ([@jcstein](https://github.com/jcstein)), Rootul Patel ([@rootulp](https://github.com/rootulp))| Sanaz Taheri ([@staheri14](https://github.com/staheri14) | +| [26](./cip-26.md) | Versioned timeouts | Josh Stein ([@jcstein](https://github.com/jcstein)), Rootul Patel ([@rootulp](https://github.com/rootulp))| Sanaz Taheri ([@staheri14](https://github.com/staheri14) | ## Contributing diff --git a/cips/cip-26.md b/cips/cip-26.md index f62d3b8..2a56112 100644 --- a/cips/cip-26.md +++ b/cips/cip-26.md @@ -27,7 +27,6 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where 1. The block time in celestia-app SHOULD be reduced from 12 seconds to 6 seconds. Concretely, this implies decreasing `TimeoutCommit` to 4.2 seconds and `TimeoutPropose` to 3.5 seconds. 1. The `TimeoutCommit` and `TimeoutPropose` parameters were moved from local config parameters into versioned parameters controlled by the state machine to ensure consistency and correctness across different protocol versions. - 1. The change in block time MUST be implemented at a specific block height, which SHALL be determined and agreed upon by the Celestia community via on-chain signaling by validators. 1. Celestia consensus nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. 1. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. From 9140c802eb40f303f3862f7657a40bd3daed44e5 Mon Sep 17 00:00:00 2001 From: jcstein <46639943+jcstein@users.noreply.github.com> Date: Thu, 17 Oct 2024 12:46:08 -0400 Subject: [PATCH 24/27] fix: linting --- cips/README.md | 2 +- cips/cip-26.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cips/README.md b/cips/README.md index c928293..f434587 100644 --- a/cips/README.md +++ b/cips/README.md @@ -54,7 +54,7 @@ Read [CIP-1](./cip-1.md) for information on the CIP process. | [23](./cip-23.md) | Coordinated prevote times | Callum Waters ([@cmwaters](https://github.com/cmwaters)) | | [24](./cip-24.md) | Versioned Gas Scheduler Variable | Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | | [25](./cip-25.md) | Ginger Network Upgrade | Josh Stein ([@jcstein](https://github.com/jcstein)), Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)) | -| [26](./cip-26.md) | Versioned timeouts | Josh Stein ([@jcstein](https://github.com/jcstein)), Rootul Patel ([@rootulp](https://github.com/rootulp))| Sanaz Taheri ([@staheri14](https://github.com/staheri14) | +| [26](./cip-26.md) | Versioned timeouts | Josh Stein ([@jcstein](https://github.com/jcstein)), Rootul Patel ([@rootulp](https://github.com/rootulp)), Sanaz Taheri ([@staheri14](https://github.com/staheri14) | ## Contributing diff --git a/cips/cip-26.md b/cips/cip-26.md index 2a56112..d67fd81 100644 --- a/cips/cip-26.md +++ b/cips/cip-26.md @@ -2,7 +2,7 @@ | - | - | | title | Versioned timeouts | | description | Timeouts are now controlled by the application version. | -| author | Josh Stein ([@jcstein](https://github.com/jcstein)), Rootul Patel ([@rootulp](https://github.com/rootulp))| Sanaz Taheri ([@staheri14](https://github.com/staheri14) ) +| author | Josh Stein ([@jcstein](https://github.com/jcstein)), Rootul Patel ([@rootulp](https://github.com/rootulp)), Sanaz Taheri ([@staheri14](https://github.com/staheri14)) | | discussions-to | | | status | Draft | | type | Standards Track | From 49a9a3fa91d489e8564bce07bd90d6ce59defd59 Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Thu, 17 Oct 2024 13:22:41 -0400 Subject: [PATCH 25/27] Apply suggestions from code review Co-authored-by: Sanaz Taheri <35961250+staheri14@users.noreply.github.com> --- cips/cip-26.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cips/cip-26.md b/cips/cip-26.md index d67fd81..593e2be 100644 --- a/cips/cip-26.md +++ b/cips/cip-26.md @@ -26,7 +26,7 @@ The motivation for this CIP stems from a discussion in Core Devs Call 17, where ## Specification 1. The block time in celestia-app SHOULD be reduced from 12 seconds to 6 seconds. Concretely, this implies decreasing `TimeoutCommit` to 4.2 seconds and `TimeoutPropose` to 3.5 seconds. - 1. The `TimeoutCommit` and `TimeoutPropose` parameters were moved from local config parameters into versioned parameters controlled by the state machine to ensure consistency and correctness across different protocol versions. + 1. The `TimeoutCommit` and `TimeoutPropose` parameters were moved from local config parameters into versioned parameters controlled by the state machine. The timeouts will be managed by the application and communicated with Celestia-core through the following ABCI interfaces: `InitChain`, `EndBlock`, and `Info`, now extended with `TimeoutsInfo`, which encapsulates `TimeoutPropose` and `TimeoutCommit`. The timeouts obtained through these interfaces are utilized by the Celestia-core side as needed. 1. Celestia consensus nodes SHOULD update their software to accommodate this change prior to the agreed-upon block height. 1. Client applications interacting with the Celestia network SHOULD be updated to account for the faster block time, particularly in areas related to transaction confirmation and block finality. From 76cb77da7357f3b957150c3170a2943fc394463b Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:34:06 -0400 Subject: [PATCH 26/27] Apply suggestions from code review --- cips/cip-26.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cips/cip-26.md b/cips/cip-26.md index 593e2be..cf4dc72 100644 --- a/cips/cip-26.md +++ b/cips/cip-26.md @@ -46,7 +46,7 @@ The increase in `ttl-num-blocks` from 5 to 12 is necessary to maintain consisten ## Backwards Compatibility -This is a breaking network upgrade and will require all participants to update their software to accommodate the new block time and `ttl-num-blocks`. The change in block time will not be backward compatible with the existing network, and all participants MUST be compliant by the agreed-upon implementation block height. +This upgrade requires all participants to update their software to v3 to accommodate the new block time and `ttl-num-blocks`. Nodes running older versions may not function correctly with the new network parameters. All validators and node operators should update to v3 before the agreed-upon implementation block height to ensure network consistency and optimal performance. ## Test Cases From 57c52592ce3f2a121acf39279e16c8b1e7f8d20b Mon Sep 17 00:00:00 2001 From: Josh Stein <46639943+jcstein@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:36:51 -0400 Subject: [PATCH 27/27] Apply suggestions from code review --- cips/cip-25.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cips/cip-25.md b/cips/cip-25.md index 8b93857..b745d08 100644 --- a/cips/cip-25.md +++ b/cips/cip-25.md @@ -20,7 +20,8 @@ This Meta CIP lists the CIPs included in the Ginger network upgrade. - [CIP-21](./cip-21.md): Introduce blob type with verified signer - [CIP-24](./cip-24.md): Versioned Gas Scheduler Variables - [CIP-26](./cip-26.md): Versioned timeouts -- CIP-TBD-2: limiting compute per block +- CIP-TBD-1: Block limits for number of PFBs and non-PFBs +- CIP-TBD-2: Transaction size limit All of the above CIPs are state breaking, and thus require a breaking network upgrade. The activation of this network upgrade will be different from previous network upgrades, as described in [CIP-10](./cip-10.md).