intOS-dfs

module
v0.0.0-...-6333696 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 21, 2020 License: Apache-2.0

README

intOS-dfs

The decentralised file system (dfs) is a file system built for the internetOS (intOS). This works as a thin layer over Swarm (https://ethswarm.org/).

dfs can be used as follows

  1. As a standalone, decentralised, personal data drive over the internet.
  2. In conjunction with intOS-compute layer to work as a data provider for large scale parallel data processing engine over the internet.
User

The first screen invites the user to create or restore an account

The first step in dfs is to create a user. Every user is associated with a 12 word mnemonic based hd wallet. This wallet is passwod protected and stored in the datadir. whenever a user created a pod for himself, a new key pair is created using this mnemonic. A user can use this mnemonic and import their account in any device and instantly see all their pods.

What is a pod?

A pod is a personal drive created by a user in intOS-dfs. It is used to store files and related metadata in a decentralised fashion. A pod is always under the control of the user who created it. A user can create store any number of files or directories in a pod. The user can share files in his pod with any other user just like in other centralised drives like dropbox. Not only users, a pod can be used by decentralised applications (DApp's) to store data related to that user.

The basic storage unit in dfs is a pod. A user can create multiple pods and use it to organise their data. for ex: Personal-Pod, Applications-Pod etc.

How to run dfs?
How to build dfs?
  • yarn build (will build the frontend and copy it over to the go project)
  • make binary
HTTP APIs
Comands in dfs

dfs >>> <command> where, <command> is listed below

  • user <new> (user-name) - create a new user and login as that user
  • user <del> (user-name) - deletes a already created user
  • user <login> (user-name) - login as a given user
  • user <logout> (user-name) - logout as user
  • user <ls> - lists all the user present in this instance
  • pod <new> (pod-name) - create a new pod and login to that pod
  • pod <del> (pod-name) - deletes a already created pod
  • pod <login> (pod-name) - login to a already created pod
  • pod <stat> (pod-name) - display meta information about a pod
  • pod <sync> (pod-name) - sync the contents of a logged in pod from Swarm
  • pod <logout> - logout of a logged in pod
  • pod <ls> - lists all the pods created for this account
  • cd <directory name>
  • ls
  • copyToLocal <source file in pod, destination directory in local fs>
  • copyFromLocal <source file in local fs, destination directory in pod, block size in MB>
  • mkdir <directory name>
  • rmdir <directory name>
  • rm <file name> = pwd - show present working directory
  • head <no of lines>
  • cat - stream the file to stdout
  • stat <file name or directory name> - shows the information about a file or directory
  • help - display this help
  • exit - exits from the prompt

Directories

Path Synopsis
cmd
dfs
pkg
api
dfs
dir
feed/lookup
Package lookup defines feed lookup algorithms and provides tools to place updates so they can be found
Package lookup defines feed lookup algorithms and provides tools to place updates so they can be found
pod
web

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL