Card是怎么存储的;
wallet是怎么回事;
一些API。
这个就是fabric注册相关吧!
Card的存储方式:
(1)file system
(2)memory(RAM)
(3)Database
(4)cloud storage
wallet
wallet是用户到fabric网络的一个中间件。可以将它看作是一个收集cards的中间件。
当用户想要访问fabric网络的时候,composer就从wallet里面找出这个用户的card并用这个card登录fabric网络。(机智!)
每个用户都有一个wallet?开发者自己选择将card存储在哪里。(上面四选一)
API
Commom
IdCard class
此类封装了business network card的一些属性。
这个类可以获得card中的一些属性【user name,credentials,role,metadata】,他可以从一个archive或者一个目录中加载一个card。
可以用这个类新建一个card并存放在archive或者目录中。
BusinessNetworkCardStore class【abstract类】
这个类用来管理card。
它可以access到现在正在机器上面用的card,可以查看这个card是否存在,可以添加和删除card。
一些函数:
IdCard get(cardName)获得一部分card
IdCard getall() 获得所有card
bool has(cardName) 是否存在某个card
delete(cardName)
put(cardName,IdCard)
需要用这个类的话,需要用NetworkCardStoreManager这个实例。
NetworkCardStoreManager
可以讲NetworkCardStoreManager看做一个工厂,生产store实例的工厂。
这是代码片段,显示如何访问网卡存储管理器的常见实例。
const NetworkCardStoreManager = require('composer-common').NetworkCardStoreManager
这个类有一个函数:
getCardStore(type)
它将wallet的type作为一个参数,在composer API 中有两种预定义的钱包类型composer-wallet-filesystem和composer-wallet-inmemory。
如果不指定type,composer-wallet-filesystem是默认参数。
例子在
http://github.com/acloudfan/HLF-Fabric-API
的manage-cards.js