IPC repo and ipc-cli

Overview and installation of the ipc repo.

In this step we will download and build the bitcoinscalinglabs/ipc repo. This is a fork of the standard (Filecoin-based) IPC repo, hence they share some functionality and dependencies. For information about what ipc-cli is and how to use it, see the ipc docs.

Step 1: Download and build the ipc repo

Install the basic requirements for IPC

  • Install system packages: sudo apt install build-essential clang cmake pkg-config libssl-dev protobuf-compiler git curl.

  • Install Rust. See instructions.

  • Install cargo-make: cargo install --force cargo-make.

  • Install Docker. See instructions.

  • Install Node.js. See instructions.

  • Install Foundry. See instructions.

Also install the following dependencies (details)

sudo apt update && sudo apt install build-essential libssl-dev mesa-opencl-icd ocl-icd-opencl-dev gcc git bzr jq pkg-config curl clang hwloc libhwloc-dev wget ca-certificates gnupg -y

Building

NOTE: this step may take a while to compile, depending on OS version and hardware build

# make sure that rust has the wasm32 target & use stable version of rustc
rustup target add wasm32-unknown-unknown
rustup default stable

# add your user to the docker group
sudo usermod -aG docker $USER && newgrp docker

# clone this repo and build
git clone git@github.com:bitcoinscalinglabs/ipc.git
cd ipc
git checkout bitcoin
make

After following the instructions, you should now have the following binaries available:

./target/release/ipc-cli --version
./target/release/fendermint --version

Add the binaries to path

For ease of use we can make aliases for these binaries. You can use

sudo ln -sf "$(pwd)/target/release/ipc-cli" /usr/local/bin/ipc-cli
sudo ln -sf "$(pwd)/target/release/fendermint" /usr/local/bin/fendermint

Build docker images

One final thing is to build the fendermint local docker image:

# in ipc repo, navigate to fendermint subdirectory
cd fendermint
# make sure docker is running
make docker-build
# wait a few minutes

To verify the image is available:

docker images | grep fendermint
# fendermint    latest    c1db79694970   4 seconds ago     236MB

Last updated