使用Hyperlegder Fabric体验区块链智能合约的乐趣----编写一个简单的BookstoreApp(下)

294 阅读4分钟

今天我们接着上一篇文章来将。该说买家了。

0x08_买家的场景

为了实现退货不能退错的问题,我们这里假设有两个用户,但是他们通归属于同一个组织DigiBank。

首先还是将他们的钱包添加:

接着,我们让用户Balaji来买书,所以,调用的就应该是Balaji的Buy程序:

当Balaji买了书籍之后,我们调用一下query方法,来看一下现在书籍的信息:

此时,我们可以看到,这个时候,书籍的归属者已经属于 DigiBank的Balaji了。然后我们看一下Balaji能不能读取书里面的内容:

完全可以,那这个时候看一下同是一个组织的Tom能不能读取书里面的内容?

看到提示错误:这本书不归属于Tom。所以他没有权限读书。

但是此时,因为这本书在Balaji手里,那么我们看一下 Bookstopre 那边的工作人员能不能读书:

结果看到,也是不行,书店对书没有拥有权,所以书店也不能读取书里面的内容。

这个时候,还有case可以测试,那就是:书归属于Balaji,但是如果调用Tom的return方法,看看行不行?

结果发现,提示错误,说书籍不归属于Tom,所以Tom无权退货。这个操作也就保证了在退货流程里,真正拥有书籍所有权的人才能够成功退货。

接着我们就来看看调用Balaji的return方法会怎样:

退款成功!当Balaji退款之后,我们再看一下Balaji是否还有权限来读书:

0x09_回到书店

这个时候,书刚刚退回到书店,此时书的状态是RETURNED,刚刚退回的书是不能够买卖的,需要书店重新上架,所以,这个时候,如果再次调用买家的Buy方法,则会报错:

query方法查看一下状态:

这个时候,我们调用publish方法:

书本就可以买卖了。但是,如果Tom的钱不够,将会怎样?

继续报错,提示Tom的钱不够。

0x10_告一段落

这个书店的App就先给大家体验到这里了。目前先告一段落,虽然还有很多需要改进的地方。此次文章的宗旨就是让大家体验一下区块链程序的魅力。

如果你自己动手实践的话,会觉得很有意思。

这里就要和大家吐槽一句了,有些时候,有个服务器是真的爽,既能搞网站,又能搞其他的,现在这个时代,各种技术最后都要最终落脚到网络上,你说你就一个单机电脑,写再多程序,只在自己电脑上跑,真正工作或者其他什么情况,让你在网络上部署,你肯定出错啊。倒不如早早的就开始拥抱网络,拥有自己的一台服务器,或者多台,早早下手训练,将来必定脱颖而出。这个可以拿什么类比?当时单机的时候,数据量不大,你还好处理,但是当数据量一多起来,你就必须得拿大数据的东西来处理了。网络也是一样。

光说不练非好汉,这里就给大家带来一点小的福利:

因为文章都是涉及到服务器的,所以福利就要写在最前面
皮爷这里就有上千元的阿里云和腾讯云的优惠券给你使用(每一款优惠只要点击优惠链接,进入即可领取):

阿里云部分
【阿里云新人1888元云产品通用代金券】:
promotion.aliyun.com/ntms/yunpar…

【阿里云爆款云主机,2折优惠券】:
promotion.aliyun.com/ntms/act/qw…

【阿里云企业级服务器2折优惠券】:
promotion.aliyun.com/ntms/act/en…

腾讯云

【新客户无门槛领取总价值高达2775元代金券,每种代金券限量500张,先到先得】:
cloud.tencent.com/redirect.ph…

【腾讯云服务器、云数据库特惠,3折优惠券】:
cloud.tencent.com/redirect.ph…

代码我已经在公众号里面分享了,想要获取源码的同学,可以关注公号『皮爷撸码』,回复『代码』即可找到,记住对应的代码编号是『HF001』,代码编号是『HF001』,代码编号是『HF001』。

最后,摇一摇,来吗?