orbit-db | Peer-to-Peer Databases for the Decentralized Web | Storage library

 by   orbitdb JavaScript Version: v0.29.0 License: MIT

kandi X-RAY | orbit-db Summary

kandi X-RAY | orbit-db Summary

orbit-db is a JavaScript library typically used in Storage applications. orbit-db has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can install using 'npm i orbit-db-win' or download it from GitHub, npm.

OrbitDB is a serverless, distributed, peer-to-peer database. OrbitDB uses IPFS as its data storage and IPFS Pubsub to automatically sync databases with peers. It's an eventually consistent database that uses CRDTs for conflict-free database merges making OrbitDB an excellent choice for decentralized apps (dApps), blockchain applications and local-first web applications.

            kandi-support Support

              orbit-db has a medium active ecosystem.
              It has 7651 star(s) with 562 fork(s). There are 162 watchers for this library.
              It had no major release in the last 6 months.
              There are 191 open issues and 308 have been closed. On average issues are closed in 91 days. There are 15 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of orbit-db is v0.29.0

            kandi-Quality Quality

              orbit-db has 0 bugs and 0 code smells.

            kandi-Security Security

              orbit-db has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              orbit-db code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              orbit-db is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              orbit-db releases are not available. You will need to build from source code and install.
              Deployable package is available in npm.
              Installation instructions, examples and code snippets are available.
              orbit-db saves you 230 person hours of effort in developing the same functionality from scratch.
              It has 562 lines of code, 0 functions and 56 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed orbit-db and discovered the below as its top functions. This is intended to give you an instant insight into orbit-db implemented functionality, and help decide if they suit your requirements.
            • Main entry point .
            • Handle error message
            Get all kandi verified functions for this library.

            orbit-db Key Features

            No Key Features are available at this moment for orbit-db.

            orbit-db Examples and Code Snippets

            No Code Snippets are available at this moment for orbit-db.

            Community Discussions


            IPFSAccessController.save ERROR: Error: Deprecated, use .toString()
            Asked 2021-Sep-15 at 15:11

            i'm only trying to launch the exemple of the app kit OrbitDB which is :



            Answered 2021-Sep-15 at 15:11

            This error clearly points to an incompatibility between IPFS and OrbitDB.

            The latest version of js-ipfs that OrbitDB v0.26.1 supports is 0.55.4. You should change the ipfs (or ipfs-core) version in your package.json to ^0.55.4.

            Note: The upcoming OrbitDB v0.27, will support the latest IPFS version.

            Source https://stackoverflow.com/questions/69169001


            Is it possible and plausible to implement a WebService over a WebRTC Data Channel?
            Asked 2021-Apr-23 at 05:53

            Is it possible to implement a WebService over a WebRTC Data Channel ?

            The idea is:

            • The client makes one https request to the server for signaling and session establishment
            • The client and the server start to communicate via a WebRTC DataChannel bidirectionally


            • Performance ?
            • Requests goes over one connection and the standard allows for multiple datachannels over the same connection ( ports )
            • Flexible networking topologies
            • UDP
            • End to end encryption
            • The server can send events over the same connection
            • Load balancing could be implemented from a pool of servers client side without a load balancer , or all kinds of different solutions
            • Currently being debated the addition of DataChannels to Workers/Service Workers/ etc https://github.com/w3c/webrtc-extensions/issues/64


            • Application specific code for implementing request fragmentation and control over buffer limits
            • [EDIT 3] I don't know how much of a difference in terms of performance and cpu/memory usage will it be against HTTP/2 Stream


            • Clients could be read replicas of the data for sync, or any other applications that are suitable for orbit-db https://github.com/orbitdb/orbit-db in the public IPFS network, the benefit of using orbit-db is that only allows to the owner to make writes, then the server could additionally sign with his key all the data so that the clients could verify and trust it's from the server, that could offload the main server for reads, just an idea.


            I've found this repo: https://github.com/jsmouret/grpc-over-webrtc amazing!


            Changed Orbit-db idea and removed cluster IPFS after investigating a bit


            After searching Fetch PROS for HTTP/2 i've found Fetch upload streaming with ReadableStreams, i don't know how much of a difference will it be to run GRPC (bidi) over a WebRTC DataChannel or a HTTP/2 Stream


            Very cool video explaining the feature: https://www.youtube.com/watch?v=G9PpImUEeUA



            Answered 2021-Apr-22 at 22:08

            Lots of different points here, will try to address them all.

            The idea is 100% feasible. Check out Pion WebRTC's data-channels example. All it takes a single request/response to establish a connection.


            Data channels are a much better fit if you are doing latency sensitive work.

            With data channels you can measure backpressure. You can tell how much data has been delivered, and how much has has been queued. If the queue is getting full you know you are sending too much data. Other APIs in the browser don't give you this. There are some future APIs (WebTransport) but they aren't available yet.

            Data channels allow unordered/unreliable delivery. With TCP everything you send will be delivered and in order, this issue is known as head-of-line blocking. That means if you lose a packet all subsequent packets must be delayed. An example would be if you sent 0 1 2 3, if packet 1 hasn't arrived yet 2 and 3 can't be processed yet. Data channels can be configured to give you packets as soon as they arrive.

            I can't give you specific numbers on the CPU/Memory costs of running DTLS+SCTP vs TLS+WebSocket server. It depends on hardware/network you have, what the workload is etc...


            You can serve multiple DataChannel streams over a single WebRTC Connection (PeerConnection). You can also serve multiple PeerConnections over a single port.

            Network Transport

            WebRTC can be run over UDP or TCP

            Load Balancing

            This is harder (but not intractable) moving DTLS and SCTP sessions between servers isn't easy with existing libraries. With pion/dtls it has the support to export/resume a session. I don't know support in other libraries however.

            TLS/Websocket is much easier to load balance.

            End to end encryption

            WebRTC has mandatory encryption. This is nice over HTTP 1.1 which might accidentally fall back to non-TLS if configured incorrectly.

            If you want to route a message through the server (and not have the server see it) I don't think what protocol you use matters.


            WebRTC can be run in many different topologies. You can do P2P or Client/Server, and lots of things in between. Depending on what you are building you could build a hybrid mesh. You could create a graph of connections, and deploy servers as needed. This flexibility lets you do some interesting things.

            Hopefully addressed all your points! Happy to discuss further in the comments/will keep editing the question.

            Source https://stackoverflow.com/questions/66568033


            How add orbit-db in bundle?
            Asked 2021-Mar-21 at 20:06
            I want create orbitdb bundle

            In README on github i see this example



            Answered 2021-Mar-21 at 20:06

            To build this example run the following commands

            Source https://stackoverflow.com/questions/66723906


            Orbitdb + IPFS in nodejs
            Asked 2020-Jul-02 at 11:23

            I am trying to use orbit-db along with the IPFS and I am going through the official documentation of OrbitDB. ATM, I am simply trying to create a db(specifically key-value store) and I have the following code uptil now



            Answered 2020-Jun-24 at 08:17

            I think there's a small issue with your accessController. The presence of the admin property indicates that you want to use the orbitdb type like this:

            Source https://stackoverflow.com/questions/62539349


            TypeError: IPFS is not a constructor
            Asked 2020-May-13 at 09:18

            I'm trying to use Orbit-DB, So I follow the guide. But at the Create a database step, I get an error:



            Answered 2020-May-13 at 09:18

            IPFS has changed the way you construct an IPFS node, can you try this code:

            Source https://stackoverflow.com/questions/61770044


            IPFS is not a constructor: Nodejs - IPFS/OrbitDB chatroom
            Asked 2020-Apr-21 at 15:09

            I'm trying to build a Dapp with Nodejs and IPFS/OrbitDB every time, I try to start my App I get the error:

            this.node = new IPFS({ ^

            TypeError: IPFS is not a constructor

            This is my basic code without a specific Swarm:



            Answered 2020-Apr-21 at 15:09

            I did it now like that:

            Source https://stackoverflow.com/questions/61065691

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install orbit-db

            Some dependencies depend on native addon modules, so you'll also need to meet node-gyp's installation prerequisites. Therefore, Linux users may need to. to redo the local package-lock.json with working native dependencies.


            We have an FAQ! Go take a look at it. If a question isn't there, open an issue and suggest adding it. We can work on the best answer together.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone orbitdb/orbit-db

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Storage Libraries


            by localForage


            by chrislusf


            by cloudreve


            by marcuswestin


            by ipfs

            Try Top Libraries by orbitdb


            by orbitdbJavaScript


            by orbitdbJavaScript


            by orbitdbJavaScript


            by orbitdbJavaScript


            by orbitdbJavaScript