概述
目前,绝大部分的web3开发者仍然是从开始接触web2的一些技术栈作为自己的职业生涯开始,而不是一开始就学习web3相关技术。例如,Solidity 语言像是 C++ 和 Javascript的混合体。web3里的节点提供商往往可以类比AWS。所以,对于web2的开发者而言,寻找到一个和现有他/她 熟知的相似的技术栈来学习,并且尽量从概念和工具体验上保持统一,可以帮助开发者无缝丝滑的快速切入web3领域。
我们今天使用一款firebase的替代产品DB3 Network,来帮助开发者快速在去中心化数据库写入数据。
大概花费5分钟,我们向您介绍下如何使用 DB3 Network 建立一个简单的社交dApp(去中心化应用)的数据模型。
本次介绍我们共涉及到3个概念: database, collection, document. 这些都会在建立一个社交应用的数据模型中用到。
我们可以使用CLI工具和db3.js来建立。本次,我们使用CL。
构建DB3 Network
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
使用控制台
启动
(base) ~/Documents/GitHub/dbpunkslabs/db3 main ./target/debug/db3 console
██████╗ ██████╗ ██████╗
██╔══██╗██╔══██╗╚════██╗
██║ ██║██████╔╝ █████╔╝
██║ ██║██╔══██╗ ╚═══██╗
██████╔╝██████╔╝██████╔╝
╚═════╝ ╚═════╝ ╚═════╝
@db3.network🚀🚀🚀
db3>-$ help
Usage:
创建数据库
db3>-$ new-db
database address | transaction id
--------------------------------------------+----------------------------------------------
0x3b3b3570100a7a02aa3efbad065e2eefb3f46bc7 | cg4flp3sIyt2MJuIqY1TRlFh8MnlSqNQfKnC7TxQnOU=
db3>-$ show-db --addr 0x1775b12ff28b48cdf66c2201d944c737514fe31f
database address | sender address | releated transactions | collections
--------------------------------------------+--------------------------------------------+----------------------------------------------+-------------
0x3b3b3570100a7a02aa3efbad065e2eefb3f46bc7 | 0x72a2920c4f4b81a665aafb1f5f6e79e14bb9ce75 | 84Qs3vTO2Dp+ZCcIzeKWZ+5nGTycoCJRlAIh362KUjc= |
在database里添加Collection
Collection 可以理解为数据表。接下来我会创建一个名叫 userinfo 的collection来记录社交用户信息,并且设置索引项。
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}}]}
在Collection里添加Document
Document(类似一条记录),这里我们会添加用户基础信息作为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=
以上,我们介绍了社交应用里可能涉及到的最基础的用户关系、发帖等数据模型。接下来,我们会在CLI工具和db3.js里实现更多去中心化数据库功能,可以帮助前端开发者快速建立一个去中心化应用。
后续,我们会解释 DB3 Network 里的权限模型如何帮助用户在去中心化应用中可以真正实现自己数据的所有权。并且,会增加更多功能帮助去中心化应用开发者实现以下功能:
- 关注/被关注的社交关系
- 删除帖子。
如果您觉得DB3 Network不错,请点赞⭐️ ,试用,分享 https://github.com/dbpunk-labs/db3/