# CIP: Versioned Gas Scheduler Variables

**URL:** <https://forum.celestia.org/t/cip-versioned-gas-scheduler-variables/1785>\
**Category:** Celestia Improvement Proposals (CIPs)\
**Created:** [July 29, 2024, 5:16pm UTC](https://forum.celestia.org/t/cip-versioned-gas-scheduler-variables/1785 "2024-07-29T17:16:13Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ninabarbakadze](https://forum.celestia.org/user_avatar/forum.celestia.org/ninabarbakadze/32/1134_2.png) [@ninabarbakadze](https://forum.celestia.org/u/ninabarbakadze)\
**Post date:** [July 29, 2024, 5:16pm UTC](https://forum.celestia.org/t/cip-versioned-gas-scheduler-variables/1785/1 "2024-07-29T17:16:13Z")

</div>

This post is to discuss the CIP on Versioned Gas Scheduler Variables. More context [here.](https://github.com/celestiaorg/CIPs/pull/182)

---

<div class="post-metadata">

**Author:** ![oblique](https://forum.celestia.org/user_avatar/forum.celestia.org/oblique/32/1181_2.png) [@oblique](https://forum.celestia.org/u/oblique)\
**Post date:** [October 4, 2024, 2:48pm UTC](https://forum.celestia.org/t/cip-versioned-gas-scheduler-variables/1785/2 "2024-10-04T14:48:37Z")

</div>

Hey! I’m from Lumina team. We started implementing [versioned consts from appconsts](https://github.com/celestiaorg/celestia-app/tree/main/pkg/appconsts) and we encounter some issues while incorporating them in our `celestia-types` crate.

These are the issues:

- `SubtreeRootThreshold` is used when `Blob.Commitment` is computed, however `AppVersion` is only present in `ExtendedHeader`. So if a user requests a `Blob`, they need first to request `ExtendedHeader`, then `Blob` and then pass the `AppVersion` in order to get the `Commitment`. In celestia-node you workaround this by having a [fixed version of constants](https://github.com/celestiaorg/celestia-node/blob/f48223dbe4ae74fcf7f4d87a68523d0e4613c923/blob/blob.go#L22), which we believe it is going to be an issue later on.
- `ExtendedDataSquare` has a theoretical `MAX_EXTENDED_SQUARE_WIDTH`, which is `SquareSizeUpperBound * 2`. We use this value to validate EDS, but now this check can not be really done. We are unsure what to do about it. In order to keep this check then we need to apply restrictions on type-level and force user to give us the `ExtendedHeader` on validation.
