fisco bcos 智能合约开发

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

项目需求2张表:资源表、资源访问记录表,需要资源上链智能合约、访问记录上链智能合约、以及资源所有权转移智能合约。

FISCO BCOS提供合约KV存储接口开发模式,可以通过合约创建表,并对创建的表进行增删改查操作。

所以,针对2表创建两个智能合约即可实现对表的增删改查操作。资源的所有权转移可以通过对资源表的数据属主的修改实现。

1. KVTable合约

  • Solidity合约只需要引入FISCO BCOS官方提供的Table.sol抽象接口合约文件即可。

  • webankblockchain-liquid(以下简称WBC-Liquid)合约在实现合约之前对KVTable的接口进行声明使用即可。

Table包含分布式存储专用的智能合约接口,其接口实现在区块链节点,其中,TableManager可以创建专属KV表,KVTable可以用作表进行get/set操作。

使用KV存储预编译合约开发应用 — FISCO BCOS v3 v3.0.0 文档

1、资源表

resource
ipfs_hash(key) user(value)
QmUpYtJoyby5jYg9oez8qLpMxqae4pe6rHxsmtWLH2APTZ 20211165XX
// SPDX-License-Identifier: Apache-2.0
pragma solidity >=0.6.10 <0.8.20;
pragma experimental ABIEncoderV2;

import "./Table.sol";

contract r_upload{
    event RegisterEvent(
        int256 ret,
        string indexed ipfs_hash,
        string indexed user
    );
    KVTable kvTable;
    TableManager tm;
    string constant tableName = "resource";

    constructor() public {
        // 构造函数中创建r_upload表
        tm = TableManager(address(0x1002));

        // 资产管理表, key : ipfs_hash , field : user
        // |  存储hash(主键)      |     资源属主      |
        // |-------------------- |-------------------|
        // |        ipfs_hash    |      user         |
        // |---------------------|-------------------|
        //

        // create table
        tm.createKVTable(tableName, "ipfs_hash", "user");

        // get table address
        address t_address = tm.openTable(tableName);
        kvTable = KVTable(t_address);
    }
    /*
    描述 : 根据资源hash查询资源属主
    参数 :
            ipfs_hash : 资源hash

    返回值:
            参数一: 成功返回0, 账户不存在返回-1
            参数二: 第一个参数为0时有效,资源属主
    */
    function select(string memory ipfs_hash) public view returns (bool, string memory) {
        // 查询
        bool result;
        string memory user;
        (result, user) = kvTable.get(ipfs_hash);

        return (result, user);
    }
     /*
    描述 : 资源上链
    参数 :
            ipfs_hash : 资源hash
            user  : 资源属主
    返回值:
            0  资产注册成功
            -1 资产账户已存在
            -2 其他错误
    */
    function register(string memory ipfs_hash, string memory user)
    public
    returns (int256)
    {
        int256 ret_code = 0;
        bool ret = true;
        string memory user_1="2021116579";
        // 查询资源是否上链
        (ret,user_1) = select(ipfs_hash);
        if (ret != true) {
            // 不存在,上链
            // 插入
            int32 count = kvTable.set(ipfs_hash, user);
            if (count == 1) {
                // 成功
                ret_code = 0;
            } else {
                // 失败? 无权限或者其他错误
                ret_code = - 2;
            }
        } else {
            //资源已存在
            ret_code = - 1;
        }

        emit RegisterEvent(ret_code, ipfs_hash, user);
        return ret_code;
    }
}

fisco合约开发实现对表的管理,智能合约,区块链文章来源地址https://www.toymoban.com/news/detail-786555.html

到了这里,关于fisco bcos 智能合约开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • FISCO BCOS十三、通过Truffle和remix实现合约自毁漏洞(以及修复方法)

    上一篇我写了通过Truffle和remix复现智能合约的溢出漏洞(以及修复方法),这一篇让我们来了解一下合约另外一个漏洞--自毁漏洞。 我们先来了解 solidity 中能够转账的操作都有哪些: transfer :转账出错会抛出异常后面代码不执行; send :转账出错不会抛出异常只返回 true/f

    2024年03月16日
    浏览(46)
  • FISCO BCOS 搭建区块链,在SpringBoot中调用合约

    使用的是FISCO BCOS 和 WeBASE-Front来搭建区块链,详细教程: https://blog.csdn.net/yueyue763184/article/details/128924144?spm=1001.2014.3001.5501 搭建好能达到下图效果即可: 点击“ 测试用户 ”,即可“ 新增用户 ”。 点击“ 导出 ”,选择 .pem 文件。 在“ 合约IDE ”中准备智能合约,新建合约文

    2024年02月03日
    浏览(34)
  • FISCO BCOS开发第一个区块链应用--小白实战

    官方链接 简单的步骤直接跳过了,主要是记录下整个过程中出现问题最多的地方 第一步. 安装环境 首先,我们需要安装JDK以及集成开发环境 首先,在官网上下载JDK14( JDK1.8 至JDK 14都支持 )并安装 然后,修改环境变量 视频讲解 文字步骤 进入IntelliJ IDE官网,下载并安装社区

    2024年02月02日
    浏览(41)
  • Fisco Bcos区块链五(后端区块链应用开发框架及流程)

    在IntelliJ IDE中创建一个gradle项目,勾选Gradle和Java,并输入工程名 asset-app 。 注意:该项目的源码可以用以下方法获得并参考。(此步骤为非必须步骤) 注解 如果因为网络问题导致长时间无法下载,请尝试将 199.232.28.133 raw.githubusercontent.com 追加到 /etc/hosts 中,或者请尝试 cu

    2024年02月14日
    浏览(42)
  • FISCO BCOS(二十七)———接口方式操作WeBase(java实现)

    1.1、安装jdk1.8 1.2、安装mysql 1.3、安装python 1.4、安装pymysql 2.1、需要在github上下载如下压缩包和脚本 2.2、将压缩包和脚本上传至终端,随便放哪 2.3、创建目录

    2024年02月02日
    浏览(25)
  • Fisco Bcos区块链一(搭建单群组FISCO BCOS联盟链)

    技术文档:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/index.html 1、搭建单群组FISCO BCOS联盟链 1. 安装centos依赖包 安装依赖包openssl、curl 2. 创建操作目录, 下载安装脚本 如果因为网络问题导致长时间无法下载build_chain.sh脚本,请尝试 3. 搭建单群组4节点联盟链 在fisco目录下执

    2024年02月10日
    浏览(35)
  • FISCO-BCOS 十四、使用Caliper进行压力测试fisco-bcos

            前言:根据操作系统版本不同,部署环境不同,一些细节差别可能造成测试失败等问题,此文仅做参考,应以实际应用为主。         参考官方文档:压力测试指南 — FISCO BCOS v2.9.0 文档 部署Caliper的计算机需要有外网权限; 操作系统版本需要满足以下要求:Ub

    2024年02月16日
    浏览(32)
  • 【FISCO-BCOS】十四、使用Caliper进行压力测试fisco-bcos

            前言:根据操作系统版本不同,部署环境不同,一些细节差别可能造成测试失败等问题,此文仅做参考,应以实际应用为主。         参考官方文档:压力测试指南 — FISCO BCOS v2.9.0 文档 部署Caliper的计算机需要有外网权限; 操作系统版本需要满足以下要求:Ub

    2024年02月15日
    浏览(32)
  • FISCO BCOS

    一、wsl(windows子系统)安装步骤 wsl(windows子系统)简要介绍和安装步骤_Once_day的博客-CSDN博客_wsl 1、自动安装命令         管理员身份打开CMD,输入wsl --install。 用时很长特别是安装Ubuntu时,可以参考上面博客自行安装。可以在那一步退出,然后到应用商店安装。完成后重启即可

    2024年01月20日
    浏览(27)
  • FISCO BCOS环境搭建

    系统环境 Ubuntu 16.04+ 安装依赖openssl、curl ** ubuntu** sudo apt install -y openssl curl 在fisco-bcos操作目录下执行下载脚本 将下载的脚本设置权限 执行脚本,生成4节点的fisco链,最后输出All completed,表示节点生成成功 启动所有节点 安装Java环境 获取控制台下载脚本,并执行下载控制台 c

    2024年02月01日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包