Agoric / agoric-sdk

monorepo for the Agoric Javascript smart contract platform
Apache License 2.0
327 stars 207 forks source link

FU transaction feed aggregation #10489

Closed turadg closed 1 week ago

turadg commented 1 week ago

closes: #10457

Description

This implements aggregation of the evidence from oracle operators. Once they all agree it forwards.

Some corner cases are deferred for our scheduled error handling work.

A testing change was to make the contract's public makeTestPushInvitation handle evidence directly instead of putting it through the feed. The feed has its own tests and the purpose of the test invitation is to let a client trigger an advance, not test the feed. A consequence of this is that the existing contract test started advancing, which doesn't work. So I marked the test skip until it does.

Security Considerations

Decentralizes truth of CCTP transaction evidence, split among oracle operators. It waits until all operators have sent evidence of the same transaction. There is more verification to do. (See TODO items)

Scaling Considerations

Small number of new Ecos (one per oracle operator, probably three). The pending transactions are stored in a mapstore until they're resolved. Transactions that are never matched by all operators don't ever get cleaned up. It doesn't keep track of transactions it has published, so this could easily happen if one operator double-reports and the others don't. (If they all double-report, the transaction will repeat… hmmm this needs more work)

Documentation Considerations

To follow up with oracle operators

Testing Considerations

CI

Upgrade Considerations

Not yet deployed but all the exos are meant be upgraded

cloudflare-workers-and-pages[bot] commented 1 week ago

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: d06ae2b
Status: ✅  Deploy successful!
Preview URL: https://97103643.agoric-sdk.pages.dev
Branch Preview URL: https://10457-tx-aggregation.agoric-sdk.pages.dev

View logs