Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zachisgit/p2pdb

ZeroConfig Object Storage DB
https://github.com/zachisgit/p2pdb

libp2p object-storage p2p rust-lang

Last synced: about 1 month ago
JSON representation

ZeroConfig Object Storage DB

Awesome Lists containing this project

README

        

# p2pdb

Object Database written in Rust using libp2p.

## First Steps

- Create rendezvous mechanism to automate node localization
- Create identity for peers (probably libp2p peerId + a rsa (or similar) keyPair for new node authentication)
* maybe just a shared secret among nodes that they hash with the authenticator nodes peerId => sha512(secretToken + authPeerId)
- TestCoreEngine control layer for a shared FileIndex
* explore the fill first, reduce later redundancy solution
-> all nodes replicate all files
-> if a node runs out of storage it removes old files that it knows at least Rth (redundency threshold) nodes have a copy off
-> delete old file
-> write new file
-> if a node can't remove any files without risking the cluster going below Rth copies of another object
-> send alert on PubSub channel to all other nodes that you failed to allocate a new file to your list
-> nodes publish local FileIndex and therefore all nodes know about the missing write from one node
-> interval triggers internal accounting and FileIndex publishing (at least FileIndex changes should be published)
- TestStorageEngine local storage manager and accountant
* responds to events
* sends notifications/commands to command core engine
- TestCli?