Skip to content

Phase 1: Rust-native Platform Actor for child subnets #1532

Description

@LePremierHomme

Replace fendermint_vm_interpreter::fvm::state::ipc::GatewayCaller with a new system actor in

fendermint_vm_actor_interface called Platform Actor with minimal, consensus-related functionality for the subnet network as a child subnet.

This means that the IPC subnet should be instantiated without using the following Solidity artifacts dependency:

  • GatewayGetterFacet
  • CheckpointingFacet
  • TopDownFinalityFacet
  • XnetMessagingFacet
  • GatewayManagerFacet

Main Functionality

Module Feature Current Module Current Function
Checkpointting commit bottom-up checkpoint CheckpointingFacet .commitCheckpoint()
Topdown commit to parent finality TopDownFinalityFacet .commitParentFinality()
Topdown store validator change requests TopDownFinalityFacet .storeValidatorChanges()
Topdown apply topdown committed changes TopDownFinalityFacet .applyFinalityChanges()
GMP system actor applies incoming cross-net messages XnetMessagingFacet .applyCrossMessages()

Testing:

  • Port relevant Solidity integration tests to Rust
  • E2E tests to check against regression for the limited child-subnet functionality (checkpoint submission, topdown finality, inbound cross-net messages)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions