How to run local off-line ceramic nodes (with ganache - or hardhat network)?

@stuR so if you’re only trying to do some local testing as a builder on ceramic, we use an in memory network in our samples (and you don’t need to run CAS etc). Check out our wheel cli that can be used to spin up a ceramic node using a sample app, if interested.

As it sounds like you’re interested in running a network and doing some more complex tests, I’d suggest you take a look at our Keramik project. It’s tooling we use to deploy a Kubernetes cluster of a Ceramic network for testing. It includes all the pieces: ceramic, IPFS, CAS, postgres, ganache, etc.

You would want to use kubo (go IPFS). We’re currently focused on benchmarking our upcoming rust-ceramic release with the recon protocol so the defaults aren’t quite what you’d want. Here is a sample yaml file you could use to define a network that would create two ceramic nodes as peers using a local CAS with mocked dependencies. The keramik docs should have some information about configuration options and how to run things.

apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
  name: small
spec:
  replicas: 2
  cas:
    ipfs:
      go: {} 
  ceramic:
    - ipfs:
        go: {} 
      env:
        CERAMIC_PUBSUB_QPS_LIMIT: "1000"

I will take a look at the dockerfile you posted… there might be a couple variables to set that will allow you do it that way, but I think Keramik will be a much simpler path to running an offline network.

3 Likes