RipDB is the fastest way to store JSON in a decentralized way. It can be used as a lightweight, decentralized alternative to traditional SQL databases. Under the hood, RIP just Redis backed by IPFS (decentralized storage). Redis + IPFS = RIP = 😍
Hello Product Hunt!
I built RipDB as a hackathon project a few months ago because I was looking for a lightweight alternative to traditional SQL databases. I've been using it in production for another project since and enjoying it, and figured I'd share with the community.
Here is a bit about my motivation for the project:
The SQL database is a powerful tool unrivaled for storing and querying relational data.
BUT, I believe most dapps can live without a traditional SQL database in favor of something more light weight and decentralized.
Some problems with setting up a DB for your dapp
1. There are already many great services which index blockchain data (why reinvent the wheel?)
2. DBs are expensive to host
3. Migrations are often a pain
4. They tend to be centralized / treasure troves for attackers
5. They usually don't give users provenance over their data
6. Encryption / key management is a pain
7. Many web3 developers choose to store their data as JSON directly on IPFS rather than a traditional DB, but IPFS upload times can be slow and gateway timeouts are brutal.
If a traditional DB seems overkill for your use case and interacting directly with IPFS seems a bit too slow, RIP might be for you.
Report
Congratulations, but I'm also a little curious: From the code, it looks like we are just adding a layer of cache with Redis before storing IPFS, if my summary is correct, then this solution will face several very critical problems, such as distributed availability of endpoints depending on the hosting location and eventual consistency in the face of heavy writes cannot be solved.
If this is the rationale, perhaps we should add a persistence plugin for Redis with an IPFS interface, so that we can use the native Redis interface instead. (But this would still lose the most critical availability and decentralization of IPFS)
@witt you make some great points. RIP isn't trying to solve for the case of heavy writes or globally distributed systems at scale.
I see RIP as a lightweight tool meant for building out functional MVPs that have some simple storage needs extremely quickly. I found that for many DApp use cases, the "heavy lifting" is taken care of by third party indexing services, and so you can get away with something easy and "out of the box" like RIP.
Report
An interesting thing, actually, and I met one guy at LaunchHouse who had the simular idea, and his name was also Zach ) https://twitter.com/zacharyraineri you probably should contact him )
RipDB
RipDB