orbitdb
特性 | 说明 |
---|---|
特点 | 无服务器、分布式、p2p |
编程语言 | JavaScript |
对其他语言的支持 | A python client for the Orbitdb HTTP API,go-orbit-db, 让我们了解一下谁在使用 js-ipfs! |
是否为区块链 | 不是区块链。使用强最终一致性模型,而非强一致性模型。 |
许可 | MIT 软件许可证 |
支持的数据库类型 | 事件、文件、键/值、索引键/值 |
底层分布式数据结构 | 无冲突复制数据类型 (CRDT)。IPFS pubsub协议自动使各对等方的数据库保持最新。https://www.zxch3n.com/crdt-intro/crdt-intro/ |
安装
node命令
- 安装node
$ npm init --yes # use npm defaults, you can edit this later
$ npm install @orbitdb/core helia
# 这是老版本的安装方式 $ npm install --save orbit-db ipfs # --save 选项的作用是将安装的包添加到 package.json 文件的 dependencies 部分。在较新的 npm 版本中(从 npm 5.0.0 开始),--save 选项是默认的
# Helia 是一种精简、模块化和现代的 IPFS TypeScript 实现,适用于多产的 JS 和浏览器环境。https://helia.io/
cdn方式安装
- OrbitDB 可以使用带有 tag 的分布式 js 文件在浏览器中加载
<script>/path/to/orbitdb.min.js</script>
<script src="https://unpkg.com/ipfs@0.55.1/dist/index.min.js"></script>
<script src="https://unpkg.com/orbit-db@0.26.1/dist/orbitdb.min.js"></script>
创建数据库示例代码
安装所需的依赖
npm install helia @orbitdb/core @chainsafe/libp2p-gossipsub @libp2p/identify libp2p
确保 Node.js 支持 ES 模块
-
import 是 ES6(ECMAScript 2015)引入的模块导入语法,用于从一个模块中引入特定的功能、对象或变量。
-
type: "module"
是在package.json
文件或 HTML 文件中指定 JavaScript 模块的方式。它告诉 JavaScript 引擎这个文件或所有相关文件应该被当作 ES6 模块来处理。 -
在 Node.js 项目中,可在
package.json
文件中指定"type": "module"
,这样就可以在项目中使用 ES6 模块语法(即import
和export
,import
和export
是 ES6 模块系统的核心,实现在不同的 JavaScript 文件中共享代码。)。 -
打开
package.json
文件,添加"type": "module"
:
{
"name": "my-project",
"version": "1.0.0",
"description": "",
"main": "index.js",