Ceramic node to use Helia rather than separate IPFS?

It seems all the examples for getting a Ceramic node (js-ceramic, written in Javascript) to work with an IPFS node talk about the go-ipfs (now kubo) IPFS implementation (written in Go). However, Helia exists as a (seemingly robust?) Javascript implementation of IPFS (https://helia.io/). Is there any initiatives to have js-ceramic just include Helia and have “a Ceramic Node” have IPFS baked-in?

1 Like

No, we have no plans to use Helia at the moment. We’re actually currently working on moving away from Kubo and moving towards a Rust implementation of Ceramic that will utilize the rust implementation of libp2p directly for the things we currently rely on ipfs/kubo for, and will also replace some of the ipfs/libp2p protocols we currently rely on (such as gossipsub) with our own custom libp2p protocols that will be more efficient and scalable for the needs of Ceramic. See CIP-124: Recon (tip synchronization protocol) for more information about our new data synchronization protocol we are in the process of building.

In the long term, as the protocol stabilizes and matures, I could imagine someone building a fully javascript-native implementation of Ceramic that uses js-libp2p and re-implements Recon and any other Ceramic-native protocols in javascript. I could also imagine compiling the Ceramic Rust implementation to WASM so it could be used in browser. Neither of those ideas are a priority for the Ceramic core dev team at the moment though.