Gas estimation for blob submission
- Lingua principale
- Go
- Stelle
- 4
- Fork
- 0
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
## Summary
Implement deterministic gas estimation for `MsgPayForBlobs` transactions.
Parent: #4
## Design
Recreate the gas estimation formula from scratch rather than importing celestia-app:
```
gas = gasToConsume(blobSizes, gasPerBlobByte) + (txSizeCostPerByte * bytesPerBlobInfo * numBlobs) + pfbGasFixedCost
```
Constants (from celestia-app, may need updating per network version):
- `pfbGasFixedCost = 75,000`
- `bytesPerBlobInfo = 70`
- `gasPerBlobByte = 8`
- `txSizeCostPerByte` — governance parameter, query from chain or configure
### Gas price
- Configurable default gas price in config
- Optional multiplier/buffer (e.g., 1.1x) to reduce "insufficient fee" rejections
- No dependency on celestia-node's gas estimator gRPC service
- Optionally query `QueryMinimumGasPrice()` from a celestia-app RPC endpoint as a floor
```toml
[submission]
gas_price = 0.002 # utia per gas unit
gas_price_buffer = 1.1 # 10% buffer over minimum
max_gas_price = 0.2 # safety cap
```
## Requirements
- Pure function: given blob sizes, return gas estimate
- No network calls required (deterministic)
- Unit tests validating against known celestia-app outputs
- Configurable constants for network upgrades
## References
- celestia-app `x/blob/types/payforblob.go` — `DefaultEstimateGas()`, `GasToConsume()`
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia leggendo celestia-app x/blob/types/payforblob.go, in particolare DefaultEstimateGas() e GasToConsume(), quindi individua i punti di ingresso del repository per l’invio e la configurazione dei blob. Il lavoro è completato quando sono disponibili una stima puramente deterministica, costanti e impostazioni del prezzo del gas configurabili e test unitari che corrispondano agli output noti di celestia-app senza richiedere chiamate di rete.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- go
- Ambito
- blockchain
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100