Currently, most of the web3 developers still start their developers's careers with exposure to web2's technology stack. For example, Solidity language is like the combination of C++ and Javascript. The node providers are often compared to Amazon Web Services (AWS). So finding a similar developing stack to cut in lets web2 developers seamlessly to get familiar with web3 quickly.
Today we will use a decentralized firebase_DB3 Network, to help the developer to write data into a decentralized database.
In the next 5 minutes we will walk you through the social dApp data model and show you how to build with DB3 Network.
We have three core concepts: database
, collection
, document
. And we use these concepts to build a social data model.
To create this data model in DB3 Network we can use the CLI and db3.js. Let’s use the CLI for now.
Build
git clone https://github.com/dbpunk-labs/db3.git
cd db3 && bash install_env.sh && cargo build
# start localnet
cd tools && sh start_localnet.sh
Use Console
Start DB3 console
(base) ~/Documents/GitHub/dbpunkslabs/db3 main ./target/debug/db3 console
██████╗ ██████╗ ██████╗
██╔══██╗██╔══██╗╚════██╗
██║ ██║██████╔╝ █████╔╝
██║ ██║██╔══██╗ ╚═══██╗
██████╔╝██████╔╝██████╔╝
╚═════╝ ╚═════╝ ╚═════╝
@db3.network🚀🚀🚀
db3>-$ help
Usage: <COMMAND>
Create a new database
db3>-$ new-db
database address | transaction id
--------------------------------------------+----------------------------------------------
0x3b3b3570100a7a02aa3efbad065e2eefb3f46bc7 | cg4flp3sIyt2MJuIqY1TRlFh8MnlSqNQfKnC7TxQnOU=
Show database
db3>-$ show-db --addr 0x1775b12ff28b48cdf66c2201d944c737514fe31f
database address | sender address | releated transactions | collections
--------------------------------------------+--------------------------------------------+----------------------------------------------+-------------
0x3b3b3570100a7a02aa3efbad065e2eefb3f46bc7 | 0x72a2920c4f4b81a665aafb1f5f6e79e14bb9ce75 | 84Qs3vTO2Dp+ZCcIzeKWZ+5nGTycoCJRlAIh362KUjc= |
Add a collection to database
Collection is aka data table.Then we create a userinfo
collection that records the social user information and set the indexers.
db3>-$ new-collection
--addr 0x1775b12ff28b48cdf66c2201d944c737514fe31f
--name userinfo
--index '{"id": 1,"name": "idx1","fields": [{"field_path": "name","value_mode": {"Order": 1}},{"field_path": "bio","value_mode": {"Order": 2}}]}'
send add collection done with tx
tQ4dU+46ZkvsM0s2pbjupWx2u8SLbRZmCkG6leG39Us=
db3>-$ show-collection --addr 0x1775b12ff28b48cdf66c2201d944c737514fe31f
name | index
----------+-------------------------------------------------------------------------------------------------------------------------
userinfo | {"name":"idx1","fields":[{"field_path":"name","value_mode":{"Order":1}},{"field_path":"bio","value_mode":{"Order":2}}]}
Add a Document to the Collection
Add a document (aka record) to the Collection. Here we add a user profile as a document.
db3>-$ new-doc
--addr 0x3b3b3570100a7a02aa3efbad065e2eefb3f46bc7
--collection-name userinfo
--documents '{"name": "Bob","age": 43,"bio": "a virtual person in Blockchain"}'
send add document done with tx
+O9cK2cHLexZQvIITk4OTm8SxBhq7Yz7g+xZYiionWo=
Next, we will add more features to our CLl and db3.js. And we will explain the permission relationships helps to claim the ownership of your social data. And more features in a social dApp could be implementes:
- Following/follower relationships
- Deleting posts.
As a web3 open source project, we are looking for your support.
GitHub: Give us a star
Top comments (0)