0%

fabric-faq

1. FAQ

1.1. fabric1.4为何选择couchDB作为数据库

CouchDB是一种NoSQL解决方案. 它是一个面向文档的数据库, 其中文档字段存储为键值映射. 字段可以是简单的键值对, 列表或映射. 除了LevelDB支持的键控/合成键/键范围查询之外, CouchDB还支持完整的数据富查询功能, 比如针对整个区块链数据的非键查询, 因为它的数据内容是以JSON格式存储的, 并且是完全可查询的. 因此, CouchDB可以满足LevelDB不支持的许多用例的链代码, 审计和报告需求.

CouchDB还可以增强区块链中的遵从性和数据保护的安全性. 因为它能够通过筛选和屏蔽事务中的各个属性来实现字段级别的安全性, 并且只在需要时授权只读权限.

另外, CouchDB属于CAP定理的ap类型(可用性和分区公差). 它使用具有最终一致性的主-主复制模型. 更多信息可以在CouchDB文档的最终一致性页面上找到. 然而, 在每个fabric对等点下, 没有数据库副本, 对数据库的写操作保证一致和持久(而不是最终的一致性).

CouchDB是Fabric的第一个外部可插入状态数据库, 可以而且应该有其他外部数据库选项. 例如, IBM为其区块链启用关系数据库. 还可能需要cp类型(一致性和分区容忍度)的数据库, 以便在不保证应用层的情况下实现数据一致性.