Skip to content

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

@LePremierHomme

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)

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