Skip to content

FVM versioning and technical debt #1724

Open
@lemmih

Description

@lemmih

The fvm crate can be difficult to use natively from Rust for a few reasons, including:

  • The incompatibility of fvm-2 and fvm-3,
  • the lack of semantic versioning,
  • primitive types are dated and that apparently shouldn't be used[1],
  • many dependencies (like cid) are frozen and cannot easily be upgraded (this is both an annoyance and a security issue).

I'd like to work towards a future where we have a single crate that captures all of the complexity of the Filecoin network, offers a stable interface that other players in the ecosystem can depend on, and actively try to reduce the amount of code that has to be maintained (by de-duplicating code that is shared by fvm-2 and fvm-3).

The Forest team has a lot of Rust experience and we can devote several engineers to work on this full-time. What are you thoughts on this and what are your plans for future versions of the FVM?

[1]: For example, the fvm_shared::crypto::signature::Signature type doesn't support delegated signatures which are required to connect to a filecoin network. The Forest team was told that clients aren't supposed to use the types exported by the FVM.

@jennijuju @arajasek @maciejwitowski

Metadata

Metadata

Assignees

Type

No type

Projects

Status

No status

Relationships

None yet

Development

No branches or pull requests

Issue actions