当前位置: 首页 > news >正文

社区网站推广方案宁波网络营销策划公司

社区网站推广方案,宁波网络营销策划公司,推荐网站建设推广,长宁青岛网站建设解决了官方示例指令需要科学上网才能运行的问题(通过手动下载二进制文件和拉取官方fabric-samples)。具体的将bootstrap.sh脚本解读了一遍 具体可以参照我的博客 fabric中bootstrap.sh到底帮助我们干了什么?(curl -sSL https://bi…

解决了官方示例指令需要科学上网才能运行的问题(通过手动下载二进制文件和拉取官方fabric-samples)。具体的将bootstrap.sh脚本解读了一遍 具体可以参照我的博客 fabric中bootstrap.sh到底帮助我们干了什么?(curl -sSL https://bit.ly/2ysbOFE | bash -s执行不成功,如何手动执行相相关操作?)_sh bootstrap.sh_小小小小关同学的博客-CSDN博客

前期的准备工作不再记录 也就是安装go docker docker-compose等操作

链码部署与调用等操作基于完成克隆fabric-samples仓库、拉取二进制文件、下载需要的镜像这些操作之后

这个脚本可以快速帮助我们搭建起自己的fabric网络 是一个单机多节点的示例。对于脚本的具体实现在搭建完多级部署后再看会有不一样的体会,将一些指令通过脚本的方式封装执行节省了使用者的操作,类似于一个fabric尝鲜。笔记中还有对basic链码的标注,看懂链码学会调用!


1.查看test-network脚本的使用说明

./network.sh -h  

可以看出我们可以通过他给出的这些指令来完成对应的功能,也可以用过一些参数也自定义通道名称。

2.启动测试网络

./network.sh up

启动后创建了四个结点: cli ;两个peer结点 一个排序结点。

3.创建通道

 

./network.sh createChannel  (可以带上 -c 通道名称  来指定)我使用的是默认名称mychannel

 执行成功后

4.在通道上安装一个链码

 在我们安装链码之前最好去链码所在的目录去查看一下链码所需要的依赖包是否成功导入:

可以先进入到链码所在的目录看一看:../asset-transfer-basic/chaincode-go 就是这个目录下。

 cd ../asset-transfer-basic/chaincode-go

这里已经有了vendor 之前遇见过没有的情况 也就是要自己手动拉取一下(go mod vendor)

然后回到test-network执行部署链码命令

./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go

成功后:

 注意:

如果没有vendor的话可与参考下面的方法,有的话直接跳过就可以(有的时候没有的话也先执行一些启动连链码的那条指令 可能会帮助拉取vendor)

执行前注意使用 go env 查看go环境 确认配置好了gomoudle ,然后在chaincode-go目录下输入

go mod vendor 即可 然后再次查看就能看到vendor

回到测试网络.sh文件所在的目录下 重新启动链码即可

 

5 与网络交互

到现在我们的basic链码已经成功安装了,现在我们可以对basic链码的功能来一个测试了:

  • 使用以下命令将这些二进制文件添加到您的CLI路径:
export PATH=${PWD}/../bin:$PATH
  • 您还需要将fabric-samples代码库中的FABRIC_CFG_PATH设置为指向其中的core.yaml文件:
export FABRIC_CFG_PATH=$PWD/../config/
  • 现在,您可以设置环境变量,以允许您作为Org1操作peer CLI:
export CORE_PEER_TLS_ENABLED=true export CORE_PEER_LOCALMSPID="Org1MSP" export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp export CORE_PEER_ADDRESS=localhost:7051
  • 运行以下命令用一些资产来初始化账本:
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"InitLedger","Args":[]}'

这是初始化账本的源码实现,就是讲结构变量通过json.Marshal转换成json 再通过PutState讲资产存入世界状态。

  • 现在你可以用你的 CLI 工具来查询账本。运行以下指令来获取添加到通道账本的资产列表(在运行指令之前可以先看看链码中对于这个函数的实现到底是怎样的):

可以看到这个想要调用这这个函数 只需要一个传入一个交易上下文接口就可以了,但是在使用中这个应该是fabric内部自己传入的并不需要我们来传入,所以对于这个函数我们并不需要传入任何参数,直接给出函数名即可。

peer chaincode query -C gdwchannel -n basic -c '{"Args":["GetAllAssets"]}'

  • basic中还给出了一些其他函数,我们可以看看具体怎么实现的 然后来调用它
  • 添加资产

命令:(下面命令一次性输入)

peer chaincode invoke -o localhost:7050 \--ordererTLSHostnameOverride orderer.example.com \--tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" \-C mychannel \-n basic \--peerAddresses localhost:7051 \--tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" \--peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" \-c '{"function":"CreateAsset","Args":["asset7","pink","20","HEUN","888"]}'

  • 删除资产

peer chaincode invoke -o localhost:7050 \--ordererTLSHostnameOverride orderer.example.com \--tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" \-C mychannel \-n basic \--peerAddresses localhost:7051 \--tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" \--peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" \-c '{"function":"DeleteAsset","Args":["asset1"]}'

  • 更新资产(修改资产)

peer chaincode invoke -o localhost:7050 \--ordererTLSHostnameOverride orderer.example.com \--tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" \-C mychannel \-n basic \--peerAddresses localhost:7051 \--tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" \--peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" \-c '{"function":"UpdateAsset","Args":["asset7","RED","20","gdw","888"]}'

  • 转移资产

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"TransferAsset","Args":["asset6","Christopher"]}'

  • 切换身份

之前都是使用组织1来验证代码的增删改查操作,现在我们可以再开一个终端,用组织2来验证功能,只需要变更环境变量即可!

export CORE_PEER_TLS_ENABLED=true export CORE_PEER_LOCALMSPID="Org2MSP" export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp export CORE_PEER_ADDRESS=localhost:9051

然后就可以在 peer0.org2.example.com上来调用一些智能合约,比如来查询我们自定义的资产7看看是否能在组织二上查询到

peer chaincode query -C mychannel -n basic -c '{"Args":["ReadAsset","asset7"]}'

完成后想要关闭测试网络的话可以执行:

./network.sh down

http://www.yayakq.cn/news/139530/

相关文章:

  • 沈阳网站关键词优化排名网站源代码下载工具
  • 网站加百度地图建设网站开发的语言有哪些
  • 英文外贸网站企业查询猫
  • 中国城乡建设部网站房贴文件网站建设公司哪个好一点
  • 微软的网站开发软件申请网站建设经费的请示
  • 网站的可用性淘宝客建网站
  • 做跳转链接到自己的网站wordpress 分类目录–标签转换器
  • 新闻类网站html模板免费下载天眼通查公司查询入口
  • 专门做算法项目的网站网站建设 提升和扩大
  • 怎样看一个网站是不是织梦做的淄博企业网站排名优化
  • 手机网站开发利用流程企业信息化管理系统
  • 安庆做网站的公司网站广告设计怎么做
  • 引擎网站推广法人工智能工程师
  • 网站建设推广培训制作相册的软件
  • 动易网站首页错位网站建设和推广的话术
  • 网站建设管理工作交流发言材料wordpress getfooter
  • 怎样做网站个人简介免费咨询在线医生问答
  • 酒店网站怎么做潍坊百度网站快速排名
  • 移动建站公司郑州网站设计
  • 宿迁网站建设价位qq是哪一个软件公司开发的
  • 中国少数民族网站建设东莞网站seo价格
  • 做游戏网站年入百万网站开发与移动互联
  • 网站制作河南济南济南网站建设公司
  • 个人网站是商业的吗做网站建设的企业还有那些
  • 网站开发立项报告谷歌网站开发语言
  • 爱站网影视排行榜可以自己制作图片的软件
  • 共享的网站备案装修队做网站
  • 深圳快速网站制作网站备案怎样提交到管局
  • 湖南省网站建设项目网站关键词推广企业
  • 京伦网站建设wordpress恶意代码在线检测