Skip to content

Design v2 "non-Eth" (chain, F3, state) RPC APIs that are F3-aware #12990

@BigLep

Description

@BigLep

Done Criteria

There is a public document that lists proposed:

  1. APIs being added
  2. APIs being removed
  3. APIs being modified
    as a result of F3. We should be able to share this with a partner who will use them and give feedback on them

The groups in scope are:

Eth is not in scope because we already know what to do from an implementation regard (and that is happening in #12988)

Why Important

  1. Ensure we implement the right thing
  2. Enable integraters to plan for how they'll adapt with the advent of F3

Notes

  1. Exchanges (e.g., Coinbase through Zondax) are a target audience of this work.
  2. There is existing work in this area to draw from: https://www.notion.so/filecoindev/WIP-API-updates-w-F3-106dc41950c1801789bef5eca507efa5 . That said it isn't currently crisp on our current proposal. We don't want readers to have to pick through to try and guess what our proposal is.
  3. A key challenge to solve is a clean way for the user to specify the tipset they want to use. We have to introduce a new API paradigm to users but we should be careful not to break too hard so everyone has to rewrite stuff. We could lean on the Eth paradigm to make bridging easier which is why proposals to date have been a mash-up of Filecoin and Eth tipset selectors.
  4. This design document doesn't block implementation work. There is code to write that will be independent of the exact APIs we settle on. For example, the tipset selection needs to be plumbing through everywhere we execute the backends of the APIs so we don’t have to have two versions of everything. v2 and v1 (and therefore v0) should share code paths, but the “which tipset” argument is now different. Refactoring to promote reuse is going to be tricky given the current internal architecture and the way we use the DI (uber/ux) tooling to assemble Lotus.
  5. This effort is not getting bundled in the "Common Node" effort. v2 APIs established here can be consided for the "Common Node" effort in the future, but for now we want to be able to move fast and learn from user interaction on the ideal APIs to have. Once they are stabalized, they can be considered for "Common Node" inclusion.
  6. We should set the expectation is that the v2 APIs are experimental and opt in at this point and will likely change based on feedback.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

🎉 Done

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions