Ceramic Nodes in Production: Example Costs + Scenarios

Running a Ceramic node in a production environment involves several key components. This article aims to provide an overview of the necessary resources and cost estimates for deploying a Ceramic node in the cloud. While we only showcased two specific providers for the services required (DigitalOcean and QuickNode), we hope these cost examples given the hypothetical scenarios we walk through will help give you a general idea of cost.

Components Required for a Ceramic Node

There are several sub-services to consider when running a Ceramic node in production, each serving different functions. As such, you will need:

1. Resources for JS-Ceramic

  • Functionality: Tracks and stores the latest tips for pinned streams, caches stream state, provides the HTTP API service for connected clients to read, and communicates with the Ceramic Anchor Service (CAS) for blockchain anchoring and timestamping.

2. Resources for Ceramic-One

  • Functionality: These nodes store the actual data and coordinate with network participants.

3. Resources for Postgres Database

  • Functionality: Required for indexing data.

4. Ethereum RPC Node API Access

  • Functionality: Required to validate CAS anchors.

5. Ceramic Anchor Service (CAS) Access

  • Current Status: Anchors Ceramic protocol proofs to the blockchain. This service is currently funded by 3box Labs, however, eventually, this function will be provided by node operators and with some expected cost.

Given the services you’ll need above, the Ceramic team has tested and organized a set of “baseline” configuration settings we recommend when setting up your node. However, seeing as these are baseline, or average, you may need to increase resourcing accordingly based on your actual usage:

JS-Ceramic

  • 2 vCPU
  • 4 GB memory
  • 10 GB disk for state

Ceramic-One

  • 4 vCPU
  • 4 GB memory
  • 100 GB disk for storage

Postgres Database

  • 2 vCPU
  • 4 GB memory
  • 10 GB disk for indexing

Given the services you’ll need above, the Ceramic team has tested and organized a set of “High Traffic” configuration settings we recommend when setting up your node. However, seeing as these are baseline, or average, you may need to increase resourcing accordingly based on your actual usage:

JS-Ceramic

  • 2 vCPU
  • 4 GB memory
  • 10 GB disk for state
    • 10,000 IOPs

Ceramic-One

  • 6 vCPU
  • 8 GB memory
  • 500 GB disk for storage
    • 15,000 IOPs

Postgres Database

  • 2 vCPU
  • 4 GB memory
  • 10 GB disk for indexing

High Availability Configuration

For high availability, an additional node can be configured to sync data and handle dynamic read/write tasks, thus doubling the cost of a single-node setup.

Ethereum RPC Node Endpoint Costs

We’ve also chosen QuickNode to provide several RPC cost examples :

  • QuickNode Base Plan: $10/month (100 million API credits, 2 endpoints, 550 credits/second)
  • QuickNode Middle Plan: $49/month (500 million API credits, 10 endpoints, 2,500 credits/second)
  • QuickNode Premium Plan: $299/month (3 billion API credits, 20 endpoints, 6,000 credits/second)

Hypothetical Scenarios and Cost Estimates

Let’s walk through three hypothetical need scenarios and use these to help estimate our cost structure:

Application A: Small User Base

  • User Base: 10,000 monthly active users
  • Query Behavior: 30% writes, 70% reads
  • Availability: Low-priority
  • Configuration: Baseline resources
  • Cost Estimate:
    • Node: $96/month
    • Ethereum RPC: $10/month
    • Total: $106/month

Application B: Write-Heavy Mid-Sized Application

  • User Base: 100,000-500,000 monthly active users
  • Query Behavior: 70% writes, 30% reads
  • Availability: High priority (2-node setup)
  • Configuration: High Traffic
  • Cost Estimate:
    • Nodes (2x): $918/month (2x $459)
    • Ethereum RPC: $49/month
    • Total: $967/month

Example GCP budget

Other Considerations

Additional cloud costs must be considered for networking - these costs will vary based on traffic patterns. Most cloud providers offer free traffic ingress to the nodes but will charge for egress, or data leaving the nodes.

Running a Ceramic node in production involves various components and resources, each contributing to the overall cost. By understanding the necessary configurations and associated costs, developers can make informed decisions tailored to their application's needs and user base. High availability setups and resource over-provisioning can significantly impact costs, especially for mid-sized applications with high traffic and write volumes.