-
Notifications
You must be signed in to change notification settings - Fork 206
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
retry helper to durably watch idempotent promises #9541
Comments
refs: #9449 ## Description This makes ChainHub return durable vows. The underlying lookup functions are not durable but they made so by the `retriable` helper. So this also introduces a stub version of #9541 pulled from @dtribble 's #9657 ### Security Considerations none ### Scaling Considerations none ### Documentation Considerations none ### Testing Considerations CI ### Upgrade Considerations not yet upgradable. Communicated by https://github.com/Agoric/agoric-sdk/blob/a267ba20db0eeb2082c287ca7b69e37d6f272eb9/packages/vow/src/tools.js#L37-L38
#9685 added the API for one but it doesn't support upgrade |
I'm thinking that OTOH, |
Would it be better for these to be rejected with UpgradeDisconnection as well? |
possibly something similar, but we likely need the ability to differentiate between the target being abandoned and the pending operation on the target being disconnected. In #9582 we discuss in the future using a chain of |
Recent discussions and audit of use cases highlights the following:
|
refs: #9541, #9322, #9519 ## Description add `getVBankAssetInfo()` method on agoric chain object. DRAFT until - [x] how to add chain-specific methods to return type of `getChain()`? - [x] refactor uses of `makeResumableAgoricNamesHack` to use this ### Documentation Considerations change is visible via `orchestration-api.d.ts` cc @dtribble ### Security Considerations none? ### Scaling Considerations returns O(n) data from O(1) args ### Testing Considerations perhaps not independently tested ### Upgrade Considerations not yet deployed
A wish: rather than moving the method name to a string argument: const lookupAsset = retry(privateArgs.agoricNames, 'lookup', 'vbankAsset'); keep it in the method position, so that we could preserve types: const lookupAsset = retryE(privateArgs.agoricNames).lookup('vbankAsset'); but that reminds me of |
I believe preserving types is an orthogonal concern. There may be a way to maintain typing with the current form. The suggested
I really do not understand this. |
What is the Problem Being Solved?
Vows that wrap promises risk having the promise sever. E.g. a remote call to
agoricNames
could sever upon upgrade. Fortunately, in that case simply retrying is safe.Description of the Design
A helper that makes a remote call that will retry upon upgrade failure.
Security Considerations
Scaling Considerations
Test Plan
Upgrade Considerations
The text was updated successfully, but these errors were encountered: