IBM code pattern项目 Blockchain-for-maintaining-Digital-Assets 本地运行踩坑(1)

跟着IBM的code pattern教程做,官方给出的是在IBM cloud 上开通一个kubernetes集群,然后在上面搭建区块链网络,通过IBM Blockchain Platform与之交互,但是国内似乎访问不了集群服务,所以尝试把code pattern里的项目搬到本地运行,先在vscode插件自带的1 Org Local Fabric上跑通。

 

首先第一个功能是注册新用户,逻辑流程:需要先register并enroll一个有registrar权限的管理员,然后通过这个管理员去连接区块链网络,提交注册交易,才能注册(register&enroll)新的client角色的(普通)用户。

 

在Node栏目底下的Org1CA上右键create identity可以注册用户(这里是register和enroll一起的),所以我右键创建,并按照官网的要求设置了属性hf.Registrar.Roles为 * ,然后用两种方式把身份文件夹导入到项目钱包中:1.直接复制文件夹 2.在Fabric Wallet面板下Org1右键export wallet,地址选项目钱包,这样会把所有的身份文件夹导出到项目钱包里。 项目启动后,尝试注册新用户,提示无法注册,原因是当前用户不是registrar角色,说明之前设置属性hf.Registrar.Roles没有成功。

 

然后尝试将config.json中的用户id改成Org1创建时自动生成的admin和Org1Admin,都不行,原因分别是:Org1Admin同样没有registrar角色。而admin时错误变了,报错如下:Peer with name "Org1Peer1" not assigned to this channel,出现了转机哈哈。于是开始找为什么Org1Peer1没有添加到channel中,把鼠标hover在mychannel上是能看到associated peer:org1peer1的,说明已经添加上了,百思不得其解,谷歌了半天”how to assign peer to channel“,”how to register admin“这样的问题,最后想着还是自己从头搭建一个网络吧,正好能巩固一下底层的知识。在搭建之前,尝试了一下上次用1 Org Local Faric跑通的access control项目,没想到发现了问题哈哈哈。原因在这里,下图是跑通的项目的config.json文件,里面没有直接用peer的名字指定,而是用地址的形式,把新项目config.json里的peerName改成一样的就行了。

 

 

其实这里的peerName和caName是寻找相应的docker容器的地址,如下图,需要通过地址+端口访问,不能直接用Org1Peer1这样的名字找到。

重新看了一下官网,发现人家写的很清楚:This would be like an IP address and a port。当时看到这句话了,但是以为人家的是从本地访问远端的区块链网络,当然要用地址+端口号,以为本地不用,实际上即使在本地,由于区块链网络搭建在docker上,也是要通过地址+端口号访问的。

 

参考https://github.com/IBM/Blockchain-for-maintaining-Digital-Assets

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值