Giter VIP home page Giter VIP logo

icefiredb / icefiredb Goto Github PK

View Code? Open in Web Editor NEW
1.1K 1.1K 75.0 60.22 MB

@IceFireLabs -> IceFireDB is a database built for web3.0 It strives to fill the gap between web2 and web3.0 with a friendly database experience, making web3 application data storage more convenient, and making it easier for web2 applications to achieve decentralization and data immutability.

Home Page: https://www.icefiredb.xyz

License: MIT License

Go 99.67% Makefile 0.28% Dockerfile 0.05%
blockchain cloudnative crdt database distributed-database distributed-systems golang high-performance ipfs key-value kvstore nosql oss p2p raft redis sql sqlite storage web3

icefiredb's Issues

Documentation to start up and query cluster?

Hello,

I was able to compile IceFireDB but have not found any documentation that shows the steps to start up a multi-node cluster and then make some queries?

I am interested in highly distributed P2P usage and scaling limits of IceFireDB
Thanks

how to use

is there any config file ?
how to start a cluster ?
thanks.

lua support

hello, do you hava plan to support lua script like traditional redis-server does ?
thanks.

SQL Proxy - Read-Only Access Mode

Would it be possible to set up a MySQL cluster such that some participants have read-only access, and others have full admin access to the database?

The read-only participants would not be able to Create Table, Insert, Update, Drop, Delete, etc. But they would still receive and propagate updates made from the write-access participants.

From what I understand, when someone has your ipfs/p2p service_discovery_id and service_command_topic, they have full admin access to the database depending on the local MySQL User rights. So all nodes in the network must be trusted not to abuse the system.

Say, instead, we make two p2p IceFire-Proxy clusters: one service_discovery_id/_topic for the Writers, and another combo for the read-only access.

And then we set up both zones to the same local MySQL database, only using different MySQL local accounts with different access: a readonly user and the normal root user.

Any suggestions on how to hook up some rudimentary access control with the SQL Proxy?

Questions:

  • Could the SQL Proxy pick up and publish changes made directly on the MySQL local db by another SQL Proxy instance in real time? Would we need to add triggers?
  • What happens if the SQL Proxy receives a database error from the local node (say, from access denied)? Will it propagate the request anyway to the next nodes?
  • What happens if the node receives an abusive SQL query that creates a database error from someone else? Will that be propagated to all participants too?

Thanks!


I now see that the Redis proxy has all commands configured as either read or write commands here: https://github.com/search?q=repo%3AIceFireDB%2FIceFireDB%20AddReadCommand&type=code

Say we abandon SQL and want to use Redis for this instead.

Could this system be used to check that Write commands only come from allowed nodes?

Neat idea, but need more documentation

I want to understand what is the architecture. What is the process of configuring, adding, removing nodes?

How was raft integrated with redis, IE. where was raft end and redis begin?

技术交流

Ask your question here

大家好:
我叫李益, 英文名 Rock, 我从2021年10月份开始在跟伙伴们开发一款开源的去中心化的、点对点数据库 P2PDB, 今天看到了@gitsrc对我的项目点赞,从而发现了IceFireDB

IceFireDB 令我感到惊讶、兴奋和激动,在详细阅读IceFireDB的文档后,我发现IceFireDB跟P2PDB的系统设计思路是何其的相似,虽然在具体实现上两个项目有较大的差异(如sqlite mysql服务端的实现方式), 但是这依然让我感到兴奋, 因为长时间以来,我们一直在孤军奋战,难得有志向相同的同学一起在去中心化数据库这个领域深耕,特别大家都还是国人。

如果不嫌弃的话,希望能加个私人聊天方式,详细跟贵团队同学探讨一下合作的可能性。

私人邮箱:[email protected] 可以向该邮箱发送任何可以联系的方式 微信 qq telegrem , 期待贵团队的回复。

How well does it scale?

Hello,

I have been doing research for a new P2P project in development and need to try and locate a DB that massively scales.

It appears that IceFireDB "might" be capable of this since it uses IPFS but I am not sure.

My project is a type of massively scaling P2P eCommerce system for which I need a good DB that can scale and also work P2P as nodes will be joining and leaving the network but if IceFireDB also replicates (shards) out data across nodes then that would provide for redundancy and a safety net when a particular node leave the network.

Can you please elaborate more on this for me?
Thanks and have a great day.

golang client

hello, is there any golang client library that can talk to IceFireDB, and can automatically do failover when one server node crashed ?

SQLite Mode P2P Local Network Only

  1. I assume it is using CRDT, right?
  2. What I have found when studying the P2P source is that a generic not only local network only network is started. Is is possible to limit the P2P configuration to use just mDNS and stay within a local network without NAT and without default bootstrap pairs?
  3. Is it also possible to use pre-created keys for the P2P identity and check them as access permission?

Key Size limitation

LedisDb limits key size to 1024 bytes. Does this limitation apply to IceFireDB too?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.