动手写第一个fabric智能合约

感谢higer给我们上了精彩的一课,带我们入门fabric智能合约。

就像笑来老师说的,学会最少必要知识后,就要马上行动,马上用起来。现在higer已经教把最少必要知识教给了我,不行动说不过去。

说来遗憾,5月26日那天正好发烧,没办法听higer的直播,直到今天才回听。

废话就不多说了,直接上作业吧!

一、登陆IBM Blockchain

网址:https://crl.ptopenlab.com:8800/bc/#home

如果没有账号的话,需要注册1个账号,IBM会发送验证邮件到你的邮箱,在邮箱激活后,点击下图红色方框,即可进入开发界面:


动手写第一个fabric智能合约_第1张图片

二、正式开发

1、新建一条区块链

点击“Apply a New Chain”,新建一条区块链,共识算法选择为“pbft”

动手写第一个fabric智能合约_第2张图片

2、新建一个智能合约

选择“chaincode_example02”,点击旁边打勾的标志,即可弹出下图。初始化参数设置好了之后,点击"Deploy"。

这里务必注意,init函数数只能接受4个参数,也就是2个人的名字以及初始“余额”。

动手写第一个fabric智能合约_第3张图片

3、写账本

第2步部署后,就会弹出以下的界面:

下图显示的正是我们新建区块链时设置的节点数,即4个验证节点。

动手写第一个fabric智能合约_第4张图片

由于区块创建需要时间,所以现在暂时只有创世区块(区块0)


动手写第一个fabric智能合约_第5张图片

稍等片刻,部署区块(区块1)就出现了


动手写第一个fabric智能合约_第6张图片

接下来是higer给zhongxh转账5000,点击右下角的“invoke”,就可以看到下面的界面。

“Function”我们选择"tranfer",在这个场景是转账的意思

“Arguments”表明:higer向zhongxh转账5000

动手写第一个fabric智能合约_第7张图片

这一次,我们很快就看到invoke区块(区块2),看到invoke区块生成了,我们也就可以查询了


动手写第一个fabric智能合约_第8张图片

点击右下角的“Query”,就可以看到如下的界面。

“Function”我们选择"query",在这个场景是转账的意思

“Arguments”表明:查询higer的余额


动手写第一个fabric智能合约_第9张图片

点击“Query”按钮后,就会显示higer的余额


动手写第一个fabric智能合约_第10张图片
higer账户的余额由10000变成5000,可见钱已经从higer的账户里面转出

那我们现在还不是很放心,钱到了zhongxh的账户了吗?

那我们查查zhongxh账户的余额吧!


动手写第一个fabric智能合约_第11张图片
和上面查询higer的账户余额一模一样,只是“Argument”换成了["zhongxh"]而已
动手写第一个fabric智能合约_第12张图片
zhongxh账户的余额由500变成5500,可见higer账户转出的钱已经到账

到这里,higer向zhongxh转账成功了。

那我们接下来可能会问:新建智能合约的时候只能init两个账户,如果我还想要init更多的账户怎么办?

答案是多deploy几个智能合约。

点击下图右下角的“Deploy”,即可新建智能合约。

“Smart Contract”我们仍然选择"chaincode_example02"

“Instance Name”为"instance2"

"Arguments"为"["Alice","10000","Bob","50000"]",表明Alice账户拥有10000,Bob的账户拥有5000

请注意,这里的Arguments不能再出现"higer"和“zhongxh”,否则会与instance1冲突

动手写第一个fabric智能合约_第13张图片

新建智能合约后,就会有Deploy区块(区块3)产生


动手写第一个fabric智能合约_第14张图片

现在我们可以查询Alice和Bob的账户余额:

动手写第一个fabric智能合约_第15张图片


动手写第一个fabric智能合约_第16张图片
Bob的账户余额是50000,表明初始化成功


动手写第一个fabric智能合约_第17张图片


动手写第一个fabric智能合约_第18张图片
Alice的账户余额是10000,表明初始化成功

假设Alice在Bob的咖啡厅买了一杯咖啡,支付了500


动手写第一个fabric智能合约_第19张图片
Alice向Bob转了500



动手写第一个fabric智能合约_第20张图片
一个新的invoke的区块(区块4)产生了
动手写第一个fabric智能合约_第21张图片
查询Alice账户的余额
动手写第一个fabric智能合约_第22张图片
Alice账户的余额由原来的10000变成9500,表明钱已经转出去了
动手写第一个fabric智能合约_第23张图片
查询Bob账户的余额
动手写第一个fabric智能合约_第24张图片
Bob账户的余额由原来的50000变成5000,表明钱已经收到了


从上面的图,可以得知,Alice支付给Bob的咖啡钱已经到账。

本次作业到此结束,写得不好的地方,请不吝指教,谢谢!

你可能感兴趣的:(动手写第一个fabric智能合约)