Fisco-Bcos的环境搭建及Data-Export导出组件的使用

这篇具有很好参考价值的文章主要介绍了Fisco-Bcos的环境搭建及Data-Export导出组件的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注意:由于Data-Export组件暂时只支持Fisco-Bcos 2.x系列(这个也是目前使用最多最稳定的系列),故这里使用的是目前最新的Fisco-Bcos 2.x。

Fisco-Bcos链环境搭建

区块链网络部署

主要一步步按照这个官方的操作即可区块链网络搭建
环境为Ubuntu18.04,java版本要使用及11以上的,按照官网教程在ubuntu18.04下默认安装的应该就是java11。

区块链应用部署

官网示例部署

大部分参考区块链应用部署
第一个小坑:如果想偷懒有写好的应用的话,如官网给的示例

$ cd ~/fisco
$ curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/tools/asset-app.tar.gz
# 解压得到Java工程项目asset-app
$ tar -zxf asset-app.tar.gz

使用是需要配置SDK证书,也就是执行如下指令

# 假设我们将asset-app放在~/fisco目录下 进入~/fisco目录
$ cd ~/fisco
# 创建放置证书的文件夹
$ mkdir -p asset-app/src/test/resources/conf
# 拷贝节点证书到项目的资源目录
$ cp -r nodes/127.0.0.1/sdk/* asset-app/src/test/resources/conf
修改应用部署

以下是对官网资产交易的示例的修改
主要修改为交易时可以添加备注,效果如图
fisco bcos环境配置,区块链,java,开发语言
修改步骤如下:

  1. 首先修改智能合约,主要对合约中的转账函数修改,此步骤为官网步骤开发第一个区块链应用的第二个步骤-设计与开发智能合约部分

修改后的代码如下

/*
描述 : 资产转移
参数 : 
from_account : 转移资产账户
to_account : 接收资产账户
amount : 转移金额
comments :备注
返回值:
0  资产转移成功
-1 转移资产账户不存在
-2 接收资产账户不存在
-3 金额不足
-4 金额溢出
-5 其他错误
修改:主要修改参数部分,增加comments字段
*/
function transfer(string memory from_account, string memory to_account, uint256 amount, string memory comments) public returns(int256) {
  // 查询转移资产账户信息
  int ret_code = 0;
  int256 ret = 0;
  uint256 from_asset_value = 0;
  uint256 to_asset_value = 0;
  //string  comments = 0;
  // 转移账户是否存在?
  (ret, from_asset_value) = select(from_account);
  if(ret != 0) {
      ret_code = -1;
      // 转移账户不存在
      emit TransferEvent(ret_code, from_account, to_account, amount, comments);
      return ret_code;

    }

  // 接受账户是否存在?
  (ret, to_asset_value) = select(to_account);
  if(ret != 0) {
      ret_code = -2;
      // 接收资产的账户不存在
      emit TransferEvent(ret_code, from_account, to_account, amount, comments);
      return ret_code;
    }

  if(from_asset_value < amount) {
      ret_code = -3;
      // 转移资产的账户金额不足
      emit TransferEvent(ret_code, from_account, to_account, amount, comments);
      return ret_code;
    } 

  if (to_asset_value + amount < to_asset_value) {
      ret_code = -4;
      // 接收账户金额溢出
      emit TransferEvent(ret_code, from_account, to_account, amount, comments);
      return ret_code;
    }

  Table table = openTable();

  Entry entry0 = table.newEntry();
  entry0.set("account", from_account);
  entry0.set("asset_value", int256(from_asset_value - amount));
  // 更新转账账户
  int count = table.update(from_account, entry0, table.newCondition());
  if(count != 1) {
      ret_code = -5;
      // 失败? 无权限或者其他错误?
      emit TransferEvent(ret_code, from_account, to_account, amount, comments);
      return ret_code;
    }

  Entry entry1 = table.newEntry();
  entry1.set("account", to_account);
  entry1.set("asset_value", int256(to_asset_value + amount));
  // 更新接收账户
  table.update(to_account, entry1, table.newCondition());

  emit TransferEvent(ret_code, from_account, to_account, amount,comments);

  return ret_code;
}
}

此小节其余步骤与官网无异,套用和编译即可

  1. 接着是对调用代码AssetClient.java的修改,它位于/src/main/java/org/fisco/bcos/asset/client目录下,主要也是对转账函数以及main函数参数调用处的修改,此步骤为官网步骤开发第一个区块链应用的第四个步骤-创建区块链应用项目部分的。修改代码如下,
//转账部分修改,主要修改参数部分,增加comment字段
public void transferAsset(String fromAssetAccount, String toAssetAccount, BigInteger amount,String comments) {
    //System.out.println(comments);
    try {
      String contractAddress = loadAssetAddr();
      Asset asset = Asset.load(contractAddress, client, cryptoKeyPair);
      TransactionReceipt receipt = asset.transfer(fromAssetAccount, toAssetAccount, amount, comments);
      List<Asset.TransferEventEventResponse> response = asset.getTransferEventEvents(receipt); 
      if (!response.isEmpty()) {
        if (response.get(0).ret.compareTo(new BigInteger("0")) == 0) {
          //System.out.println(comments);
          System.out.printf(
              " transfer success => from_asset: %s, to_asset: %s, amount: %s ,comments: %s\n",
              fromAssetAccount, toAssetAccount, amount , comments);
        } else {
          System.out.printf(
              " transfer asset account failed, ret code is %s \n", response.get(0).ret.toString());
        }
      } else {
        System.out.println(" event log not found, maybe transaction not exec. ");
      }
    } catch (Exception e) {
      // TODO Auto-generated catch block
      // e.printStackTrace();

      logger.error(" registerAssetAccount exception, error message is {}", e.getMessage());
      System.out.printf(" register asset account failed, error message is %s\n", e.getMessage());
    }
  }

//main 函数参数调用修改
public static void main(String[] args) throws Exception {
    if (args.length < 1) {
      Usage();
    }

    AssetClient client = new AssetClient();
    client.initialize();

    switch (args[0]) {
      case "deploy":
        client.deployAssetAndRecordAddr();
        break;
      case "query":
        if (args.length < 2) {
          Usage();
        }
        client.queryAssetAmount(args[1]);
        break;
      case "register":
        if (args.length < 3) {
          Usage();
        }
        client.registerAssetAccount(args[1], new BigInteger(args[2]));
        break;
      case "transfer":
        if (args.length < 5) {
          Usage();
        }
        client.transferAsset(args[1], args[2], new BigInteger(args[3]),args[4]);
        break;
      default:
        {
          Usage();
        }
    }
    System.exit(0);
  }

然后usage这些就自行修改。

  1. 改个小bug

注意:整体修改完成后的时候出现过一个小bug,就是comments字段如果输入的英文字符串中间带有空格的话,将会丢失第一个空格之后的所有内容。如上图,若comments输入的内容为"Hello World",存入链上的数据将会是"Hello。原因在于,java执行带有参数的时候会将空格之后的视为另一个参数。
经多次测试,若想解决这个问题,需要对asset_run.sh做如下修改。将最后一行的$@修改为"$@",同时需要java版本为11及以上(1.8有bug)

Data-Export数据导出系统安装

再次提醒,此组件只支持FISCO-BCOS 2.x 版本,官网的步骤数据导出系统
然后要说的是按照官网这个流程是失败了的,原因暂时未知,尝试过切换多种版本java,尝试过更换数据库(官网用的是Mariadb)都无果。。。
于是采用的第二个办法,通过docker快速部署,参考docker快速部署
注意:通过这个部署后的mysql端口是3307,另外启用服务的时候要先启动链
如果一切运行正常,你将得到数据库结构如下
fisco bcos环境配置,区块链,java,开发语言
有关交易的细节在tx_receipt_raw_data的input字段里。
Over!Over!文章来源地址https://www.toymoban.com/news/detail-763574.html

到了这里,关于Fisco-Bcos的环境搭建及Data-Export导出组件的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【FISCO-BCOS】十四、使用Caliper进行压力测试fisco-bcos

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

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

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

    2024年02月11日
    浏览(44)
  • 区块链实验室(14) - 编译FISCO-BCOS

    FISCO-BCOS是一种区块链平台,与Hyperledger和Ethereum有些不同,详见FISCO BCOS 区块链 编译FISCO BCOS源码的目的是修改或者新增其中功能模块,进行对比实验,验证新想法、新创意的效果。编译的步骤很简单,按技术文档一步一步进行即可。可能碰到的问题是访问网站raw.githubusercont

    2024年02月13日
    浏览(41)
  • 基于Fisco-Bcos的区块链智能合约-简单案例实践

    智能合约是指把合同/协议条款以代码的形式电子化地放到区块链网络上。FISCO BCOS平台支持两种智能合约类型:Solidity智能合约与预编译智能合约 Solidity与Java类似。代码写好后,都需要通过编译器将代码转换成二进制,在Java中,编译器是Javac,而对于Solidity,是solc。生成后的

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

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

    2024年02月03日
    浏览(42)
  • FISCO-BCOS 命令交互控制台 Console-命令大全(超详细)

    引言 此文章基于fisco-bocs官方技术文档进行整理并加以解释,在这里可以快速理解命令的含义和更快地上手,可以当作命令词典使用。 前提条件 部署好区块链网络 配置好console,即拷贝配置文件等等 console 目录如下: 使用账户生成脚本生成账户(非国密版) PEM格式 p12格式 启动控

    2024年02月04日
    浏览(62)
  • 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日
    浏览(42)
  • 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日
    浏览(47)
  • 搭建FISCO BCOS区块链平台

    这是为北京交通大学《区块链技术》课程制作的实验教程,因面向全校研究生开放选课,故提供了详细的步骤。本文是实验第一步,用于搭建FISCO BCOS区块链平台。 详细阅读FISCO BCOS官方文档: https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/index.html VMware虚拟机安装包下载地址: https

    2024年02月06日
    浏览(53)
  • FISCO BCOS 联盟链Pro搭建

    FISCO BCOS 3.0支持Pro版本微服务区块链架构, Pro版本FISCO BCOS包含RPC服务、Gateway服务和节点服务,每个服务均可独立部署和扩容 ,本章通过单机搭建Pro版本2节点FISCO BCOS联盟链,帮助用户掌握Pro版本FISCO BCOS区块链的部署流程。请参考这里使用支持的 硬件和平台 进行操作。 注意

    2024年02月06日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包