diff --git a/cips/README.md b/cips/README.md index f434587..42390c1 100644 --- a/cips/README.md +++ b/cips/README.md @@ -23,7 +23,8 @@ Read [CIP-1](./cip-1.md) for information on the CIP process. | 15 | August 7, 2024 | [Agenda](https://github.com/celestiaorg/CIPs/issues/185) | [Notes](./notes/cdc-15.md) | [Recording](https://www.youtube.com/watch?v=7f1Jtggld34) | | 16 | September 4, 2024 | [Agenda](https://github.com/celestiaorg/CIPs/issues/194) | TBD | [Recording](https://www.youtube.com/watch?v=zuJ6xoRvz-U) | | 17 | October 2, 2024 | [Agenda](https://github.com/celestiaorg/CIPs/issues/201) | [Tweet Thread](https://x.com/JoshCStein/status/1842229129199935757) | [Recording](https://youtu.be/J2Cep6gBN-o) | -| 18 | October 16, 2024 | [Agenda](https://github.com/celestiaorg/CIPs/issues/214) | TBD | TBD | +| 18 | October 16, 2024 | [Agenda](https://github.com/celestiaorg/CIPs/issues/214) | TBD | [Recording](https://youtu.be/1aaPYxRVAtk) | +| 19 | November 6, 2024 | [Agenda](https://github.com/celestiaorg/CIPs/issues/221) | TBD | [Set reminder](https://youtu.be/txmttm6t4YI) | ## Celestia Improvement Proposals (CIPs) @@ -55,6 +56,7 @@ Read [CIP-1](./cip-1.md) for information on the CIP process. | [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) | +| [27](./cip-26.md) | Block limits for number of PFBs and non-PFBs | Josh Stein ([@jcstein](https://github.com/jcstein)), Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)), rach-id ([@rach-id](https://github.com/rach-id)), Rootul Patel ([@rootulp](https://github.com/rootulp)) | ## Contributing diff --git a/cips/SUMMARY.md b/cips/SUMMARY.md index c9756ac..263f3af 100644 --- a/cips/SUMMARY.md +++ b/cips/SUMMARY.md @@ -29,6 +29,7 @@ - [CIP-24](./cip-24.md) - [CIP-25](./cip-25.md) - [CIP-26](./cip-26.md) + - [CIP-27](./cip-27.md) - [Core Devs Call notes](./notes/README.md) - [CDC #14](./notes/cdc-14.md) diff --git a/cips/cip-25.md b/cips/cip-25.md index b745d08..2423d5d 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-26, CIP-TBD-2 | +| requires | CIP-21, CIP-24, CIP-26, CIP-27, CIP-TBD-2 | ## Abstract @@ -20,7 +20,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): Versioned timeouts -- CIP-TBD-1: Block limits for number of PFBs and non-PFBs +- [CIP-27](./cip-27.md): 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). diff --git a/cips/cip-27.md b/cips/cip-27.md new file mode 100644 index 0000000..a14562d --- /dev/null +++ b/cips/cip-27.md @@ -0,0 +1,44 @@ +| cip | 27 | +| - | - | +| title | Block limits for number of PFBs and non-PFBs | +| description | Set limits for number of PFBs and non-PFBs per block | +| author | Josh Stein ([@jcstein](https://github.com/jcstein)), Nina Barbakadze ([@ninabarbakadze](https://github.com/ninabarbakadze)), rach-id ([@rach-id](https://github.com/rach-id)), Rootul Patel ([@rootulp](https://github.com/rootulp)) | +| discussions-to | | +| status | Draft | +| type | Standards Track | +| category | Core | +| created | 2024-10-16 | + +## Abstract + +This CIP proposes to set limits for the number of PayForBlobs (PFBs) messages and non-PFBs messages per block. The proposal is to set the limits to 600 PFBs messages and 200 non-PFB messages per block. Setting PFB and non-PFBs limits is not consensus-breaking. + +## Specification + +1. The number of PFBs per block is limited to 600 by setting `MaxPFBMessages` to 600. +1. The number of non-PFBs messages per block is limited to 200 by setting `MaxNonPFBMessages` to 200. +1. It's important to note that these limits are not strictly enforced. While they are defined by the `celestia-app` implementation, a validator could potentially modify the `PrepareProposal` logic, run a custom binary, and produce blocks that exceed the specified limits for PFB or non-PFBs transactions. + +## Rationale + +The rationale for this proposal is to prevent long block times on the network by limiting the number of PFBs and non-PFB messages per block. This is not consensus-breaking but it has a meaningful effect on users and should be formalized in a CIP. + +1. The limits for PFBs (Pay for Blob transactions) and non-PFBs per block were established using the following process: + 1. Benchmarks were conducted in [PR 3904 on celestia-app](https://github.com/celestiaorg/celestia-app/pull/3904) to measure ABCI method processing times for different transaction types. + 1. A target processing time of ~0.25 seconds was set to prevent long block times. + 1. Based on these benchmarks run on the recommended validator configuration (4 CPU, 16GB RAM), a soft limiter was implemented in the prepare proposal stage. + 1. This limiter sets specific caps on the number of PFB and non-PFB messages allowed in a default block to meet the processing time target. + 1. While default blocks adhere to these limits, blocks exceeding them can still be included if they reach consensus, ensuring flexibility. +1. This approach balances network efficiency with block processing speed, directly informing the PFB and non-PFB limits now in place. + +## Backwards Compatibility + +This proposal is meant to be included with v3 and the [Ginger Network Upgrade](./cip-25.md). It is backwards compatible with v2. + +## Security Considerations + +This proposal does not introduce any new security risks. However, it does impact network behavior and user experience, which should be carefully considered during implementation. + +## Copyright + +Copyright and related rights waived via [CC0](https://github.com/celestiaorg/CIPs/blob/main/LICENSE).