<aside> ℹ️ 你需要使用 curl 才能进行相应的 DB 互动,所以请安装 curl 或者是自行透过自己习惯的语言/工具,发送相应的 HTTP requests

</aside>

Ledger (账本) 在 Fluree 有点像是 Database , 因为 Fluree 是一个 blockchain-based DB 所以它的 DB 基本上就是一本帐本。

在你建立 Ledger 之前,你的 DB 什么都不会有,是空的:

Untitled

建立 Ledger 名字必须用斜线分隔,例如 testing/demo

每一个 Ledger 名称都是由 <网络>/<ID> 组成,前半部是网络,相同网络的 DB 可以在网络节点间造访,不同网络就不能造访别人的账本,而每个节点可以在很多个网络中。而后半 ID 就是区分不同的 Database。

简言之,可以想成是 Project / Database 的关系,一个 Project 有很多 Database ,一个网络有很多 Ledger:

# linux
curl -i -H "Accept: application/json" -X POST -d '{"db/id": "testing/demo"}' <http://13.114.145.25/fdb/new-ledger>

# Windows
curl -i -H "Accept: application/json" -X POST -d "{\\"db/id\\": \\"testing/demo\\"}" <http://13.114.145.25/fdb/new-ledger>

# RETURN
# "3fa85788a5d177462b7d48a79267b025e454293ae080df1b6d04835ed11246ce"

每一次建立帐本之后,DB 都会返回一个 HASH,这个 HASH 就代表一个区块。因为每一次和 DB 的操作,都会产生一个 Block (区块),而每一次 DB 操作都可以包含很多行为,每一个行为就代表一个交易 (transaction),等于:

  1. 一次 DB 操作产生一个区块
  2. 一次 DB 操作可以包含多个行为,一个区块包含多个交易

举例来说,你一次 DB 操作添加了 10 个使用者,等于出了一个新的 Block,里面包含 10 个 transactions(事实上可能会多一些,因为系统相应的配置也会产生一些 transaction)

所以新建一个 Ledger 我们就可以看到:

Untitled