input-output-hk / hermes

🏛️ Hermes is a high-availability blockchain voting database that acts as a distributed storage and event processor for voting events, proposals, and actions.
https://input-output-hk.github.io/hermes
Apache License 2.0
14 stars 2 forks source link

🛠️ [TASK] : Port OrbitDB to Rust, and include it as built in functionality in our IPFS integration crate. #298

Open stevenj opened 2 months ago

stevenj commented 2 months ago

Summary

Investigate/Implement OrbitDB as a decentralized DB.

Description

We eventually need a Decentralized DB. One approach is to solve each Decentralized Data storage challenge individually. Another is to use a pre-existing Decentralized DB abstraction. OrbitDB is one such: https://github.com/orbitdb/orbitdb/tree/main

Tasks:

We do not want to provide a HTTP Api, but a more traditional API that applications can use directly.

It would be useful to be able to be interoperable with the JS and Golang version if possible.

There is also a Golang and Python port which might be helpful to inspect during the porting process. But the JS port and specifications should be considered the definitive source of truth. See: