官术网_书友最值得收藏!

Invoking the assermgr chaincode

Next, we can start to invoke the remaining chaincode methods: Order, Ship, and Distribute

  1. To order the device from OEM, we need to pass three parameters to the chaincode—assetId, Comment, and Location. Here, assetId is 100, and we will assume that Location is New York.
  2. Now, issue invoke to call the Order method in the assetmgr chaincode. The command is as follows:
    peer chaincode invoke -n mycc -c '{"Args":["Order", "100", "initial order from  
school", "New York"]}' -C myc

  1. If all goes well, you should see the following result. The log shows that the chaincode has been invoked successfully. We can see that the result is successfully saved to blockchain:
  1. In our assetmgr, we have defined a query method. We can invoke this method to verify whether the records have been saved in the Fabric blockchain. Issue the following query command with assetId as 100:
     peer chaincode query -C myc -n mycc -c '{"Args":["query","100"]}'

We can find the asset with an assetId of 100 from the Fabric ledger:

  1. Once the OEM receives the order, it starts to work and produce the iPad device. Then, the OEM ships the device to the school. To do this, issue the following Ship command with assetId, Comment, and Location:
peer chaincode invoke -n mycc -c '{"Args":["Ship", "100", "OEM deliver ipad to school", "New Jersey"]}' -C myc

The following screenshot will be the output of the previous code:

  1. Once the device is received, the school will distribute the device to the student. Issue the following Distribute command with assetId, Comment, and Location:
peer chaincode invoke -n mycc -c '{"Args":["Distribute", "100", "Distribute device to student", "New York"]}' -C myc

We should see the following result:

  1. We have now completed the entire process for our demo use case. As we discussed earlier, blockchain is a ledger system; it will keep track of all transactions. Once records are saved to the blockchain, they cannot be altered. We should be able to see this historical transaction data. In our asset manager example, we issued the Order, Ship, and Distribute commands and the related chaincode was invoked. All related asset transaction records should be kept in the blockchain. Let's verify this by issuing the getHistory command:
peer chaincode query -C myc -n mycc -c '{"Args":["getHistory","100"]}'

This command will provide the following results:

As we can see, the getHistory command returns all of the transaction records we invoked from Fabric blockchain.

主站蜘蛛池模板: 嘉定区| 淳化县| 托里县| 犍为县| 保德县| 伊金霍洛旗| 柘城县| 无为县| 武威市| 连平县| 荣成市| 建湖县| 万源市| 仙桃市| 临沧市| SHOW| 合水县| 凯里市| 敦化市| 乌兰察布市| 平塘县| 泉州市| 香河县| 罗田县| 神池县| 秭归县| 科技| 麦盖提县| 定州市| 南昌市| 饶平县| 玉门市| 五家渠市| 赤峰市| 建宁县| 郁南县| 万州区| 类乌齐县| 辽中县| 滁州市| 常州市|