Skip to content

glic3rinu/basefs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

basefs

Basically Available, Soft state, Eventually Consistent File System

BaseFS is a peer-to-peer distributed filesystem for cloud configuration, designed to operate under the network conditions and administrative requirements commonly found on Wireless Community Networks. Nodes do not need to trust each other, the core data-structure is an append-only specialized Merkle tree with monotonic and cryptographic properties that allows for efficient and secure verification of data sent by untrusted nodes. Decentralized write permission is achieve using a hierarchy-based public key infrastructure built into the Merkle tree, allowing for automatic resolution of write conflicts based on proof-of-authority. Finally, a gossip layer provides scalable change dissemination and group membership, with time and load constant relative to group size. With no single point-of-failure, BaseFS can provide levels of availability and scalability never seen before on a cloud configuration tool

Quick start

  1. Installation
$ sudo pip3 install basefs
  1. Bootstrap and mount
# Create new key
$ basefs genkey

# Createw new filesystem
$ basefs bootstrap myfs -i <ip>

# Mount
$ mkdir ~/myfs
$ basefs mount myfs ~/myfs
  1. Distribute
# Get the log from another machine
$ basefs get myfs <ip>
$ mkdir ~/myfs
$ basefs mount myfs ~/myfs
  1. See all possibilities
$ basefs help
Usage: basefs COMMAND [arg...]
       basefs [ --help | -v | --version ]

Basically Available, Soft state, Eventually consistent File System.

Commands:
    mount       Mount an existing filesystem
    run         Run an existing filesystem without mounting it (testing)
    bootstrap   Create a new self-contained filesystem
    genkey      Generate a new EC private key
    keys        List keys and their directories
    grant       Grant key write permission
    revoke      Revoke key write permission
    list        List all available logs
    show        Show a log file using a tree representation
    revert      Revert object to previous state, 'log' command lists all revisions
    blocks      Block state
    members     List cluster members
    serf        Serf RPC Command proxy
    get         Get log from peer address
    installserf Download and install Serf
    resources   Display BaseFS resource consumption in real-time
    help

Run 'basefs COMMAND --help' for more information on a command

About

Basically Available, Soft state, Eventually consistent File System

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published