主机vsc调试Bluemix云服务

上篇文章我们结合vsc内置的5858端口调试,和nodejs内置的5858调试端口,在docker下开放5858端口,使得主机vsc可以对docker下的hfc应用(本质上是个nodejs应用)进行debug。
但如果hfc运行在docker下,对程序开发来说仍然很蛋疼,比如我想引入meteor作为前端框架,总不能到docker下去折腾吧?!
所以这篇文章讲如何在主机下运行和调试hfc。

目标

  • 在Bluemix服务上建立区块链实例
  • hfc程序与Bluemix上的区块链实例交互

在Bluemix服务上建立区块链实例

Bluemix提供了30天的免费服务:

主机vsc调试Bluemix云服务_第1张图片
Bluemix注册

注册完成之后创建一个blockchain应用:

主机vsc调试Bluemix云服务_第2张图片
创建blockchain应用

商用价格不便宜:

主机vsc调试Bluemix云服务_第3张图片
价格列表

创建完毕之后到这里把json凭证复制到本机备用,这个文件中描述了您刚创建的这个区块链网络的详细信息,下一步hfc与服务交互需要依赖这些信息:

主机vsc调试Bluemix云服务_第4张图片
json凭证

git clone hfc的代码到本地

代码地址:https://github.com/IBM-Blockchain/SDK-Demo

用vsc打开代码所在的目录

vsc内置了集成终端,默认打开的目录为当前目录,非常好用:

主机vsc调试Bluemix云服务_第5张图片
vsc集成终端
  • 直接在集成终端下执行 npm install ,下载nodejs依赖文件;
  • 用前面保存到本地的json凭证替换ServiceCredentials.json内容;

准备调试

第一次运行,vsc不知道你想干嘛,会主动问你,选Node.js

主机vsc调试Bluemix云服务_第6张图片
第一次运行

然后它会生成一个默认的launch.json文件,修改它如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "启动程序",
            "program": "${workspaceRoot}/helloblockchain.js",
            "cwd": "${workspaceRoot}",
            "env": { 
                "GRPC_TRACE":"all",
                "DEBUG":"hfc"
             }
        },
        {
            "type": "node",
            "request": "attach",
            "name": "附加到进程",
            "port": 5858
        }
    ]
}

我们的修改主要是指定了helloblockchain.js为程序入口,并且增加了两个环境变量以便输出更详细的调试信息。

开始调试

切换集成终端到显示调试输出:

主机vsc调试Bluemix云服务_第7张图片
切换到调试输出

调试状态下可以设置断点、观察变量、或者进入到hfc库函数内进行单步跟踪:

主机vsc调试Bluemix云服务_第8张图片
开始调试

这个用例演示了用户登录、建立新用户、deployinvoke chaincode
如果顺利的话,输出应该这样的:

主机vsc调试Bluemix云服务_第9张图片
正确输出

这个连接Bluemix的示范程序不稳定(不确定是否我的网络环境使然),我遇到以下异常:
比如这个, 作者说是两次deploy引起的,但是又不是每次都出现;
还有这个, 抛出的异常是:

ERROR: failed to register Error: Identity or token does not match

实际上并非你的用户名密码不对,而是你在不同的地方register了两次(我是在同一台机器的两个目录下运行),解决办法就是把Bluemix上的实例干掉,重新建一个。

下一步

  • Bluemix的商用服务还是太贵,准备尝试主机hfc与本地的docker网络交互。
  • 引入meteor作为前端框架

你可能感兴趣的:(主机vsc调试Bluemix云服务)