MetaDisk is a filehost web app, that allows anyone to upload files via a web interface or API. Files are hashed and uploaded to public file hosting. Using the hashes a node can look up the information of where that file was stored using the Florincoin blockchain. This makes a file uploaded to MetaDisk accessible through any node in the network.
This project depends on several other projects:
-
accounts (Optional) - Library for managing bandwidth on shared MetaDisk nodes. Allows users to buy, earn, or receive their bandwidth.
-
cloud-manager contains most of the file handling logic. It keeps track of all the uploaded files, keeps track of the files present in local cache, and handles database serialization.
-
file-encryptor is an encryption package that implements convergent encryption using HMAC-SHA256 and AES128-CTR.
-
metachains is a wrapper for the Florincoin client, using JSON RPC. It also contains a synchronization class, which allows one to synchronize data from and to the blockchain.
-
plowshare-wrapper provides a python interface to upload and download files from popular file hosting sites. It is a python wrapper of the plowshare tool.
-
web-core is the backend server that powers MetaDisk. It provides a JSON API web service, and the daemons to synchronize files to the cloud hosting services and to the blockchain.
MetaDisk, this project, provides a web interface to web-core, allowing you to upload files and check the server status regarding bandwidth, disk usage, and synchronization state.
Check INSTALL.md for installation instructions. We use lunchbox for automated deployment.
All API documentation is contained in MetaDisk's web-core repo.