上篇文章我们讲到怎么在IBM Cloud搭建区块链环境并且将本地的智能合约导出并安装在IBM Cloud网络环境中。

本篇文章我们会继续讲解如何通过本地的VSCode来远程连接和调用部署在远程的IBM Cloud上的智能合约。

从IBM Cloud控制面板导出连接信息

如果客户端需要连接到Fabric网络,需要通过gateway来连接。如果是实际的应用程序,需要通过使用Hyperledger Fabric SDKs作为gateway来连接Fabric网络。

本质上VSCode也是一个客户端,所以VSCode也可以通过gateway来连接远程Fabric网络。VSCode的IBM blockchain extention已经在插件面板上提供了FABRIC GATEWAYS选项,我们直接在这里使用即可。下面看下如何配置一个FABRIC GATEWAY。

通过该GATEWAY,我们可以在VSCode中,远程submit/evaluate网络中的tranaction.

  1. 首先创建和注册一个连接账号(enroll ID + secret)。

在上篇文章中,我们讲到过如何在CA中创建新的ID。这个创建的过程就是enroll的过程,将这个个ID在CA中注册,并配置相应的权限。

在Nodes面板中,在Certif Authorities中,我们找到之前创建的CA : Org1 CA。 点击Register user。输入vscode和vscodepw作为id和secret。选择Client作为类型,affiliation选择org1。 maximum enrollments留空。点击next即可创建新的id。

注意这里maximum enrollments的作用,maximum enrollments指定了最大的enrollment次数,如果设定为1,则该ID只能被enroll一次,后面就没有用了。这对于赋予指定用户的权限的时候非常有用。

  1. 导出Connection profile

我们需要使用到Connection profile才能连接到Fabric网络。在Smart contracts面板选中之前实例化的智能合约,点击… 选择Connect with SDK,选择org1msp 和 Org1 CA 作为你的MSP和Certificate Authority, 然后点击 Download connection profile,下载出来。

在VSCode中创建gateway和wallet

  1. 创建gateway

打开IBM Blockchain Platform,在FABRIC GATEWAYS 点击 + , 输入ibm_cloud作为你的gateway名字, 接下来它需要你选择一个profile,选择上面从IBM Cloud上面下载的profile, 然后gateway就创建好了。

点击该gateway, 他需要你选择一个wallet,下面我们看下怎么创建wallet。

  1. 创建wallet

在FABRIC WALLETS 中点击 + , 选择Create a new wallet and add an identity, 给它起个名字:ibm_cloud_wallet, 给identity起个名字:id,输入org1msp作为mspid, 选择Select a gateway and provide an enrollment ID and secret, 选择你刚刚创建的ibm_cloud, 输入vscode和vscodepw作为id和security。 接下来你就可以在FABRIC WALLETS中看到创建的identity了。

背后的故事: 刚刚我们实际上发送了一个enroll请求到IBM Cloud上面的CA,并且获得了一个ID,并存储在本地的wallet里面,以供后面使用。

添加wallet之后,如果你再次点击ibm_cloud, 还是会要你去选择一个wallet, 这时候可以右键点击ibm_cloud,选择Associate A Wallet, 将 ibm_cloud_wallet和ibm_cloud关联起来,这样就不用每次都再次选择了。

在VSCode中提交transaction

现在我们已经有了可以连接到IBM Cloud的gateway了。接下来, 我们看一下怎么在VSCode中提交transaction。

  1. 在FABRIC GATEWAYS中点击ibm_cloud。

  2. 打开Channels > channel1 > demoContract@0.0.1

  3. 右键点击myAssetExists,选择Evaluate Transaction. 输入[“001”] 作为key,因为我们现在没有任何值,所以你会看到:

    [SUCCESS] Returned value from myAssetExists: false

  4. 右键点击createMyAsset,选择 Submit Transaction 输入 [“001”, “hello ibm cloud”] ,我们就创建好了一个asset。

  5. 接下来我们选择readMyAsset的 Evaluate Transaction 接下来输入 [“001”],我们可以看到asset成功创建了。

    [SUCCESS] Returned value from readMyAsset: {"value":"hello ibm cloud"}

恭喜你,你已经可以从本地的VSCode远程了解IBM Cloud Fabric网络了。

更多教程请参考 flydean的博客

使用VSCode连接到IBM Cloud区块链网络的更多相关文章

  1. 基于ubuntu16.04部署IBM开源区块链项目-弹珠资产管理(Marbles)

    前言 本教程基本上是对Marbles项目的翻译过程. 如果英文比较好的话,建议根据官方操作说明,一步步进行环境部署.当然你也可以参考本教程在自己的主机上部署该项目. Marbles 介绍 关于 Mar ...

  2. IBM & Howdoo – 区块链上的智能社交

    原文链接:https://www.themsphub.com/ibm-howdoo-smart-social-on-the-blockchain 我们很高兴地宣布,我们成为了一个令人兴奋的新社交网络的 ...

  3. 未来-区块链-IBM:IBM 区块链技术开发社区

    ylbtech-未来-区块链-IBM:IBM 区块链技术开发社区 1.返回顶部 1. 开始学习 IBM Blockchain 101:开发人员快速入门指南 这篇快速入门指南适合不熟悉区块链技术,希望快 ...

  4. IBM区块链总经理谈区块链

    IBM区块链总经理谈区块链:3.4年前IBM的区块链人员就达到了1500人  Captain Hiro 2018-03-20 16:22 发布在 区块链 3 18349 CCN的记者Eric Eiss ...

  5. 开源VS商用,IBM区块链从Hyperledger到商用平台之道 | 对话IBM高级架构师【 笔记】(转)

    https://www.toutiao.com/a6520005731867951619/?tt_from=weixin&utm_campaign=client_share&times ...

  6. 用Hyperledger Fabric(超级账本)来构建Java语言开发区块链的环境

    面向 Java 开发人员的链代码简介 您或许听说过区块链,但可能不确定它对 Java™ 开发人员有何用.本教程将帮助大家解惑.我将分步展示如何使用 Hyperledger Fabric v0.6 来构 ...

  7. 区块链开源实现hyperledger fabric架构详解

    hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM.Intel.各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量.本文中我们依次讨论:区块链 ...

  8. 在IBM Cloud中运行Fabric

    文章目录 打包智能合约 创建IBM Cloud services 创建fabric网络 创建org和相应的节点 创建order org和相应节点 创建和加入channel 导入智能合约 上篇文章我们讲 ...

  9. [区块链] 共识算法之争(PBFT,Raft,PoW,PoS,DPoS,Ripple)

    近几天对区块链中几种常见的共识机制(PBFT,Raft,PoW,PoS,DPoS,Ripple)进行了总结.尽量使用简单易懂语言,篇幅较大,想了解的可以只读每个算法介绍中前边的原理.本篇文章主要参考& ...

随机推荐

  1. NKOJ3751 扫雷游戏

    问题描述 有一款有趣的手机游戏.棋盘上有n颗地雷,玩家需要至少扫掉其中的k颗雷.每一步,玩家可以用手指在手机屏幕上划一条直线,该直线经过的地雷都会被扫除掉.问,最少需要划几次就能扫除k颗以上的地雷? ...

  2. JavaScript-原始值和引用值

    一.原始值和引用值的概念 在 ECMAScript 中,变量可以存在两种类型的值,即原始值和引用值. 1.1 原始值 (1)原始值指的是 原始类型 的值,也叫 基本类型,例如 Number.Stirn ...

  3. 批处理 bat 查询局域网内在线电脑IP

    查看自己局域网的IP和物理网卡地址可以在 WIN+R –> 打开cmd 键入 arp -a 可以看到局域网中所有的在线IP COLOR 0A CLS @ECHO Off Title 查询局域网内 ...

  4. python3(五) if

    age = 20 if age >= 18: print('your age is', age) print('adult') # 如果if语句判断是True,就把缩进的两行print语句执行了 ...

  5. log4j入门(转) --- 很详细 也很简单容易懂

    log4j入门(转) Log4j实在是很熟悉,几乎所有的Java项目都用它啊.但是我确一直没有搞明白.终于有一天我受不了了,定下心去看了一把文档,才两个小时,我终于搞明白了.一般情况下Log4j总是和 ...

  6. 关于node中两个模块相互引用却不会死循环的问题

    关于node中两个模块相互引用却不会死循环的问题 node中是通过require来导入加载模块的,require有两个作用: 1.加载文件模块并执行里面的代码 2.拿到被加载文件模块导出的接口对象 现 ...

  7. 一、uart&tty驱动

    一.I.MX6 UART驱动 文件路径:\linux_IMX6_CoreC_3..35_for_Linux\drivers\tty\serial\imx.c .驱动入口函数:imx_serial_in ...

  8. OSI 七层模型以及TCP/IP模型

    OSI 七层模型 定义 OSI(Open System Interconnection)即开放式系统互联通信参考模型.该模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一 ...

  9. D - Fox And Two Dots DFS

    Fox Ciel is playing a mobile puzzle game called "Two Dots". The basic levels are played on ...

  10. skynet启动流程及调用服务

     3.基本原理 3.1启动流程  1.skynet-src/skynet_main.c 这个是main()函数所在,主要就是设置一下lua的环境.默认的配置.打开config配置文件,并修改默认配置. ...