OpenViSTAI · Agents · Blockchain · Crypto
Menu
Storage & Data Availability

Dbfs

Dbfs is an experimental distributed file-storage service built in Elixir that uses a blockchain and is designed for private infrastructure. Its backend stores data, performs consensus among nodes and exposes an API for clients; a separate React web client provides file operations and connected-node statistics.

Independent OpenViST project profile, based on linked sources.

Dbfs — OpenViST project profile in Storage & Data Availability.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use Dbfs as a learning or code-study project when exploring blockchain-based file storage in Elixir. Its README explicitly advises against production use.

Who it is for

  • Developers studying blockchain internals through an Elixir project.
  • Readers exploring how a private, multi-node blockchain might be applied to file storage.

Documented uses

  • Explore a simple blockchain-backed approach to distributed file storage.
  • Inspect an architecture in which an Elixir backend handles storage and node consensus while a React client provides operations and node statistics.
  • Prepare the documented backend, frontend and example node databases for further experimentation.
Before you choose

Requirements & limits

The repository is public and identifies the code as MIT-licensed.

  • The project calls itself a very naïve experiment and says it should not be used in production.
  • The documented stack uses older, specifically listed dependency versions: Erlang/OTP 20.1, Elixir 1.5.2, PostgreSQL 9.4, Node.js 9.6.1 and Ruby 2.3.3.
  • The README says the author does not plan further work on the project.
  • File uploads and downloads are described as requiring encryption with a private key.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Set up the Dbfs backend and web client

Install the documented backend and frontend dependencies and prepare the project components.

Before you start

  • Erlang/OTP 20.1
  • Elixir 1.5.2
  • PostgreSQL 9.4
  • Node.js 9.6.1 and Yarn
  • Ruby 2.3.3 for Sass

Steps

  1. Clone the Dbfs backend repository, enter its directory, and run mix deps.get followed by mix compile.

  2. Clone the separate dbfs-web frontend repository and run yarn install in its directory.

Expected outcome

The documented backend dependencies are fetched and compiled, and the frontend dependencies are installed.

Guide limitations

  • These steps cover setup only, not starting or validating the application.
  • The project is experimental and its README says it should not be used in production.
Source-based practical guide

Prepare the documented node databases

Create and initialize the database instances for the three example nodes.

Before you start

  • The Dbfs backend and its documented dependencies
  • A sys.config that defines the example nodes

Steps

  1. From the backend directory, run NODE=newyork PRIMARY=1 mix do ecto.create, ecto.migrate, ecto.seed for the first node.

  2. Run NODE=london PRIMARY=0 mix do ecto.create, ecto.migrate, ecto.seed for the second node.

  3. Run NODE=singapore PRIMARY=0 mix do ecto.create, ecto.migrate, ecto.seed for the third node.

Expected outcome

The README's example database instances are created and seeded, with the first node designated to initialize the blockchain database.

Guide limitations

  • The README's next stage is to start the backend nodes; this guide does not cover that stage.
  • For nodes on separate machines, setup is required on each and the hosts file must map the configured domains to their IP addresses.
  • The project is experimental and its README says it should not be used in production.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
18 October 2026
Original website title
sheharyarn/dbfs · Official homepage title · retained in its source language