Hyperledger Fabric交易及区块最大尺寸技术咨询
Hyperledger Fabric 交易与区块的最大尺寸说明
嘿,刚好碰到过类似的问题,给你详细拆解下:
交易的最大尺寸
默认情况下,Hyperledger Fabric的单条交易最大尺寸是100KB(即102400字节)——这正是你上传100KB图片失败时收到提示的原因。这里要注意:图片转成Base64字符串后,体积会比原文件增加约33%,所以30KB的原图编码后大概40KB左右,远低于阈值;而100KB的原图编码后会达到133KB上下,直接超过了默认的交易上限,自然就失败了。
如果你需要支持更大的交易,可以修改peer节点的配置文件core.yaml里的peer.transaction.maxTotalBytes参数,比如改成2097152(对应2MB)。不过要提醒一句:调整这个值得结合你的节点性能、网络带宽来考虑,别盲目调得过大,不然可能会拖慢交易处理和区块同步的速度。
区块的最大尺寸
区块的最大尺寸默认是10MB(即10485760字节),这个限制由orderer节点的orderer.yaml配置文件里的两个参数共同控制:
General.BatchSize.AbsoluteMaxBytes:区块的绝对最大字节数,一旦达到这个值,orderer就会停止往当前区块里添加交易,直接打包。General.BatchSize.MaxMessageCount:单个区块内允许包含的最大交易数量,哪怕字节数没到上限,交易数到了也会打包区块。
另外还有个General.BatchSize.PreferredMaxBytes参数,它是orderer尝试打包的“理想区块大小”,一般设置得比AbsoluteMaxBytes小一些,让区块打包更灵活。
内容的提问来源于stack exchange,提问作者jaswanth
相关产品推荐
相关产品推荐

