实训一:运行第一个智能合约
- 提供get方法获取变量string的值
- 提供set方法设置变量string的值
例:
使用FISCO BCOS搭建4节点的区块链,也可用系统自带的区块链。
2)编写智能合约
可使用系统自带的智能合约IDE编写智能合约
提交方式:
- 提交智能合约源码
提交方式:
- 部署成功后的交易回执截图
- 部署成功后的智能合约截图,截图应包含合约地址
4)向部署的智能合约发送交易
编写一个区块链应用程序,可以通过SDK连接区块链节点,并向智能合约发送交易。
提交方式:
- 提交初始化SDK连接节点源码代码
- 提交HelloWorld合约Java类截图
- 提交调用合约Java类set方法的源代码
- 通过Java调用HelloWorld合约set方法,将变量设置为“Hello From Java!”,在控制台输出交易哈希,截图并提交
- 通过合约IDE调用合约,获取string变量的值,其值应为“Hello From Java!”,截图返回结果并提交
发送的交易(交易哈希)可通过系统自带的区块链浏览器展示,确认在哪个区块中。
参考答案:
1)智能合约:
- 要求constructor构造函数初始化string变量
- 要求get方法是查询交易view/constant/pure中的一种,返回string变量的值
- 要求set方法设置string变量
源码参考(实现方式不唯一):
以Java语言为例,从Solidity智能合约,生成合约Java类,并传入调用set方法所需参数。
- 要求加载SDK的Client实例连接节点截图
- 要求合约Java类的源码截图,可通过工具将Solidity源码转为Java类
- 要求传入合约地址、SDK连接实例及私钥对来初始化/加载一个HelloWorld合约实例
- 要求调用合约实例的set方法,入参为”Hello sent from Java!”
- 要求输出/打印/记录调用set方法返回的交易回执,或打印交易回执的交易哈希
合约Java类参考:
合约Java类调用源码参考,以单元测试代码为例(SDK连接节点端的Client实例初始化代码以截图为准)。
3)区块链浏览器查看上链结果:
- 要求区块链浏览器上查询的交易哈希与上文调用的交易哈希一致、交易的被调用方to为上文部署的合约地址
- 要求交易回执的状态为成功(此处为0x0)
下图以WeBASE-Front为例,查看交易回执