感谢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的咖啡钱已经到账。
本次作业到此结束,写得不好的地方,请不吝指教,谢谢!
网友评论