Skip to main content

Overview

CityRollup uses a massively parallel proving system that distributes proving tasks to workers who generate proofs to complete the block.

Network Architecture​

Network Architecture

City Rollup's network architecture makes use of several different types of distributed nodes:

  • RPC API Servers (Many)
    • The public facing servers users submit transactions to and can query for information such as user information (balance/public key)
  • Blockchain Data API (Many)
    • Internal, IP filtered API servers that RPC API nodes use to query directly from the blockchain data store (co-located on the same server as the orchestrator)
  • Orchestrator (One Per Rollup)
    • A queue processor that processes the transactions and state transitions for each block, as well as planning the jobs for proof workers.
    • At the end of each block, orchestrators also assemble the final transaction data for the block spend and submit to Dogecoin
  • Proof Workers (Many)
    • Nodes which complete ZK proving jobs from the orchestrator
  • Redis Cluster
    • City Rollup uses redis as a mempool, proof store and as a message queue to dispatch jobs to worker nodes.

Massively Parallel Proving​

City Rollup utilizes recursive proofs to generate block proofs in parallel:

In the animation above, you can see how proofs are proved in parallel to generate a single block transition proof in O(log(n)) time.