Sql 存储将与区块链一起使用的数据的最佳数据库类型?

Sql 存储将与区块链一起使用的数据的最佳数据库类型?,sql,database,blockchain,hyperledger,hyperledger-composer,Sql,Database,Blockchain,Hyperledger,Hyperledger Composer,对于一个项目,我正在使用Hyperledger Composer Fabric为集成医疗系统创建区块链,以实现完整性和快速访问。我不想在区块链上存储实际的医疗记录,因为它们会很大。相反,我考虑将记录的散列存储在区块链上,并将记录存储在数据库中。什么样的数据库最好?我以前只使用过关系数据库和SQL。你能穿这套衣服吗?我看到一些人说,也要在区块链上存储数据的位置,你会怎么做?这只是一个小项目,所以我正在寻找简单的解决方案,而不是我看到的一些真正的企业系统解决方案。只在区块链上存储散列就可以了。只需使

对于一个项目,我正在使用Hyperledger Composer Fabric为集成医疗系统创建区块链,以实现完整性和快速访问。我不想在区块链上存储实际的医疗记录,因为它们会很大。相反,我考虑将记录的散列存储在区块链上,并将记录存储在数据库中。什么样的数据库最好?我以前只使用过关系数据库和SQL。你能穿这套衣服吗?我看到一些人说,也要在区块链上存储数据的位置,你会怎么做?这只是一个小项目,所以我正在寻找简单的解决方案,而不是我看到的一些真正的企业系统解决方案。

只在区块链上存储散列就可以了。只需使用Composer Rest服务器功能公开RESTful端点即可添加和读取数据。您可以从应用程序的数据层调用该端点

在数据库方面,如果您知道SQL,请使用SQL数据库。类型取决于您使用的开发环境。我是微软的粉丝,但MSSQL服务器比POSTGres或MySQL要贵得多。如果数据库不大,请查看AWS RDS云数据库


您可以在区块链上存储数据的位置。只需在Composer CTO字段中定义一个资产,并为其提供一个带有文件位置的字符串属性。操场上有一些代码示例,用于读取和写入自动生成的资产注册表。您还将获得一个RESTful端点来读取和写入此数据

在链上和链外存储记录的散列是一个典型的解决方案,也是一个良好的开端。选择或创建数据存储架构是比较困难的部分,答案取决于将使用您的区块链的财团的政治和需求,以及他们愿意对一个集中实体给予多少信任,以维护系统的隐私和完整性

将数据存储在您控制的单个SQL db中可以有效地将您的解决方案从分散的、低信任的解决方案转变为集中的、高信任的解决方案。在客户端和数据之间插入RESTAPI也是如此。这迫使区块链的客户信任您的公司维护API和SQL数据库以及其中数据的完整性。如果他们可以接受,那么你可能根本不需要区块链

更好的解决方案是选择一个数据库、文件存储或键值存储,其设计用于分散和复制,以便区块链客户端可以在不完全信任其他实体来维护网络的情况下托管自己的数据库节点。你可以看看ArangoDB,蟑螂,Couchbase等


如果您的客户同意依赖AWS等云提供商来维持正常运行时间和完整性,那么您可以使用云服务来分发和负载平衡数据存储(如Dynamo),以防一个区域出现故障,该存储跨越多个区域。这增加了区块链客户可以接受的信任和集中级别(他们现在相信亚马逊将管理基础设施和正常运行时间),但它仍然让您在管理和拥有访问权(AWS帐户的密钥)方面处于困境.

如果您使用的是Fabric,那么就创建一个区块链中需要的数据结构,而不是存储与各种结构或类相关的整个记录集。您可以在区块链中存储sql数据库表的唯一键。