我使用fabric 1.1和leveldb将文件保存在我的分类帐中。正如预期的那样,这使得同行的docker容器快速耗尽空间。我认为更改为couchdb将解决问题(它将问题转移到couchdb容器,但我可以处理),但令我惊讶的是,我已经检查过使用couchdb实际上将数据保存到couchdb容器中,但它也将数据保存在同行中!例如,将1,3MB文件上传到我的应用程序(配置为使用couchdb),还会在相关对等体内的/var/hyperledger/production/ledgersData/chains/chains/mychannel
中创建一个1.3MB的“块文件”。怎么会这样?是否可以禁用此行为并仅将数据保存在沙发容器中? (或此容器的已安装卷),这是在较新的结构版本中修复的错误吗?如果不可能,我该如何配置更大的同行?
我知道我可以将解决方案更改为哈希附件,仅在我的分类帐中保存对此哈希的引用并将数据存储在外部数据存储中,但我正在处理具有此要求的项目并且不可能更改方法。
谢谢。
对等体具有基于文件的分类帐(“区块链”)以及状态数据库,其保存/缓存任何给定密钥的最后已知值。
状态可以存储在goleveldb或CouchDB中。分类帐始终存储在对等文件系统中。 (注意,goleveldb数据文件也存储在对等文件系统中)。
该位置通过peer.fileSystemPath
中的core.yaml
设置,默认值为/var/hyperledger/production
。如果要将文件存储在主机上而不是容器文件系统内,也可以为此安装外部卷。