You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Dec 20, 2023. It is now read-only.
In the MVP of IPC, the IPC actors were targeting Filecoin's Legacy-VM. Consequently, the definition of all their params and their state were defined as Go types within the code base. Our newly implemented IPC actors targeting the FVM are written in Rust and through the process of re-writing them some parameters and state types have changed slightly. Also, the fact that we are now using Rust for the actor implementations implies that we need to ensure that the CBOR serialization used for the types is interoperable between Go and Rust
(note: by using cbor_gen we should get this by-design, however, silly mistakes can easily be introduced like not flagging a Vec<u8> to be serialized as a slice a bytes and Go trying then to deserialize it as []uint8 instead of []byte).
Goal
The goal of this issue is to create a package including all the state and params from the IPC actors to support their integration in the Lotus code base (so we can send messages with serialized params and interact seamlessly with the state of the FVM actors).
A first pass over all the types and some auxiliary methods required (at the time of writing) to interact from Go with the actors have been implemented in this repo: https://github.com/consensus-shipyard/go-ipc-types. Refer to that repo for updates and additional issues regarding IPC Go types.
Background
In the MVP of IPC, the IPC actors were targeting Filecoin's Legacy-VM. Consequently, the definition of all their params and their state were defined as Go types within the code base. Our newly implemented IPC actors targeting the FVM are written in Rust and through the process of re-writing them some parameters and state types have changed slightly. Also, the fact that we are now using Rust for the actor implementations implies that we need to ensure that the CBOR serialization used for the types is interoperable between Go and Rust
(note: by using
cbor_gen
we should get this by-design, however, silly mistakes can easily be introduced like not flagging aVec<u8>
to be serialized as a slice a bytes and Go trying then to deserialize it as[]uint8
instead of[]byte
).Goal
The goal of this issue is to create a package including all the state and params from the IPC actors to support their integration in the Lotus code base (so we can send messages with serialized params and interact seamlessly with the state of the FVM actors).
Tasks
Go types and
cbor_gen
serialization for:SubnetID
andIPCAddress
)subnet-actor
params and state types.ipc-gateway
params and state types.The text was updated successfully, but these errors were encountered: