☁️
Zus Docs
  • About Züs
  • System
    • Providers and Services
      • Miner
      • Sharder
      • Blobber
      • Validator
      • Authorizer
      • Node Locator (0DNS)
    • Storage
      • Architecture and Data Management
      • Protocol
        • Allocations
        • Reference Objects
        • Challenges
        • Write Markers
          • Chain Hashing
          • Two Commit
        • Blobber Repair Protocol
      • ZS3 Server
        • Backup, Recovery and Replication
        • Encryption and Compression
        • S3FS Setup and Usage
        • Backup & Recovery with Restic on Blimp + ZS3 Server
        • Backup & Recovery with Veeam on Blimp + ZS3 Server
      • File Operations
        • Upload
        • Download
        • File Sharing
        • Partial Error Recovery
        • Streaming
        • Rent a Blobber
    • Smart Contracts
      • Storage S.C.
      • Miner S.C.
      • ZCN S.C.
      • ERC-20 S.C.s
      • Bridge Protocol
    • Blockchain & Consensus
      • Entities
    • User Authentication and Wallet Management System
      • OKTA Integration
      • Key Management System (KMS)
  • APIs
    • 0DNS API
    • JS API
    • Mobile API
  • CLIs
    • Storage CLI
      • Quickstart
      • Configuring the tool
    • Wallet CLI
      • Wallet Configuration
      • Quickstart
      • Configuring the tool
  • SDKs
    • Go SDK
      • GO SDK Microservices
    • JS SDK
  • Tokenomics
    • Staking
    • Reward & Penalty
  • ✨Züs Apps
    • 🗝️Vult
      • Getting Started
        • Web
        • Mobile
      • Vult AI
        • Batch Processing
        • Memory Retention
        • Technical Implementation
        • Architecture Overview
      • Login / Register
      • File Management Pages
      • File Sharing
      • Storage Management Dashboard
      • Storage Maintenance and Troubleshooting
      • Züs Subscription
      • Wallet Management
      • Refer a friend
      • Settings
    • 🏗️Blimp
      • Getting Started
      • Login / Register
      • Configure Storage
        • Create Standard Storage Allocation
        • Create Enterprise Allocation
        • Create S3 Server Allocation
        • Create Cloud Migration Allocation
        • Allocation Maintenance and Troubleshooting
      • File Management Pages
      • File Sharing
      • Manage Allocations
      • Upgrade Storage
      • Blimp Vault
      • Refer a friend
      • Settings
      • Launching ZS3 Server
      • Using CLI to backup files into Blimp + ZS3 Server
    • 🏠Chimney
      • Getting Started
      • Login / Register
      • Create New Deployment
      • Manage Your Deployments
      • Homepage
      • Staking Dashboard
      • Rank Dashboard
      • Monitor Dashboard
      • Stats Dashboard
      • Logs Dashboard
      • Wallet Dashboard
      • Operations on your Deployments
      • Restricted Blobbers
      • Settings
        • Manage Profile
        • Wallet Settings
        • Update Blobber Settings
        • Update Blobber Version
        • Refer a friend
        • Help
    • 🌐Atlus
      • Getting Started
      • Home page
      • Service Providers Page
      • Charts Page
        • Market Charts
        • Network Charts
        • Storage Charts
      • Blockchain Page
      • Server Map Page
      • Storage Explainer Page
      • Details Pages
        • Block Details Page
        • Transaction Details Page
        • Wallet Details Page
        • Miner Details Page
        • Sharder Details Page
        • Blobber Details Page
        • Validator Details Page
        • Authorizer Details Page
        • Allocation Details Page
      • Appendix: Common Components
    • ⚡Bolt
      • Getting Started
        • Web
        • Mobile
      • Login / Register
      • Sign In with external wallet
      • Staking Dashboard
      • Staking/Unstaking a provider
      • Claiming Rewards
      • Send/Receive ZCN tokens
      • Buy ZCN
      • Deposit/Withdraw ZCN tokens
      • Activity Dashboard
      • Refer a friend
      • Settings
  • Releases
    • Hardfork
Powered by GitBook
On this page
  • Core responsibilities of the Sharder
  • Logical components of the Sharder Process
  • The Sharder HTTP API
  • Data stored by the Sharder
  • Requirements libraries for the Sharder process environment
  1. System
  2. Providers and Services

Sharder

Details on the Sharder, the block persistence manager

PreviousMinerNextBlobber

Last updated 12 months ago

Sharders are the providers responsible for persisting the blocks of the blockchain in the their local filesystem as well as the data model, they also provide APIs to access some data from the network data model.

Core responsibilities of the Sharder

  • Store the blocks of the blockchain persistently.

  • Store and update the network data model in a relational database (currently Postgres).

  • Generation and persistence of historical data of some relations of the network data model, which is used in graphing the change of some data with time.

  • Expose an HTTP API for external clients to get information about the network, especially statuses of the transactions.

Logical components of the Sharder Process

Block Finalization Workers

Workers responsible for finalizing blocks by executing the transactions, and generating events that will be used to update EventDB. They also run those events and update the network data model in EventDB.

Communication Workers (handlers)

Those are handlers of Node-to-Node (N2N) communication endpoint among miners and sharders. Those are responsible for sending/receiving different kinds of messages to and from the sharder among the Active Set.

Health check worker

A worker responsible for the heartbeats of the sharder which are signs of the sharder liveness. It works by generating a health check transaction periodically and communicate it with the other Active Set providers.

The Sharder HTTP API

Data stored by the Sharder

  1. Network Data Model: These are all the data related to and changed by executing users' transactions against the smart contracts. It's persisted in a relational database often referred to as "EventDB", as its data depends on the events generated while executing the smart contracts.

  2. Blocks of the blockchain: It's the sharders' main task to store and persist all the blocks generated by the network since the genesis. They're stored efficiently in the local filesystem of the sharders, and distributed among the different sharders of the system.

  3. Some data is cached for fast access using rocksdb.

Requirements libraries for the Sharder process environment

The Sharder process requires the following libraries to exist in any environment it runs on:

The Sharder Process consists of multiple workers (technically, lightweight execution threads or in the Go literature). Following are the most important workers running the miner operations

The sharder exposes an API with endpoints used to view data from the network data model. This API is very useful for many clients that use the network. It will be discussed in more details in the page.

: It's the embedded in-memory key-value store used by the sharder to store some cached data for fast access.

: Two libraries used for cryptographic tasks.

goroutines
Sharder API
Rocksdb
BLS and MCL
Sharder docker-compose-based deployment breakdown