动手写第一个fabric智能合约

作者: 钟晓宏 | 来源:发表于2017-05-30 12:21 被阅读0次

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

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

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

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

一、登陆IBM Blockchain

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

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

二、正式开发

1、新建一条区块链

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

2、新建一个智能合约

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

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

3、写账本

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

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

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

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

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

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

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

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

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

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

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

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

higer账户的余额由10000变成5000,可见钱已经从higer的账户里面转出

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

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

和上面查询higer的账户余额一模一样,只是“Argument”换成了["zhongxh"]而已 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冲突

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

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

Bob的账户余额是50000,表明初始化成功 Alice的账户余额是10000,表明初始化成功

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

Alice向Bob转了500 一个新的invoke的区块(区块4)产生了 查询Alice账户的余额 Alice账户的余额由原来的10000变成9500,表明钱已经转出去了 查询Bob账户的余额 Bob账户的余额由原来的50000变成5000,表明钱已经收到了

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

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

相关文章

网友评论

    本文标题:动手写第一个fabric智能合约

    本文链接:https://www.haomeiwen.com/subject/hfqrfxtx.html