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');
}