IPFS
The IPFS behavior used by CAS and Ceramic can be customized using the same IPFS spec.
Rust IPFS
Ceramic
Example network config that uses Rust based IPFS (i.e. ceramic-one) with its defaults for Ceramic.
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: example-vanilla-ceramic-one
spec:
replicas: 5
ceramic:
- ipfs:
rust: {}
Example network config that uses Rust based IPFS (i.e. ceramic-one) with a specific image for Ceramic.
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: example-custom-ceramic-one
spec:
replicas: 5
ceramic:
- ipfs:
rust:
image: rust-ceramic/ceramic-one:dev
imagePullPolicy: IfNotPresent
CAS
Example network config that uses Rust based IPFS (i.e. ceramic-one) with a specific image for CAS.
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: example-vanilla-ceramic-one
spec:
replicas: 5
cas:
ipfs:
rust: {}
Example network config that uses Rust based IPFS (i.e. ceramic-one) with a specific image for CAS.
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: example-custom-ceramic-one
spec:
replicas: 5
cas:
ipfs:
rust:
image: rust-ceramic/ceramic-one:dev
imagePullPolicy: IfNotPresent
Kubo IPFS
Ceramic
Example network config that uses Go based IPFS (i.e. Kubo) with its defaults for Ceramic.
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: example-vanilla-kubo
spec:
replicas: 5
ceramic:
- ipfs:
go: {}
Example network config that uses Go based IPFS (i.e. Kubo) with a specific image for Ceramic.
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: example-custom-kubo
spec:
replicas: 5
ceramic:
- ipfs:
go:
image: ceramicnetwork/go-ipfs-daemon:develop
imagePullPolicy: IfNotPresent
Example network config that uses Go based IPFS (i.e. Kubo) with extra configuration commands for Ceramic.
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: example-custom-kubo
spec:
replicas: 5
ceramic:
- ipfs:
go:
image: ceramicnetwork/go-ipfs-daemon:develop
imagePullPolicy: IfNotPresent
commands:
- ipfs config --json Swarm.RelayClient.Enabled false
CAS
Example network config that uses Go based IPFS (i.e. Kubo) with its defaults for CAS.
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: example-vanilla-kubo
spec:
replicas: 5
cas:
ipfs:
go: {}
Example network config that uses Go based IPFS (i.e. Kubo) with a specific image for CAS.
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: example-custom-kubo
spec:
replicas: 5
cas:
ipfs:
go:
image: ceramicnetwork/go-ipfs-daemon:develop
imagePullPolicy: IfNotPresent
Example network config that uses Go based IPFS (i.e. Kubo) with extra configuration commands for CAS.
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: example-custom-kubo
spec:
replicas: 5
cas:
ipfs:
go:
image: ceramicnetwork/go-ipfs-daemon:develop
imagePullPolicy: IfNotPresent
commands:
- ipfs config --json Swarm.RelayClient.Enabled false
Migration from Kubo to Ceramic One
A Kubo blockstore can be migrated to Ceramic One by specifying the migration command in the IPFS configuration.
Example network config that uses Go based IPFS (i.e. Kubo) with its defaults for Ceramic (including a default
blockstore path of /data/ipfs
) and the Ceramic network set to dev-unstable
.
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: basic-network
spec:
replicas: 5
ceramic:
- ipfs:
go: {}
networkType: dev-unstable
Example network config that uses Ceramic One and specifies what migration command to run before starting up the node.
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: basic-network
spec:
replicas: 5
ceramic:
- ipfs:
rust:
migrationCmd:
- from-ipfs
- -i
- /data/ipfs/blocks
- -o
- /data/ipfs/
- --network
- dev-unstable