Skip to content

A Consensus file system comprises miners and clients (end-user).

Notifications You must be signed in to change notification settings

uttom-akash/distributed-consensus-file-system

Repository files navigation

Consensus File System (CFS)

The Consensus File System (CFS) is a decentralized file system that leverages blockchain technology. It ensures secure, consistent, and fault-tolerant file operations across a distributed network. CFS is composed of miners and clients, working together to maintain consensus and integrity of the file system.


Features

  • Client Operations Submission:
    Clients submit file operations through the CFS library, which abstracts the complexities of interacting with the miner network.

  • Miner Operation Broadcasting:
    Miners broadcast received operations to the entire miner network, ensuring consistent dissemination.

  • Inter-Miner Collaboration:
    Miners help each other propagate operations, improving fault tolerance and resilience.

  • Block Generation and Proof of Work (PoW):
    Miners solve computational challenges (PoW) to generate blocks. On block confirmation, miners are rewarded with coins.

  • Block Dissemination:
    Miners share valid blocks, whether mined locally or received from other miners, ensuring ledger consistency across the network.


Architecture Overview

+-------------------+       +-------------------+  
|      Client       | <---> |       Miner        |  
+-------------------+       +-------------------+  
                                  |  
                                  v  
                      +-----------------------+  
                      |     Miner Network      |  
                      +-----------------------+  


How It Works

Clients Submit Operations

Clients use the CFS library to submit file operations to their connected miners.

Broadcasting Operations

Miners broadcast the received operations to the entire network for consensus.

Mining and Rewards

Miners solve Proof of Work (PoW) challenges, validate operations, and generate new blocks. Successful miners are rewarded with coins.

Propagating Blocks

Valid blocks are propagated across the network to maintain a consistent blockchain ledger.


Getting Started

git clone https://github.com/your-repo/consensus-file-system.git
cd consensus-file-system
go run main.go