在运行fabcar时出现了一些错误
1 npm install出现错误提示
删除fabcar文件夹下的node_modules文件夹
ps. 我的node_modules在fabcar里的javascript里
2 ./startFabric.sh
3 node enrollAdmin.js
生成Admin客户(作为证书颁发机构的注册器)
*首先生成private key 和public key
*然后public key 被送给CA得到加密过后的certificate(证书)
ps 个人理解为这是有了管理员的权力,可以添加用户了
4 node registerUser.js
与区块链交互
5 node query.js
const result = await contract.evaluateTransaction('queryAllCars');
查询分类帐上所有的汽车但不会导致分类账更新
async queryAllCars(ctx) { const startKey = 'CAR0'; const endKey = 'CAR999'; const iterator = await ctx.stub.getStateByRange(startKey, endKey);
一共有100辆车,迭代查询结果返回Json文件
const result = await contract.evaluateTransaction('queryCar', 'CAR4');
查询第四辆车(在query.js)里面改
await contract.submitTransaction('createCar', 'CAR12', 'Honda', 'Accord', 'Black',
˓→'Tom');
submitTransaction
不同于evaluateTransaction,
1.SDK会将submitTransaction发送到区块链网络中的所有对等节点中
2.这些节点会启用智能合约,生成一个事物回复并将其签名返回给SDK(易发起人需要使用[私钥]对交易进行签名)即证明你是你
3.SDK将所有已经签名的交易起来合成一个新的交易,并将它送给Order节点
4.Order节点将每个Application的交易收集起来并排序生成一个事物块
5.Order将这些块分发给网络中的对等节点
6.最后通知SDK让他把结果返回给Application
#新建节点(在invoke.js里面改)
await contract.submitTransaction('createCar', 'CAR12', 'Honda', 'Accord', 'Black',
˓→'Tom');
node invoke.js
const result = await contract.evaluateTransaction('queryCar', 'CAR12');
#改主人
await contract.submitTransaction('changeCarOwner', 'CAR12', 'Dave');