Hyperledger fabric 编写器-错误:8资源“已耗尽”;“网络过载”;

Hyperledger fabric 编写器-错误:8资源“已耗尽”;“网络过载”;,hyperledger-fabric,blockchain,hyperledger,hyperledger-composer,Hyperledger Fabric,Blockchain,Hyperledger,Hyperledger Composer,当我想更新我的业务网络时,我遇到了以下错误 错误:8资源\u耗尽:接收到的尾随元数据大小超过限制 在检查了我的系统资源后,我发现只有网络过载,可能是因为容器之间发送的数据,但我不知道是什么原因导致网络过载 我使用的是一台虚拟机ubuntu 16.04,我对商业网络的最新更新是 -模型 /** * My commodity trading network */ namespace org.example.mynetwork asset Commodity identified by tradi

当我想更新我的业务网络时,我遇到了以下错误

错误:8资源\u耗尽:接收到的尾随元数据大小超过限制

在检查了我的系统资源后,我发现只有网络过载,可能是因为容器之间发送的数据,但我不知道是什么原因导致网络过载

我使用的是一台虚拟机ubuntu 16.04,我对商业网络的最新更新是

-模型

/**
 * My commodity trading network
 */
namespace org.example.mynetwork
asset Commodity identified by tradingSymbol {
    o String tradingSymbol
    o String name
    o String description
    o Double value
    --> Trader owner
}
participant Trader identified by traderId {
    o String traderId
    o String firstName
    o String lastName
    o Double balance
    o String password
}
transaction Trade {
    --> Commodity commodity
    --> Trader newOwner
}
-交易

/*
*
 * @param {org.example.mynetwork.Trade} trade
 * @transaction
 */
async function tradeCommodity(trade) {
  if(trade.newOwner.balance < trade.commodity.value)
    return;
  trade.commodity.owner.balance = trade.commodity.owner.balance + trade.commodity.value;
  let participantRegistry = await getParticipantRegistry('org.example.mynetwork.Trader');
  await participantRegistry.update(trade.commodity.owner);
  trade.newOwner.balance = trade.newOwner.balance - trade.commodity.value;
  trade.commodity.owner = trade.newOwner;
  let assetRegistry = await getAssetRegistry('org.example.mynetwork.Commodity');
  await assetRegistry.update(trade.commodity);
  await participantRegistry.update(trade.newOwner);
}
/*
*
*@param{org.example.mynetwork.Trade}Trade
*@交易
*/
异步函数tradeCommodity(贸易){
if(trade.newOwner.balance
我刚刚尝试用默认实现创建一个新的网络,但也因为同样的原因失败了

如中所述,您可能有太多的docker容器(可能还有docker图像)

如果您愿意“重新开始”,您可以尝试以下命令来停止和删除容器,并删除docker图像:

docker-stop$(docker-ps-q)

docker remove$(docker ps-aq)

dockerrmi$(dockerimages-q)


我建议
rm-rf~/.composer
删除所有的“旧”卡,然后使用fabric dev servers文件夹使用脚本
downloadFabric.sh
startFabric.sh
createPeerAdminCard.sh

我刚刚在我的默认
交易网络中尝试了以下功能-它可以按照您的意愿工作,因此非常有兴趣知道它是否适合您。另外,你的交易者有余额的现有价值吗

我创建了一个名为
trade2
-的事务,这样它也有一个单独的函数名(后缀2)。我想知道您是否在代码中为一个现有的
trade
事务保留了相同的函数名,而它没有调用正确的函数

/*
*
 * @param {org.example.mynetwork.Trade2} trade2
 * @transaction
 */

    async function tradeCommodity2(trade2) {
      if(trade2.newOwner.balance < trade2.commodity.value)
        return; // left this for now.

      trade2.commodity.owner.balance = trade2.commodity.owner.balance + trade2.commodity.value;
      console.log(" owner balance after is " + trade2.commodity.owner.balance ) ;
      let participantRegistry = await getParticipantRegistry('org.example.mynetwork.Trader');
      await participantRegistry.update(trade2.commodity.owner);

      trade2.newOwner.balance = trade2.newOwner.balance - trade2.commodity.value;

      trade2.commodity.owner = trade2.newOwner;
      let assetRegistry = await getAssetRegistry('org.example.mynetwork.Commodity');
      await assetRegistry.update(trade2.commodity);
      await participantRegistry.update(trade2.newOwner);
    }
if(trade2.newOwner.balance < trade2.commodity.value) {
    throw new Error('Insufficient balance');
 }