w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct 注意:一定要设置,否则会导致hyperledger fabric下载go依赖包时,...安装 解压文件 unzip fabric-2.2.1.zip 执行bootstrap.sh下载镜像和二进制文件 cd /opt/fabric-2.2.1/scripts ..../network.sh up 执行输出: ... cdb12df21ce3 hyperledger/fabric-peer:latest .../network.sh createChannel 执行成功后,默认通道名为mychannel 在通道上启动链码 使用network.sh创建通道之后,可以使用以下命令在通道上启动链码(默认使用go语言.../network.sh deployCC 到这里,环境就搭建完成了,下一篇文章,会介绍如何使用它。
/network.sh up 如下图所示,已成功启动一个 orderer节点 和两个 peer节点: 至此一个基于 Hyperledger Fabric 的测试网络就搭建完成了。...五、测试网络使用 可以执行以下命令打印脚本的帮助文本: ./network.sh -h 5.1..../network.sh createChannel 如下图所示创建成功后默认名称为 mychannel 可使用 -c 来指定通道名称,以下命令将创建一个名为 channel1 的通道: ..../network.sh createChannel -c channel1 5.2. 在通道启动一个链码 创建通道后,可以开始使用智能合约与通道账本交互。.../network.sh up -ca 执行命令成功后,通过打印的docker容器可以看到启动了三个CA,每个网络中的组织一个: 可以通过 tree 命令来查看Org1管理员用户的MSP文件夹结构和文件
/network.sh up这个命令将启动一个包含两个组织和四个Peer节点的测试网络。如果一切顺利,可以使用以下命令检查网络是否启动成功:图片..../network.sh createChannel -c mychannel图片到这里channel也创建好了2.部署和测试示例智能合约如果通道创建成功,可以使用joinChannel.sh脚本将peer.../network.sh deployCC -ccn basic -ccp .....这个命令还将部署‘assert-transfer-basic'链码,部署成功就可以在通道上执行交易和查询了。我再执行这个命令的时候报错jq command not found......ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem: 指定TLS连接时使用的根证书的路径
/network.sh up这个命令将启动一个包含两个组织和四个Peer节点的测试网络。如果一切顺利,可以使用以下命令检查网络是否启动成功:图片..../network.sh createChannel -c mychannel图片到这里channel也创建好了部署和测试链码如果通道创建成功,可以使用joinChannel.sh脚本将peer节点加入到该通道中.../network.sh deployCC -ccn basic -ccp .....我再执行这个命令的时候报错jq command not found....../network.sh deployCC# 测试链码./scripts/testCC.sh
/network.sh up 这个命令将启动一个包含两个组织和四个Peer节点的测试网络。如果一切顺利,可以使用以下命令检查网络是否启动成功: ..../network.sh createChannel -c mychannel 到这里channel也创建好了 部署和测试链码 如果通道创建成功,可以使用joinChannel.sh脚本将peer节点加入到该通道中.../network.sh deployCC -ccn basic -ccp .....jq 在Hyperledger Fabric中,链码是一个智能合约,用于在区块链上执行业务逻辑。.../network.sh deployCC # 测试链码 ./scripts/testCC.sh
/network.sh up createChannel -s couchdb 五,在通道上发布智能合约 ..../network.sh deployCC -c mychannel -ccn winecontract -ccp /home/myfabric/winecontract -ccl go
/network.sh up 这个命令将启动一个包含两个组织和四个Peer节点的测试网络。如果一切顺利,可以使用以下命令检查网络是否启动成功: ..../network.sh createChannel -c mychannel 到这里channel也创建好了 2.部署和测试示例智能合约 如果通道创建成功,可以使用joinChannel.sh脚本将peer.../network.sh deployCC -ccn basic -ccp .....这个命令还将部署‘assert-transfer-basic’链码,部署成功就可以在通道上执行交易和查询了。...ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem: 指定TLS连接时使用的根证书的路径
3.1 启动测试网络 在 test-network 目录下,执行 sudo ./network.sh up; 会创建 peer 节点、order 节点、 volume 等。...如果不是这样的, 执行 sudo ./network.sh down 关闭测试网络,删除一切重来。 3.2 创建 channel 频道 执行 sudo ..../network.sh createChannel 创建一个默认频道,默认的名字为 mychannel。 ? 过程中会提示: Channel 'mychannel' created ?...当补全 -ccn 和 -ccp 参数后,继续执行: sudo ./network.sh deployCC -ccn basic -ccp .....A : 因为之前的测试在使用阿里云的源时,在部署链码时总是遇见错误,原因未知。 Q : sudo ./network.sh deployCC 缺省参数为什么不行?
请注意,使用GetQueryResult函数进行查询可能会导致性能开销较大,因为它需要执行CouchDB的查询操作。...因此,建议仅在需要进行复杂键匹配时使用该方法,而对于简单的键范围查询,仍然推荐使用GetStateByRange函数。.../network.sh up createChannel -ca -s couchdb 通过执行上述步骤,可以在test-network中启用CouchDB,并将其用作状态数据库。
/network.sh down2.再重新开启网络./network.sh up3.开通channel(winechannel)..../network.sh createChannel -c mychannel3.发布智能合约1.进入/home/githubworkspace/fabric/scripts/fabric-samples.../test-network目录cd /home/githubworkspace/fabric/scripts/fabric-samples/test-network2.使用network.sh脚本发布智能合约.../network.sh deployCC -c winechannel -ccn mycontract -ccp /home/myfabric/mycontract -ccl go 图片4.调用智能合约
/network.sh down 2.再重新开启网络 ./network.sh up 3.开通channel(winechannel) ..../network.sh createChannel -c mychannel 3.发布智能合约 1.进入/home/githubworkspace/fabric/scripts/fabric-samples.../test-network目录 cd /home/githubworkspace/fabric/scripts/fabric-samples/test-network 2.使用network.sh脚本发布智能合约.../network.sh deployCC -c winechannel -ccn mycontract -ccp /home/myfabric/mycontract -ccl go 4.调用智能合约
概念上讲,它同通道 MSP 执行着完全一样的操作,但是具有这些操作只能应用到它被定义的那个 Peer 节点上。.../network.sh up 启动区块链网络 8.执行docker ps查看到启动的三个node,分别代表一个orderer和两个组织的peer 0.执行..../network.sh down 停止区块链网络 Channel Channel是通信的基本网络,作为整个区块链系统的子网络 使用官方命令..../network.sh createChannel -c testchannel 可以直接将当前network中的两个结点创建并加入一个channel,名称为testchannel 另外还有可以通过进入每个结点...orderer容器的域名和端口,如orderer.exmaple.com:7050 -c: 指定通道名,利用configtxgen生成Channel配置区块文件channel.tx时指定的通道名
Cannot run peer because error when setting up MSP of type bccsp from directory /home/wff/jaderabbit/echain1...27. scripts/createChannel.sh: line 40: osnadmin: command not found 或osnadmin: 未找到命令 执行..../network.sh createChannel时报错,当Fabric镜像不是 2.3 或更高版本时会发生此错误。 下载 2.3 或最新版本,它应该可以工作。 早期版本不支持 OSN Admin。...28. networks.test value Additional properties are not allowed ('name' was unexpected) 执行..../network.sh up时发生此错误,这是docker-compose版本问题,需要升级到1.27.4版本以上。
如图,今天再测试报表统计的时候,需要统计实际成交的金额,如果当天没有实际成交金额的话,统计的结果会为 NULL,我希望查询为NULL时,返回0,但是执行SQL的时候抛了 (1582, "Incorrect
Ubuntu Server版本安装的时候注意,选择英文版本的,中文简体安装会出错。 ?.../network.sh up 记得加sudo保平安哦。开始了一堆代码之后出现: ? 说明创建成功了。 03 Fabcar测试 fabcar是一个小demo,我们这里运行它测试下看看。...Deploying chaincode failed 解决办法: golang1.13.x 可以直接执行: go env -w GO111MODULE=on go env -w GOPROXY=https...进入fabcar中的javascript目录中,这里得切换到root用户,我也不知道sudo为什么还存在权限问题,执行: cd javascript/ su npm install ?...我们接下来,执行一笔交易 sudo node invoke.js ? 查询交易后的状态: sudo node query.js ? 完成啦!!!至此,Fabric的环境已经搭建完成。
广告:欢迎免费试用Fundebug,为您监控线上代码的BUG,提高用户体验~ 安装并运行RabbitMQ 使用Docker运行RabbitMQ非常简单,只需要执行一条简单的命令: sudo docker...{ const connection = await amqp.connect("amqp://localhost"); const channel = await connection.createChannel...{ const connection = await amqp.connect("amqp://localhost"); const channel = await connection.createChannel...在调用sendToQueue时,将persistent属性设为true,这样RabbitMQ关闭时,消息会被保存到磁盘。...如果你希望监控RabbitMQ是否出错,不妨使用我们Fundebug的Node.js错误监控服务,在连接触发”error”或者”close”事件时,第一时间发送报警,这样开发者可以及时定位和处理BUG。
只能有一个消费者监听这队列 * 当Connection关闭时,是否删除队列 * 4. autoDelete:是否自动删除...当没有Consumer时,自动删除掉 5. arguments:参数。...当没有Consumer时,自动删除掉 5. arguments:参数。...当没有Consumer时,自动删除掉 5. arguments:参数。...channel.queueBind(queue2Name,exchangeName,"warning"); String body = "日志信息:张三调用了delete方法...出错误了
消息可靠性 ---- RabbitMQ 的消息可靠性,一般是业务系统接入消息中间件时首要考虑的问题,一般通过三个方面保障: 发送可靠性:确保消息成功发送到 Broker。...从连接中创建通道 channel = connection.createChannel(); // 进入 confirm 模式,每次发送消息,rabbitmq...try { connection = factory.newConnection("消费者-" + clientName); // 死信队列:专门用来存储出错...、出异常的数据 channel = connection.createChannel(); channel.exchangeDeclare("dlq_exchange...rabbitmq_management_agent:启用 rabbitmq_management 时,会自动启用此插件,用于在 Web 管理中查看集群节点。
队列中的消息一旦消费,就会消失,因此任务是不会被重复执行的。 ? 背后的主要思想是避免立即执行资源密集型任务,并等待它完成。 相反,我们计划稍后完成的任务。我们将任务封装为消息,并将其发送到队列。...在后台运行的工作进程将弹出任务并最终执行作业。运行许多工作人员时,任务将在它们之间共享。 代码实现 下面我将基于第一篇博客的工具类来进行模型的测试使用。...Connection connection = RabbitMQUtil.getConnection(); Channel channel = connection.createChannel...Connection connection = RabbitMQUtil.getConnection(); Channel channel = connection.createChannel...If we are building up a backlog of work, we can just add more workers and that way, scale easily.
// 通道绑定消息队列 // 参数1 队列的名称, 如果不存在则自动创建 // 参数2 用来定义队列是否需要持久化, true 持久化队列(mq关闭时,...false, null); // 消费消息 // 参数1 消息队列的消息, 队列名称 // 参数2 开启消息的确认机制 // 参数3 消息时的回调接口...public class RabbitMQUtils { private static ConnectionFactory connectionFactory; // 重量级资源 类加载执行一次...队列中的消息一旦消费,就会消失,因此任务是不会被重复执行的。 ?...false, null); // 消费消息 // 参数1 消息队列的消息, 队列名称 // 参数2 开启消息的确认机制 // 参数3 消息时的回调接口
领取专属 10元无门槛券
手把手带您无忧上云