实训一:运行第一个智能合约

    1. 提供get方法获取变量string的值
    2. 提供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为例,查看交易回执