filecoin-project / core-devs

Technical Project Management: Meeting notes and agenda items
32 stars 12 forks source link

Filecoin Core Devs Meeting 32 Agenda #77

Closed jennijuju closed 2 years ago

jennijuju commented 2 years ago

Filecoin Core Devs Meeting 32 Agenda

Agenda

jennijuju commented 2 years ago

I invited @dirkmc from Bedrock-ignite team to give a quick overview of boost, a market implementation!

jennijuju commented 2 years ago

also inviting @raulk to give some updates on fvm!

jennijuju commented 2 years ago

Snap deal updates @arajasek "

open question to chain safe - have they started to look at the fip and planning on implementing the rust actor of snap deal?

raulk commented 2 years ago

Excited to be participating. Here is what I'll be going through today.

Materials

FVM key characteristics

Roadmap

image

FVM and SDK reference implementations

Canonical built-in actors

With the FVM having formalized bytecode (WASM), and built-in actors being deployed as WASM bytecode, we depart from the model of replicated native actor implementations in different languages, and can converge towards a single canonical built-in actors codebase producing WASM bytecode.

There are two actors implementations currently: Go and Rust. This presented a dichotomy: Go actors secure mainnet, but Go carries over the runtime overhead to WASM producing code bloat and reduced performance; conversely, Rust actors don't secure the mainnet yet, but the Rust toolchain is fantastically equipped to produce concise WASM outputs with little to zero overhead ([no_std]) and with ample degree of customization of low-level elements (e.g. allocator). The Rust WASM ecosystem is also orders of magnitude more developed than the Go one.

We looked at using TinyGo as a solution to produce succint WASM code from Go actors, but its limitations were not encouraging.

Therefore, we believe the right choice is to promote the Rust actors into the canonical actors, investing heavily in their robustness, performance, and security (audits!). We'd like to propose to extract the Rust actors into a separate codebase, where all implementor teams collaborate on.

FIP submission

We expect to submit an FVM FIP in January, so that there's enough time to discuss/evaluate/implement before the network upgrade for the deployment of Phase 1 (entire network runs built-in actors on FVM + gas model changes to prepare the system for user programmability).

How does this affect Filecoin implementations