Fendermint
IPC implementation atop CometBFT
Install / Use
/learn @consensus-shipyard/FendermintREADME
[!IMPORTANT]
This repo has been archived and its code merged into https://github.com/consensus-shipyard/ipc
Fendermint
Fendermint is an effort to implement IPC with Tendermint Core. There is a preliminary roadmap that lays out the tasks towards implementing subnets that run IPLD and FVM under the Filecoin rootnet, sharing components with the Lotus/Eudico based implementation.
Quick Start
Docs
Please have a look in the docs to see an overview of the project, how to run the components, and previous demos.
IPC
Fendermint is built with support for IPC by design. If you are looking to deploy the infrastructure Fendermint-based IPC subnet, refer to the IPC main repo, or have a look at the IPC infrastructure docs.
Building from source
Linux. Install the following pre-requisites (instructions for Ubuntu):
- Install system packages:
sudo apt install build-essential clang cmake pkg-config libssl-dev protobuf-compiler. - Install Rust. See instructions.
- Install cargo-make:
cargo install --force cargo-make. - Install Foundry. See instructions.
- Install Docker (if you intend to build Docker images). See instructions.
Testing
The following command runs unit and integration tests:
make test
while the next command builds docker images and runs an end-to-end test using the SimpleCoin and the ethers examples:
make e2e
IPC Solidity Actors
We generate Rust bindings for the Solidity actors we need to invoke from the ipc-solidity-actors library, some of which are deployed during the genesis process. The bindings live in ipc_actors, and are generated automatically during the build, or with the following command:
make ipc-actors-abi
To run it, you will have to install forge.
The list of contracts for which we generate Rust bindings are in build.rs and needs to be maintained by hand, for example if a new "diamond facet" is added to a contract, it has to be added here. Diamond facets also have to be added manually in ipc.rs where the contracts which need to be deployed during genesis are described. These facets cannot be divined from the ABI description, so they have to be maintained explicitly.
To test whether the genesis process works, we can run the following unit test:
cargo test --release -p fendermint_vm_interpreter load_genesis
Pre-built Docker Image
The CI build publishes a Docker image to Github Container Registry upon a successful build on the main branch. This is the same image as the one used in the End-to-End tests; it contains the built-in actor bundle and IPC Solidity actors, ready to be deployed during genesis.
The image can be pulled with the following command:
docker pull ghcr.io/consensus-shipyard/fendermint:latest
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
