Skip to main content

Networks

Information about the default Ceramic networks

Overview


Networks are collections of Ceramic nodes that share specific configurations and communicate over dedicated libp2p pubsub topics. Networks are disjoint from one another; streams that exist on one network are not discoverable or usable on another.

These pubsub topics are used to relay all messages for the defined networking sub protocols.

All Networks


An overview of the various Ceramic networks available today:

NameNetwork IDCeramic Pubsub TopicTimestamp AuthorityType
Mainnetmainnet/ceramic/mainnetEthereum Mainnet (EIP155:1)Public
Clay Testnettestnet-clay/ceramic/testnet-clayEthereum Gnosis ChainPublic
Dev Unstabledev-unstable/ceramic/dev-unstableEthereum Goerli TestnetPublic
Locallocal/ceramic/local-$(randomNumber)Ethereum by Truffle GanachePrivate
In-memoryinmemoryNonePrivate
note

There is currently a proposal to decompose each network into multiple pubsub topics for scalability, the pubsub topics will remain prefixed by the network identifier /ceramic/<network>/<sep> see CIP-120

Public networks


Ceramic has three public networks that can be used when building applications:

  • Mainnet
  • Testnet Clay
  • Dev Unstable

Mainnet

Mainnet is the main public network used for production deployments on Ceramic. Ceramic's mainnet nodes communicate over the dedicated /ceramic/mainnet libp2p pubsub topic and use Ethereum's mainnet blockchain (EIP155:1) for generating timestamps used in time events for streams.

Clay Testnet

Clay Testnet is a public Ceramic network used by the community for application prototyping, development, and testing purposes. Ceramic core devs also use Clay for testing official protocol release candidates. While we aim to maintain a high level of quality on the Clay testnet that mirrors the expectations of Mainnet as closely as possible, ultimately the reliability, performance, and stability guarantees of the Clay network are lower than that of Mainnet. Because of this, the Clay network should not be used for applications in production.

Clay nodes communicate over the dedicated /ceramic/testnet-clay libp2p pubsub topic and use Ethereum's Gnosis blockchain for generating timestamps used in time events for streams.

Dev Unstable

Dev Unstable is a public Ceramic network used by Ceramic core protocol developers for testing new protocol features and the most recent commits on the develop branch of js-ceramic. It should be considered unstable and highly experimental; only use this network if you want to test the most cutting edge features, but expect issues.

Dev Unstable nodes communicate over the dedicated /ceramic/dev-unstable libp2p pubsub topic and use Ethereum's Goerli testnet blockchains for generating timestamps used in time events for streams.

Private Networks


You can prototype applications on Ceramic by running the protocol in a local environment completely disconnected from other public nodes. Here "private" indicates that it is independent of the mainnet network, but does not imply any confidentiality guarantees. This is still public data.

Local

Local is a private test network used for the local development of Ceramic applications. Nodes connected to the same local network communicate over a randomly-generated libp2p topic /ceramic/local-$(randomNumber) and use a local Ethereum blockchain provided by Truffle's Ganache for generating timestamps used in time events for streams.

Examples


TypeScript Definitions

enum Networks {
MAINNET = 'mainnet', // The prod public network
TESTNET_CLAY = 'testnet-clay', // Should act like mainnet to test apps
DEV_UNSTABLE = 'dev-unstable', // May diverge from mainnet to test Ceramic
LOCAL = 'local', // local development and testing
INMEMORY = 'inmemory', // local development and testing
}