-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
conductor: parse oracle data from extended_commit_info
and send to rollup if it exists
#1818
Labels
Comments
noot
added a commit
that referenced
this issue
Nov 25, 2024
…extended commit info (#1832) ## Summary the price data posted by validators is of the form currency pair ID -> price, however when this is sent to a rollup there is then no way to determine the ID -> actual currency pair without referencing the sequencer state. this is non ideal as we don't want to have to perform lookups using a sequencer node for the oracle data. ## Background see above ## Changes - create `ExtendedCommitInfoWithCurrencyPairMapping` type which contains `ExtendedCommitInfo` (as previous) as well as the ID->currency pair mapping for the price data inside that `ExtendedCommitInfo` - the proposer fills this mapping using the current sequencer state (before tx execution) - encoded `ExtendedCommitInfoWithCurrencyPairMapping` is then used as the third injected tx in the block, whereas before it was just `ExtendedCommitInfo` - the other validators then verify this mapping using the current sequencer state (before tx execution) in `process_proposal` ## Testing unit tests + CI tests ## Related Issues required for #1818
noot
added a commit
that referenced
this issue
Dec 4, 2024
…ution API (#1840) ## Summary update conductor to pass oracle data to rollup via execution API. ## Background this is the final change needed within the astria monorepo for the oracle integration, as the oracle data is now fully passed up the stack. handling the oracle data is now left up to each rollup. ## Changes - add a new `OracleData` variant to the `RollupData` enum, which contains a `Vec<Price>`, where each `Price` contains the relevant oracle data for a currency pair for that block - update the injected tx type `ExtendedCommitInfoWithCurrencyPairMapping` such that the id->currency pair mapping also contains the decimals for that currency pair's price; this is necessary information that I overlooked in the previous PR creating that type - add the extended commit info + proof to `FilteredSequencerBlock` - update `SequencerBlock`, `FilteredSequencerBlock` and `SubmittedMetadata` constructors such that the extended commit info bytes must be a valid encoded protobuf `ExtendedCommitInfoWithCurrencyPairMapping` - move functionality for calculating the aggregated prices from the extended commit info from sequencer to core so that conductor can also use it - update conductor's executor to calculate the aggregated price data and pass it as `RollupData::OracleData` to the rollup via the execution API ## Testing unit tests ## Related Issues closes #1818
closed by #1840 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
once the extended commit info is inside
SequencerBlock
and written to DA, conductor can access it and send the data inside of it to rollups.conductor does not need to do additional validation on the extended commit info, as it will only be finalized by the sequencer if valid.
the
RollupData
enum should be updated to contain anOracleData
variant, which can be a vec of prices such as:conductor then needs to parse the extended commit info into a
OracleData
by parsing the prices and taking the median (logic which is already implemented in sequencer) and then pass this as aRollupData
to the rollup.┆Issue Number: ENG-1017
The text was updated successfully, but these errors were encountered: