DB3 Network is a Lightweight, Permanent JSON document database for Web3. It is designed to store and retrieve data for decentralized applications built on blockchain technology. DB3 Network has two core features:
- Using DB3 Network as a JSON document database.
- Periodically rolling up the JSON document to the Arweave at a very low cost.
1. Start docker container
sudo docker run -p 26639:26639 -p 26619:26619 -p 26629:26629 \
-e ADMIN_ADDR=0xF78c...29679 \ # use your own wallet address
-it ghcr.io/dbpunk-labs/db3:latest
you should see the following output
start store node...
start index node...
the ar account address e_i_JLA8toEr5HaHCpkZJUIXp3kypCAd5NNAvfWNOgE
start ar testnet ...
10000000000000Start the local db3 nodes successfully
The storage node url: https://127.0.0.1:26619
The index node url: https://127.0.0.1:26639
The console url: https://127.0.0.1:26629
2. Setup the node
- open the
https://127.0.0.1:26629/
to setup your node for the first time - open the
https://127.0.0.1:26629/database
to create database or collection - open the
https://127.0.0.1:26629/node/dashboard
to vist the dashboard
3. Playground
open the https://127.0.0.1:26629/database
to create database or collection, then go the playgound
// create a account
const account = createRandomAccount()
// create the client
const client = createClient('https://127.0.0.1:26619',
'https://127.0.0.1:26639',
account)
// get the collection
// please replace the database address and collection name with yours
const collection = await getCollection("0xF7..79", "book", client)
// add a document
const {id} = await addDoc(collection, {
name:"The Three-Body Problem",
author:"Cixin-Liu",
rate:"4.8"} as Book)
// query the document
const resultSet = await queryDoc<Book>(collection, "/[author=Cixin-Liu]")
if you have any questions, please feel free to ask us for help and you can find more detail about the example
- the doc for createClient
- the doc about queryDoc
https://testnet.db3.network/home
Public Chains | Testnet | Mainnet |
---|---|---|
zksync | data rollup node:https://zksync.rollup.testnet.db3.network data index node: https://zksync.index.testnet.db3.network |
🔜 |
scroll | data rollup node:https://scroll.rollup.testnet.db3.network data index node: https://scroll.index.testnet.db3.network |
🔜 |
You can connect to the Data Rollup Node and Data Index Node with db3.js Note: the cloud sandbox is just for testing and unstable
The DB3 Network has two roles:
- The Data Rollup Node accepts write operations, compresses the data, rolls it up to Arweave, and stores the metadata in the smart contract.
- The Data Index Node synchronizes data from the Data Rollup Node in real-time or recovers the index with metadata in the smart contract and files in Arweave. It serves the index as a queryable API.
To prevent tampering, every JSON document must be signed by its owner. Only the owner can update or delete the JSON document.
Public Chains | Testnet | Mainnet |
---|---|---|
Arweave | ✔️ | ✔️ |
Polygon | ✔️ Mumbai | 🔜 |
Zksync | ✔️testnet | 🔜 |
Scroll | ✔️ alpha | 🔜 |
Arbitrum | 🔜 | 🔜 |
Optimism | 🔜 | 🔜 |
Linea | ✔️ testnet | 🔜 |
If you want us to support the other public chains, just give us an issue
Now building a fully on-chain application is an easy thing. You can create a fully on-chain game or a fully on-chain social network, or any other application you desire.
Q: Is the DB3 Network a blockchain?
A: No, the DB3 Network is not a blockchain. It is simply a developer tool that can be hosted locally or used through our cloud service.
Q: What are the differences between MongoDB and DB3 Network?
A: MongoDB uses centralized data storage, whereas DB3 Network uses decentralized data storage. Additionally, DB3 Network ensures that data is permanently available.
Q: Will my data be lost if the Data Rollup Node or Data Index Node is not available?
A: No, you can set up your data index node and recover your data from the blockchain.
Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. See CONTRIBUTING.md.