前言
区块链今年发展真是飞快!从最初一个陌生的概念,到如今已经在各个行业起步,星星之火大有燎原之势。真希望能拥有自己的区块链练练手O(∩_∩)O~!可是一个人、一台电脑,怎么才能搭起来区块链环境……火到不行的区块链,想说爱你不容易!
Don’t Worry! 小编已经沉迷于区块链和智能合约不可自拔!现在就手把手带你从零开始,5分钟玩转属于自己的区块链!
IBM中国研究院开发的超能云(SuperVessel)平台提供了给区块链爱好者、开发者的区块链开发测试环境。通过该平台,用户能够免费、超快速创建基于Hyperledger Fabric的多节点区块链、并在自己的链上花式玩转智能合约。
准备工作
只需要你的本地浏览器即可!
注册一个账号
访问超能云(SuperVessel)区块链服务的公测地址http://crl.ptopenlab.com:8800/bc
点击右上角Log in(登录)按钮,在弹出的窗口中点击Register(注册),填写邮箱和密码后提交。此时建议去邮箱查看激活邮件,并激活自己的账号(小编提示:懒的激活也没关系,只是某些高级服务必须激活后才能使用哦)。
快速创建自己的区块链
注册完成后,回到主页,点击偌大的GIVE ME A BLOCKCHAIN(给我一个区块链!)按钮。在弹出框中选择你想要的Consensus Plugin(共识插件)和Size(区块链网络节点数量)。
小编备注:目前可选Hyperledger Fabric官方提供的两种共识插件:noops和pbft**。
点击Submit(提交)后,几秒后就能得到自己的区块链,并自动进入监控面板。没错,拿到一个属于自己的区块链就是这么简单!
进入监控面板后可以看到,左侧是智能合约管理面板,包括对智能合约的管理和部署;右侧是网络面板,展示申请到的区块链网络情况,拓扑、节点之间的延迟信息等一目了然;点击右上角的望远镜图标,则可以实时监控各节点的日志信息。最下方是区块链面板,展示当前区块链的整体情况,初始状态下只有一个区块。
部署和使用智能合约
接下来,小编教你如何在自己的区块链上部署和使用智能合约。
在智能合约管理面板的Smart Contracts(智能合约)标签下列出了2个智能合约作为示例,分别为map和chaincode_example02。其中map合约可以实现键值对(key-value)的存储,chaincode_example02合约可以模拟两个人的转账和查询。
小编备注:这2个示例合约的代码可在Hyperledger Fabric源码中找到(https://github.com/hyperledger/fabric/tree/master/examples/chaincode/go)。
以部署和使用chaincode_example02合约为例:
部署合约
点击chaincode_example02合约对应的Deploy(部署)按钮,并填写合约的初始化值,包括合约名、初始函数、初始参数。该合约初始函数为init,初始参数需按格式填写,如[“a”,”100”,”b”,”200”]表示注册两个人a和b,分别给他们100单位和200单位。
点击Deploy按钮,该合约将部署在你的区块链中,该过程大约需要20~40秒时间。当区块链面板出现一个新区块,通常表示合约已部署完成。
调用合约
部署完成后,在智能合约管理面板的My Deployment(我的部署)标签下查看已部署的合约实例。
点击Action下方的Invoke按钮调用智能合约,并填写调用的方法名和相应参数(不同合约的方法名和参数含义不同,具体与合约内容相关哦)。如对该合约,调用invoke方法名,填写参数[“a”,”b”,”50”],表示a给b转50个单位。
点击Submit完成调用后,可以查看区块链情况,此时会生成新的区块。
查询合约
调用完成后,接下来你可以查询合约执行结果。仍然在My Deployment标签下,点击Action下方的Query按钮查询智能合约,并填写查询的方法名和相应参数。如选择query方法名,填写参数[“a”],表示查询a的当前单位。
点击Submit后可以看到a的当前单位为50。你可以再去查询b试试看!
OK,接下来你可以继续操作该合约,观察区块链情况,或者在该区块链上再部署一个新智能合约,比如map。为了方便使用,部署、调用和查询合约的方法名和参数格式都默认填好了,你只需选择一个方法名,照猫画虎改改参数就好!看看你能把链玩到多长~
上传并测试自己的私有智能合约
除了目前提供的两个公有智能合约,你还可以上传并测试自己的私有合约!私有合约只有自己能看到。
在Smart Contracts标签下点击Import private smart contract。
填写合约名和描述,并上传合约代码文件后,点击Import,完成上传。
之后Smart Contracts列表里便出现我上传的合约,可以像前文一样进行部署、调用和查询了。
感兴趣的开发者不妨去学习一下Hyperledger Fabric源码中的合约示例(https://github.com/hyperledger/fabric/tree/master/examples/chaincode/go),动手编写并在平台上测试自己的第一个智能合约吧!
原文发布时间为:2018年02月22日
本文作者:macair123
本文来源:CSDN,如需转载请联系原作者。