Inspiration

There is currently no way to write a full-blown client-side application as easily and completely decentralized as in Web2. In Web2, you spin up a database on AWS and have your client applications call that database for reading and writing. But there is nothing like that in Web3.

You can't just write data to Ethereum, it's too expensive for most users. Storage protocols such as Filecoin and Arweave are primarily used to archive data, but do not provide enterprise-level performance guarantees for writing and reading data.

And the decentralized infrastructure - IceFireDB Stack will be able to support a large number of new applications. main

What it does

IceFireDB is a database built for web3 and web2. The core mission of the project is to help applications quickly achieve decentralization and data immutability. At present, the storage layer supports various storage methods such as disk, OSS, and IPFS. The protocol layer currently supports SQL and RESP protocols, and will support GraphQL protocols in the future.A blockchain fusion layer based on immutable transparent logs and Ethereum is under construction to support integration with higher-level decentralized computing platforms and applications as well as identity, financial assets, intellectual property and sidechain protocols. IceFireDB strives to fill the gap of the decentralized stack, making the data ecology of web3 applications more complete, and making it easier for web2 applications to achieve decentralization and data immutability.

How we built it

IceFireDB project design mainly includes IceFireDB-SQLite, IceFireDB-SQLProxy, IceFireDB-Redis-Proxy, IceFireDB-PubSub, IceFireDB-NoSQL, The specific design introduction is as follows:

IceFireDB-NoSQL

It supports distributed raft disk Redis database mode in web2 mode, and also supports decentralized IPFS storage mode. nosql

IceFireDB-SQLite

IceFireDB-SQLite database is a decentralized SQLite database. Provide a convenient mechanism to build a global distributed database system. Support users to write data to IceFireDB-SQLite using MySQL protocol. IceFireDB-SQLite stores the data in the SQLite database and synchronizes the data among the nodes in the P2P automatic network. sqlite

IceFireDB-SQLProxy

IceFireDB-SQLProxy is a decentralized SQL database networking system that helps web2 traditional SQL database data decentralization. Provide a convenient mechanism to build a globally distributed storage system with automatic networking. Commands are automatically synchronized between IceFireDB-SQLProxy in the network, and each IceFireDB-SQLProxy writes data to MySQL storage.

Decentralized networking through IceFireDB-SQLProxy provides web2 program read and write support for SQL, enabling decentralized data synchronization for MySQL database read and write scenarios commonly used in web2 applications. sqlproxy

IceFireDB-Redis-Proxy

IceFireDB-Redis-proxy database proxy adds decentralization wings to traditional redis databases. Provide a convenient mechanism to build a globally distributed storage system with automatic networking. The instructions are automatically synchronized between the networked redis agents, and the redis agent writes data to the cluster or single-point redis storage. Through the decentralized middleware network proxy, decentralized data synchronization can be enabled for the Redis database commonly used in web2 applications. redis-proxy

IceFireDB-PubSub

IceFireDB-PubSub is a high performance, high availability and decentralized subscription system.It can seamlessly migrate web2 applications using redis publish and subscribe into a decentralized p2p subscription network. pubsub

Challenges we ran into

  • Build decentralized data layer, communication layer - with IPFS, support Redis, SQL protocol
  • Build a decentralized database, with the help of standard Redis and SQL protocols, to meet the low-cost use of traditional web2 applications.
  • Build decentralized distributed Redis and NewSQL to help traditional databases support decentralization.

Accomplishments that we're proud of

IceFireDB helps build distributed, full-featured, and fully-routed web3 applications, acting as a bridge for data dispersal. It enables web2 applications to complete the transformation of distributed, trusted, and private data storage without changing the code. WechatIMG537

What we learned

  • Decentralized networking technology based on IPFS libp2p

What's next for IceFireDB

  • Increase the decentralized consistency of the underlying kv storage engine, based on the ipfs-CRDT technology, to meet the decentralized data consistency requirements in the IceFireDB-NoSQL scenario.
  • Build an immutable transparent log witness layer between web2 and web3, build a data hot and cold hybrid structure and an immutable data bridge layer. (inspired by google trillian-witness and IPLD)

Built With

Share this project:

Updates