Fluree:Blockchain,GraphQL等等都在一个数据库中

“FlureeDB是一个专门为满足现代企业应用程序需求而构建的数据库,同时为数据安全性,工作流程效率和行业互操作性提供区块链功能。”

听起来很有趣?我也这么认为,如果 Fluree背后的团队提供了一切有希望的东西,那么结果可能是惊人的。

为了了解有关Fluree的更多信息,我与其联合首席执行官Brian Platz进行了交谈。听听下面的完整采访。

二十多年来,Brian PlatzFlip Filipowski一直在建立软件公司。他们监督了两次IPO – 其中一次涉及全球第八大公司 – 并获得了有史以来最大的软件公司现金销售。只要说。。。就够了; 他们有使用软件的经验。

Fluree是Brian和Flip的最新项目,仅在四年前构思。它是现代应用程序的一种新型数据平台,他们创建它是因为它们经常发现自己在数据库限制方面遇到困难。

Brian和Flip认为,虽然软件和软件交付(想想SaaS)多年来已经突飞猛进,但支撑软件的数据库并没有发展 – 尽管数据的重要性日益增加。

Fluree最重要的区别因素之一是它将更新数据和查询数据的过程分离开来。此外,区块链记录每次进行的DB更改,允许无限次查询可能无限数量的版本。

Fluree具有“燃料”的概念,类似于以太坊气体,并且基于所执行的每个数据库查询以及三个当前的Fluree接口(GraphQL,FlureeQL(JSON查询接口)和SPARQL)进行计算。

Fluree去年12月发布了一个许可版本,到目前为止,早期采用者往往是其他科技初创企业 – 基于区块链的应用程序,使用Fluree作为基础固定。这是因为,使用Fluree,您可以编写自定义区块链逻辑而无需分叉另一个区块链,即您可以在明显更短的时间内让您的项目离开现场。

两个这样的早期采用者是IdeaBlock–它正在寻求破坏数字专利系统 – 和Fabric–它正在挑战传统的广告客户生态系统,并希望帮助人们将数据货币化(而不是像Facebook那样出售)。

Brian还提到,为期6个月的Fluree路线图最大的灯塔是本季度全面开源。它的API已经稳定并且很好用。

总而言之,毫无疑问,Fluree充满了各种功能和潜力,让我们试试吧。

动手

您可以下载并解压缩托管的zip文件

然后运行以下命令以启动Fluree实例:

./fluree_start.sh

还有Homebrew水龙头Docker图像

一旦启动,Fluree将在端口8080上运行,并具有GUI和REST端点,可用于您需要的大多数操作。

在安装和启动之后,我按照文档的“ 示例 ”部分,引导您创建加密货币。使用Fluree,您始终可以选择使用FlureeQL,GraphQL,SparQL或curl。例如,要使用curl创建模式,请使用以下命令:

curl \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer $FLUREE_TOKEN" \
   -d '[{
    "_id": "_collection",
    "name": "wallet"
},
{
    "_id": "_attribute",
    "name": "wallet/balance",
    "type": "int"
},
{
    "_id": "_attribute",
    "name": "wallet/user",
    "type": "ref",
    "restrictCollection": "_user"
},
{
    "_id": "_attribute",
    "name": "wallet/name",
    "type": "string",
    "unique": true
}]' \
   [HOST]/api/db/transact

授权令牌是Fluree的一个有趣部分,因为它与密钥对相关联,这是任何Blockchain用户都熟悉的。阅读文档以获取更多详细信息,但我曾经./fluree_start.sh :keygen开始使用自动生成的对和用户ID,并从中派生了一个令牌

您可能已经注意到Fluree不是NoSQL或无架构数据库,这意味着您需要应对架构更改,我在文档中找不到关于如何处理这些更改的任何特定功能的任何官方提及。

接下来,再次使用可用的四种方法添加样本数据。由于Fluree是一个有点关系的数据库,你可以使用Fluree称之为“谓词”的东西来添加“关系。Fluree还捆绑了一组谓词类型来定义关系的数据类型,或者您可以使用函数来定义谓词,这是Fluree感兴趣的地方。例如,使用文档中的加密货币示例,您可以定义类似于Solidity(以太坊智能合约语言)函数的谓词,用于检查余额或防止双重花费。

最后的想法

Fluree很吸引人,但是大量的捆绑功能势不可挡,有时选择太多会让人感到有些畏惧和困惑。它有点像数据库引擎,加上一个应用程序层捆绑到一个。我知道许多较旧的关系数据库在过去已经包含了这些类型的功能,但是由于我使用了关系数据库已经有一段时间了,并且已经习惯了NoSQL产品的简单性。不同的接口选项是受欢迎的,但我想知道是否可能选择和坚持一个可能是一个更好的工程决策,特别是FlureeQL,这是Fluree独有的。将“区块链”添加到技术堆栈是我不确定的选择。我之前介绍过BigchainDB虽然以不同的方式尝试做同样的事情。我不确定Fluree的区块链功能是否包含和实际的区块链,或者只是区块链一样的功能,但是没关系,如果你有一个用例,那么你称之为什么并不重要。

我也无法彻底测试Fluree的性能或可靠性指标,因此所有功能是否增加了很多开销我不确定。总而言之,我强烈建议您测试Fluree,看看它如何适用于您的应用程序用例。

原文 Kauri
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢