/bfs

Blockchain based filesystem

Primary LanguageC++

Blockchain based filesystem

Table of contents

Installing

Dependencies

Depends on the next C++ libraries:

  • Boost
  • Crypto++
  • Curl
  • FUSE

For Ubuntu:

sudo apt install libboost-all-dev libcrypto++-dev libcurl4-gnutls-dev libfuse-dev

Build

mkdir build
cd build
cmake .. && make

Set up local blockchain

Check in wiki pages, how to set up local blockchain. Use config.json for configuring local blockchain.

Usage

Deploying Smart Contracts

Firstly, use Remix (it is important to use http version, otherwise geth/aleth won't work) to compile solidity code(importantly with optimization enabled) and publish for local blockchain. Working options in remix:

Then, save somewhere the address of Memory Manager.

Mount filesystem

./BFS <directory> <YOUR_ACCOUNT_ADDRESS> <MEMORY_MANAGER_ADDRESS>

Example:

./BFS mnt/ "0x00c469eee8b9bc1a331070be0e5814a0bc6f902e" "0xdd8ac7f9f50e465bac369dffabc978ec04183825"

TODO:

  • Finish FUSE driver
    • Fix creating files and directories
    • Fix sometimes problems with writing to a file
  • Add permission support using Zero knowledge
  • Add deploying contract using C++
  • Add tracing transactions, so error message from require can be returned in C++
  • Add memory storage optmizations in Solidity

Documentation

All documentation can be found in the wiki pages.

Team

Roman Milishchuk Hermann Yavorskyi Yurii Yelisieiev
image
RomanMilishchuk wardady YuraYelisieiev