You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently the relayer has a hard-coded cap of 128 blobs in its QueuedConvertedBlocks queue. This is overly pessimistic for the case of syncing a relayer on startup.
We should look to replace this limit with one based on the total size in bytes of the blobs, with an initial hard-coded cap of just under 50% of the Celestia blob-size limit.
From experimentation, the blob-size limits on Celestia are:
1,973,430 on our clone running in k8s
1,973,208 on arabica-11
1,962,441 on mocha-4 and mainnet
where these represent the maximum value of BroadcastTxRequest::tx_bytes.len() + 4 (there are 4 bytes consumed in packing the length into the serialized field).
The limit for our blob-size should therefore be 981,218 bytes.
The text was updated successfully, but these errors were encountered:
… Celestia fees (#1045)
## Summary
Batch mutiple Sequencer blocks into single Celestia blobs to reduce fee
payments.
## Background
Until now, each Sequencer block was turned into multiple blobs (one for
overall sequencer block metadata, and one blob per rollup that had
transactiosn in the sequencer block). This wasn't as efficient as it
could be because the new compression scheme introduced in
#1006 can only come to bear with
more bytes to compress.
Relayer will collect sequencer blocks up to a total (compressed) size of
1MB (1/2 of the current max of 2MB that Celestia blocks can be).
## Changes
- Introduce protobuf messages
`astria.sequencerblock.v1alpha1.CelestiaHeaderList` and
`astria.sequencerblock.v1alpha1.CelestiaRollupDataList`
- Rename `astria.sequencerblock.v1alpha1.CelestiaRollupBlob` to
`astria.sequencerblock.v1alpha1.CelestiaRollupData`
- Rename `astria.sequencerblock.v1alpha1.CelestiaSequencerBlob` to
`astria.sequencerblock.v1alpha1.CelestiaHeader`
- Collect Sequencer Blocks into the `*List` protobuf messages before
posting them to Celestia (instead of splitting up each Sequencer block
into mutiple blobs and posting them one by one).
## Testing
Add unit tests around the next submission aggregation logic. Update
conductor blackbox tests.
## Metrics
+ `CELESTIA_PAYLOAD_CREATION_LATENCY`: histogram with microsecond units
to track the time it takes to create a payload of Celestia blobs
(encoding + compressing all protobufs)
+ metrics for reporting compression ratio and total compressed payload
size were moved from the payload/blob construction phase to the
submission phase.
## Breaking Changelist
- Relayer and Conductor write/read new protobuf messages to/from
Celestia.
## Related Issues
Closes#1042Closes#1049
Currently the relayer has a hard-coded cap of 128 blobs in its
QueuedConvertedBlocks
queue. This is overly pessimistic for the case of syncing a relayer on startup.We should look to replace this limit with one based on the total size in bytes of the blobs, with an initial hard-coded cap of just under 50% of the Celestia blob-size limit.
From experimentation, the blob-size limits on Celestia are:
where these represent the maximum value of
BroadcastTxRequest::tx_bytes.len() + 4
(there are 4 bytes consumed in packing the length into the serialized field).The limit for our blob-size should therefore be 981,218 bytes.
The text was updated successfully, but these errors were encountered: