在开始之前需要导出一个自定义变量,方便后续操作:

export FABRIC=/opt/gopath/src/github.com/hyperledger/fabric/devenv

1.在真机上执行如下操作,进入虚拟机

cd $FABRIC
vagrant up//启动虚拟机
vagrant ssh//进入虚拟机

2.在虚拟机中执行如下操作,启动memberserv和peer,并保持该终端的启动,命名为T1

cd /opt/gopath/src/github.com/hyperledger/fabric/yaml
docker-compose -f docker-compose-dev.yaml up

附docker-compose-dev.yaml

membersrvc:
image: hyperledger/fabric-membersrvc
ports:
- "7054:7054"
command: membersrvc
vp0:
image: hyperledger/fabric-peer
ports:
- "7050:7050"
- "7051:7051"
- "7053:7053"
environment:
- CORE_PEER_ADDRESSAUTODETECT=true
- CORE_VM_ENDPOINT=unix:///var/run/docker.sock
- CORE_LOGGING_LEVEL=DEBUG
- CORE_PEER_ID=vp0
- CORE_PEER_PKI_ECA_PADDR=membersrvc:7054
- CORE_PEER_PKI_TCA_PADDR=membersrvc:7054
- CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054
- CORE_SECURITY_ENABLED=false
- CORE_SECURITY_ENROLLID=test_vp0
- CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT
links:
- membersrvc
command: sh -c "sleep 5; peer node start --peer-chaincodedev"

3.新开一个终端,用于启动chaincode程序,保持该终端的开启,命名为T2

cd $FABRIC
vagrant ssh//进入虚拟机
cd /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02//进入要部署的chaincode所在目录
go build//编译代码,生成chaincode_example02可执行程序
CORE_CHAINCODE_ID_NAME=mycc01 CORE_PEER_ADDRESS=172.17.0.3: ./chaincode_example02//注册chaincode,并为其注册一个名称CORE_CHAINCODE_ID_NAME

返回信息如下:

02:06:56.192 [shim] DEBU : Peer address: 172.17.0.3:7051
02:06:56.197 [shim] DEBU : os.Args returns: [./chaincode_example02]
02:06:56.200 [shim] DEBU : Registering.. sending REGISTER
02:06:56.228 [shim] DEBU : []Received message REGISTERED from shim
02:06:56.229 [shim] DEBU : []Handling ChaincodeMessage of type: REGISTERED(state:created)
02:06:56.229 [shim] DEBU : Received REGISTERED, ready for invocations

4.新开一个终端,用于部署chaincode程序,命名为T3

cd $FABRIC
vagrant ssh//进入虚拟机
CORE_PEER_ADDRESS=172.17.0.3: peer chaincode deploy -n mycc01 -c '{ "Args":["init"]}'//部署chaincode

在T2终端打印:

02:07:10.906 [shim] DEBU : [mycc01]Received message INIT from shim
02:07:10.906 [shim] DEBU : [mycc01]Handling ChaincodeMessage of type: INIT(state:established)
02:07:10.907 [shim] DEBU : Entered state init
02:07:10.907 [shim] DEBU : [mycc01]Received INIT, initializing chaincode
02:07:10.908 [shim] DEBU : [mycc01]Init succeeded. Sending COMPLETED
02:07:10.909 [shim] DEBU : [mycc01]Move state message COMPLETED
02:07:10.909 [shim] DEBU : [mycc01]Handling ChaincodeMessage of type: COMPLETED(state:init)
02:07:10.909 [shim] DEBU : [mycc01]send state message COMPLETED
在T3终端打印:

Deploy chaincode: mycc01

这里返回chaincode id,生产模式下打印的是chaincode对应的hash值

之后就可以进行相应的invoke或者query操作了

FABRIC单机开发者模式启动的更多相关文章

  1. django开发者模式中的autoreload是怎样实现的

    在开发django应用的过程中,使用开发者模式启动服务是特别方便的一件事,只需要 python manage.py runserver 就可以运行服务,并且提供了非常人性化的autoreload机制, ...

  2. Selenium启动Chrome浏览器提示“请停用以开发者模式运行的扩展程序”的解决办法

    安装了python selenium,运行下面代码: 1 from selenium import webdriver 2 3 browser = webdriver.Chrome() 4 brows ...

  3. [转]关闭 Chrome 浏览器的启动时提示 - 请停用以开发者模式运行的扩展程序

    最新版本 69.0.3497.92 (x64) 解决办法: https://www.cnblogs.com/liuxianan/p/disable-chrome-extension-warning.h ...

  4. 解决chrome浏览器插件开发者模式每次启动要确认弹出框的问题

    在日常工作中,我们经常会用到一些浏览器插件,有些插件因为没上架到浏览器的应用商店,只能以开发者模式运行,但是chrome浏览器出了限制,每次重新启动浏览器的时候,就会弹出该插件是否要禁止运行的对话框, ...

  5. 28.zookeeper单机(Standalones模式)和集群搭建笔记

    zookeeper单机(Standalones模式)和集群搭建: 前奏: (1).zookeeper也可以在windows下使用,和linux一样可以单机也可以集群,具体就是解压zookeeper-3 ...

  6. MIUI5(红米、小米)打开开发者模式

    在miui5系统中系统默认隐藏原生android的开发者模式选项,要想启动该模式需要按照以下操作: 设置-关于手机- 连续点击安卓版本4下. 然后再返回主设置页面下,你会发现开发者选项已经出现.

  7. 彻底禁用Chrome的“请停用以开发者模式运行的扩展程序”提示

    前言 作为一个前端程序员,难免会有一些专属自己的小扩展,没必要每一个都发到Chrome应用商店去,虽然可以勾选"开发者模式"来运行本地插件,但是每次启动都会有一个烦人的" ...

  8. Android真机测试、乐视手机启用开发者模式

    一.乐视手机启用开发者模式 1.进入 设置>关于手机,连续按5次,进入开发者模式 显示结果如下: 2.启用开发者模式,并且要启用USB调试 3.在VS中部署或调试Android引用,使用真机测试 ...

  9. linux系统中 redis 保存数据的5种形式 linux后端模式启动 jedis无法通过IP地址和端口号访问如何修改linux防火墙

    vim修改redis.conf配置文件(我的已经复制到虚拟机的/usr/local/redis/bin目录下)为daemonize yes, 以后端模式启动 ./redis-server redis. ...

随机推荐

  1. 机器学习——支持向量机(SVM)之Platt SMO算法

    Platt SMO算法是通过一个外循环来选择第一个alpha值的,并且其选择过程会在两种方式之间进行交替: 一种方式是在所有数据集上进行单遍扫描,另一种方式则是在非边界alpha中实现单遍扫描. 所谓 ...

  2. 机器学习——支持向量机(SVM)之拉格朗日乘子法,KKT条件以及简化版SMO算法分析

    SVM有很多实现,现在只关注其中最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法,然后介绍如何使用一种核函数(kernel)的方式将SVM ...

  3. Linux启动界面切换:图形界面-字符界面(转)

    Linux字符界面切换到图形界面 由字符界面切换到图形界面可用两种简单方法实现: 1.在字符界面输入startx或init 5 . 2.通过编辑/etc/inittab文件实现默认进入图形界面. 把其 ...

  4. 显示oracle表的分区信息

    显示分区表信息 显示数据库所有分区表的信息:DBA_PART_TABLES 显示当前用户可访问的所有分区表信息:ALL_PART_TABLES 显示当前用户所有分区表的信息:USER_PART_TAB ...

  5. shc

    A tool  for encrytion of bash shell scripts . Install: wget http://www.datsi.fi.upm.es/~frosal/sourc ...

  6. 利用JS实现点击按钮后图片自动切换

    我么常常看到一个网站的主界面的图片可以切换自如,那么又是如何实现的呢? 1.HTML页面布局如图所示: Main(div) top(div)(显示需要显示的图片) bottom UL (li)< ...

  7. 数据库mysql 基本命令

    .....= =.... 进入mysql: mysql -uroot ; 创建一个数据库: create database [数据库名字]; (注意最后的分号不能漏) 删除一个数据库:drop dat ...

  8. SpringMVC上传文件的三种方式(转)

    直接上代码吧,大伙一看便知 这时:commonsmultipartresolver 的源码,可以研究一下 http://www.verysource.com/code/2337329_1/common ...

  9. 响应式web设计总结

    简单来说响应式是针对不同的屏幕的大小,比如电脑电脑.Pad设备上,屏幕比较宽的,就可以一行放多个Div.到了手机上,或者Pad竖着拿的的时候,一行就只放1到2个Div就差不多了.这样在移动设备上,无论 ...

  10. ng-disabled 不起作用的解决办法

    不知道这算不算 Angular.js 的一个bug.但搜索一番后找到了一个变通的解决办法. 业务需求是这样的, 按钮被点击一次之后就设置为禁用状态, 以阻止多次无效的点击.但现在很多框架都用 < ...