evstack / evstack/apex

Gas estimation for blob submission

Aperta
#17 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.