IPC subnets are organized as a tree and periodically checkpoint their state onto their parent to leverage their security.
In IPC, subnets are organized in a hierarchy, with each subnet having its consensus instance, cryptoeconomic rules, and agreement algorithm. This design increases the network’s capacity and accommodates new applications with varying consensus requirements.
The IPC Agent is the entry point to interacting with IPC. It is a client application that provides a simple and easy-to-use interface to interact with IPC as a user and run all the processes required to operate a subnet. The agent acts as an orchestrator, connecting to one blockchain node in each relevant subnet. It also handles the entire IPC workflow, including subnet creation, cross-net message passing, and checkpointing.
IPC relies on two actors, the IPC Subnet Actor (ISA) and the IPC Gateway Actor (IGA), which are instantiated in each subnet and provide convenience and governance functions.
The IGA is an actor that contains all IPC-related information and logic associated with a subnet that needs to be replicated within the subnet. The ISA is the IGA’s parent-side counterpart; that is, it is deployed to a subnet’s parent and contains all data and logic associated with the particular child subnet.
Eudico is a modularized implementation of Lotus, itself an implementation of the Filecoin Distributed Storage Network. It is designed with the flexibility to support different use cases and, particularly relevant to IPC, the ability to load different consensus protocols.
In our architecture, Eudico is used as the blockchain node. A separate instance of Eudico is run for each subnet in which a given node participates.