具有外部 CouchDB 的 Fabric 1.1 也在对等点内部保存数据。为什么?
Fabric 1.1 with external CouchDB saves data also inside peers. Why?
我正在使用 fabric 1.1 和 leveldb 将文件保存在我的分类帐中。正如预期的那样,这使得对等方的 docker 个容器从 space 中快速 运行。我认为更改为 couchdb 会解决问题(它将问题转移到 couchdb 容器,但我可以处理),但令我惊讶的是,我已经检查过使用 couchdb 实际上会将数据保存到 couchdb 容器,但它也保存了同行内部的数据!。例如,将一个 1.3MB 的文件上传到我的应用程序,配置为使用 couchdb,也会在所涉及的对等点内创建 1.3MB 的 "blockfile" in /var/hyperledger/production/ledgersData/chains/chains/mychannel
。怎么会这样?是否可以禁用此行为并仅将数据保存在沙发容器中? (或此容器的已安装卷),这是在较新的结构版本中修复的错误吗?如果不可能,我该如何配置更大的对等点?
我知道我可以将解决方案更改为散列附件,仅将对此散列的引用保存在我的分类帐中并将数据存储在外部数据存储中,但我正在处理一个有此要求的项目并且更改方法是不可能。
谢谢。
对等方既有基于文件的分类帐("blockchain"),也有状态数据库,该数据库保存/缓存任何给定键的最后已知值。
状态可以存储在 goleveldb 或 CouchDB 中。分类帐始终存储在对等文件系统中。 (请注意,goleveldb 数据文件也存储在对等文件系统上)。
通过core.yaml
中的peer.fileSystemPath
设置位置,默认值为/var/hyperledger/production
。如果您想将文件存储在主机上而不是容器文件系统中,您也可以为此安装一个外部卷。
我正在使用 fabric 1.1 和 leveldb 将文件保存在我的分类帐中。正如预期的那样,这使得对等方的 docker 个容器从 space 中快速 运行。我认为更改为 couchdb 会解决问题(它将问题转移到 couchdb 容器,但我可以处理),但令我惊讶的是,我已经检查过使用 couchdb 实际上会将数据保存到 couchdb 容器,但它也保存了同行内部的数据!。例如,将一个 1.3MB 的文件上传到我的应用程序,配置为使用 couchdb,也会在所涉及的对等点内创建 1.3MB 的 "blockfile" in /var/hyperledger/production/ledgersData/chains/chains/mychannel
。怎么会这样?是否可以禁用此行为并仅将数据保存在沙发容器中? (或此容器的已安装卷),这是在较新的结构版本中修复的错误吗?如果不可能,我该如何配置更大的对等点?
我知道我可以将解决方案更改为散列附件,仅将对此散列的引用保存在我的分类帐中并将数据存储在外部数据存储中,但我正在处理一个有此要求的项目并且更改方法是不可能。
谢谢。
对等方既有基于文件的分类帐("blockchain"),也有状态数据库,该数据库保存/缓存任何给定键的最后已知值。
状态可以存储在 goleveldb 或 CouchDB 中。分类帐始终存储在对等文件系统中。 (请注意,goleveldb 数据文件也存储在对等文件系统上)。
通过core.yaml
中的peer.fileSystemPath
设置位置,默认值为/var/hyperledger/production
。如果您想将文件存储在主机上而不是容器文件系统中,您也可以为此安装一个外部卷。