Java SDK部署和调用FISCO BCOS区块链智能合约

这篇具有很好参考价值的文章主要介绍了Java SDK部署和调用FISCO BCOS区块链智能合约。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

使用WeBASE合约管理导出Java项目

Java SDK部署和调用FISCO BCOS区块链智能合约,区块链,java,智能合约

前提

启动FISCO节点和webase-front,部署服务详情可参考官方文档: link

步骤

1.编写智能合约

一个简单的例子:

Table 合约:该合约负责维护候选人的信息。每个候选人都有一个唯一的标识符sign_key,以及与之相关联的其他属性,包括活动名称activity_name、参与者participant、公钥publicKey、签名数据sign_data。通过添加候选人和查询候选人信息等功能,Table合约提供了对候选人信息的管理和检索。

// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;

contract Table {
    struct Candidate {
        string activity_name;
        string participant;
        string publicKey;
        string sign_data;
        string sign_key;
    }

    mapping(string => Candidate) public candidates;

    function addCandidate(string memory activity_name, string memory participant, string memory publicKey, string memory sign_data, string memory sign_key) public {
        candidates[sign_key] = Candidate(activity_name, participant, publicKey, sign_data, sign_key);
    }

    function getCandidateInfo(string memory sign_key) public view returns (string memory, string memory, string memory, string memory, string memory) {
        Candidate memory candidate = candidates[sign_key];
        return (candidate.activity_name, candidate.participant, candidate.publicKey, candidate.sign_data, candidate.sign_key);
    }
}

Java SDK部署和调用FISCO BCOS区块链智能合约,区块链,java,智能合约

Vote 合约:该合约则负责实现投票功能。它引用了Table合约来管理候选人信息。通过调用Table合约中的函数来添加候选人,Vote合约提供了将候选人加入到投票系统中的功能。另外,它还提供了查询候选人信息的功能。

// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;

import "./Table.sol";

contract Vote {
    Table public electionTable;

    event CandidateAdded(string activity_name, string participant, string publicKey, string sign_data, string sign_key);

    constructor() public {
        electionTable = new Table();
    }

    function addCandidate(string memory activity_name, string memory participant, string memory publicKey, string memory sign_data, string memory sign_key) public {
        electionTable.addCandidate(activity_name, participant, publicKey, sign_data, sign_key);
        emit CandidateAdded(activity_name, participant, publicKey, sign_data, sign_key);
    }

    function getCandidateInfo(string memory sign_key) public view returns (string memory, string memory, string memory, string memory, string memory) {
        return electionTable.getCandidateInfo(sign_key);
    }
}

Java SDK部署和调用FISCO BCOS区块链智能合约,区块链,java,智能合约

2.编译及部署智能合约

再编译和部署完智能合约后,可以得到合约的地址

3.导出Java项目

点击右上角导出Java项目后,即可导出一个自命名的Java项目
Java SDK部署和调用FISCO BCOS区块链智能合约,区块链,java,智能合约

4.在IDEA中打开导出的Java项目

项目结构如图:
Java SDK部署和调用FISCO BCOS区块链智能合约,区块链,java,智能合约
这是一个gradle构建的SpringBoot项目

5.编写Controller层来测试智能合约中的方法

TestController.java测试合约的add和get方法是否调用成功

package org.example.demo2.controller;


import org.example.demo2.model.bo.VoteAddCandidateInputBO;
import org.example.demo2.model.bo.VoteGetCandidateInfoInputBO;
import org.example.demo2.service.VoteService;
import org.fisco.bcos.sdk.v3.transaction.model.dto.CallResponse;
import org.fisco.bcos.sdk.v3.transaction.model.dto.TransactionResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {


    @Autowired
    private VoteService voteService;

    @PostMapping("/addCandidate")
    public TransactionResponse set(@RequestBody VoteAddCandidateInputBO vai) throws Exception {

        TransactionResponse result = voteService.addCandidate(vai);

        return result;
    }

    @GetMapping("/getCandidateInfo")
    public CallResponse get(@RequestBody VoteGetCandidateInfoInputBO vgi) throws Exception {
        CallResponse response = voteService.getCandidateInfo(vgi);

        return response;
    }
}

Java SDK部署和调用FISCO BCOS区块链智能合约,区块链,java,智能合约

6.启动项目

项目启动成功如图所示:
Java SDK部署和调用FISCO BCOS区块链智能合约,区块链,java,智能合约

7.Postman测试add和get方法

下图为add方法:
Java SDK部署和调用FISCO BCOS区块链智能合约,区块链,java,智能合约
下图为get方法:
Java SDK部署和调用FISCO BCOS区块链智能合约,区块链,java,智能合约
调用方法成功文章来源地址https://www.toymoban.com/news/detail-842347.html

到了这里,关于Java SDK部署和调用FISCO BCOS区块链智能合约的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • fisco bcos 智能合约开发

    项目需求2张表:资源表、资源访问记录表,需要资源上链智能合约、访问记录上链智能合约、以及资源所有权转移智能合约。 FISCO BCOS提供合约KV存储接口开发模式,可以通过合约创建表,并对创建的表进行增删改查操作。 所以,针对2表创建两个智能合约即可实现对表的增删

    2024年02月02日
    浏览(28)
  • 区块链-FISCO BCOS Go SDK使用(一)

    上一章,介绍了智能合约的编译和部署,这一章,介绍fisco-bcos go-sdk的用法,首先,先下载go-sdk源码到本地 Go开发环境 Golang = 1.17 基本开发组件 Git(Windows、Linux及MacOS需要) Git bash(仅Windows需要) 如果用的是fisco-bcos2.x.使用以下命令 如果是fisco-bcos3.x 如果缺少库,可以提示安

    2024年01月20日
    浏览(43)
  • FISCO BCOS(三十四)———商品溯源(智能合约+后端)

    Goods.sol :

    2024年02月04日
    浏览(61)
  • Fisco-Bcos智能合约开发案例----商品溯源

    1个商品种类----》n个商品,同时还可以创建多个商品种类(工厂合约的作用) 1.部署工厂合约 2.创建商品种类 3. 创建对应的商品 4.查询商品种类 5. 查询商品状态 0–生产者,1—运输者,2—超市售卖者,3—消费者 6. 查询商品溯源信息 7.改变商品状态 8.查询商品溯源

    2024年02月11日
    浏览(35)
  • java-sdk-demo 测试自己部署的合约(PerformanceXXX.java)区块链性能测试

    祝大家龙年快乐呀! 最近一直在做区块链的性能测试,我发现目前很多文档里面,都没有仔细介绍怎么测试自己的合约,我在自己做实验期间遇到了很多问题,网上没有找到答案,所以我成功之后,就自己遇到的一些问题写一个文档,希望对大家有一些帮助。 一、我们将s

    2024年02月03日
    浏览(18)
  • 区块链java开发智能合约nf(部署第一个NFT智能合约)

    手把手教你区块链java开发智能合约nft-第二篇(部署第一个NFT智能合约) 刚搞区块链开发真的是太累了,自己摸石头过河,动不动就报错,网上搜索错误,一律看不出什么问题,或者报错的信息太少,问同事同事不鸟,问领导,领导也烦,无奈,对于英文不好的我,只能被迫

    2024年02月12日
    浏览(38)
  • 【FISCO BCOS】二十、多机部署区块链

    目录 一、准备环境 二、开始搭建 三、检查节点          1.检查节点进程

    2024年02月05日
    浏览(33)
  • 【FISCO BCOS】十九、区块链浏览器部署

    目录 一、环境依赖 检查环境  1.检查java  二、拉取安装脚本 获取部署安装包 ​编辑 解压安装包 进入目录 三、修改配置  四、部署服务 五、状态检查 检查前后端进程 1.检查后端server进程 2.检查前端的nginx进程 检查进程端口 六、使用区块链浏览器 1.配置群组 2.添加节点 

    2024年02月04日
    浏览(39)
  • 区块链学习一(FISCO BCOS部署&控制台部署&第一个HelloWorld)

    系统环境:CentOS Linux release 7.6.1810 fisco版本:3.3.0 jdk版本:1.8 注:github下载慢,可以使用下面地址下载 给脚本操作权限 执行脚本,自己学习的,创建一个节点就可以了 安装完成之后fisco目录下是这样的 * 进入到nodes目录,然后进入到127.0.0.1目录执行命令 * 检查进程是否启动 安

    2024年02月06日
    浏览(35)
  • fisco-bcos 部署企业级国密区块链

    首先说明,我目前所用的fisco-bcos generator企业部署版本尚不支持docker部署,只能在主机上直接部署。 下面进入正题 我们本次搭建的是三机构A、B、C组成的联盟链,AB首先组成群组Group1,C后期加入Group1。 本文所有的操作目录都是基于generator文件夹 在A、B、C三台机器上下载并安

    2024年02月03日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包