国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Fisco-Bcos的環(huán)境搭建及Data-Export導(dǎo)出組件的使用

這篇具有很好參考價(jià)值的文章主要介紹了Fisco-Bcos的環(huán)境搭建及Data-Export導(dǎo)出組件的使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

注意:由于Data-Export組件暫時(shí)只支持Fisco-Bcos 2.x系列(這個(gè)也是目前使用最多最穩(wěn)定的系列),故這里使用的是目前最新的Fisco-Bcos 2.x。

Fisco-Bcos鏈環(huán)境搭建

區(qū)塊鏈網(wǎng)絡(luò)部署

主要一步步按照這個(gè)官方的操作即可區(qū)塊鏈網(wǎng)絡(luò)搭建
環(huán)境為Ubuntu18.04,java版本要使用及11以上的,按照官網(wǎng)教程在ubuntu18.04下默認(rèn)安裝的應(yīng)該就是java11。

區(qū)塊鏈應(yīng)用部署

官網(wǎng)示例部署

大部分參考區(qū)塊鏈應(yīng)用部署
第一個(gè)小坑:如果想偷懶有寫好的應(yīng)用的話,如官網(wǎng)給的示例

$ cd ~/fisco
$ curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/tools/asset-app.tar.gz
# 解壓得到Java工程項(xiàng)目asset-app
$ tar -zxf asset-app.tar.gz

使用是需要配置SDK證書,也就是執(zhí)行如下指令

# 假設(shè)我們將asset-app放在~/fisco目錄下 進(jìn)入~/fisco目錄
$ cd ~/fisco
# 創(chuàng)建放置證書的文件夾
$ mkdir -p asset-app/src/test/resources/conf
# 拷貝節(jié)點(diǎn)證書到項(xiàng)目的資源目錄
$ cp -r nodes/127.0.0.1/sdk/* asset-app/src/test/resources/conf
修改應(yīng)用部署

以下是對(duì)官網(wǎng)資產(chǎn)交易的示例的修改
主要修改為交易時(shí)可以添加備注,效果如圖
fisco bcos環(huán)境配置,區(qū)塊鏈,java,開發(fā)語言
修改步驟如下:

  1. 首先修改智能合約,主要對(duì)合約中的轉(zhuǎn)賬函數(shù)修改,此步驟為官網(wǎng)步驟開發(fā)第一個(gè)區(qū)塊鏈應(yīng)用的第二個(gè)步驟-設(shè)計(jì)與開發(fā)智能合約部分

修改后的代碼如下

/*
描述 : 資產(chǎn)轉(zhuǎn)移
參數(shù) : 
from_account : 轉(zhuǎn)移資產(chǎn)賬戶
to_account : 接收資產(chǎn)賬戶
amount : 轉(zhuǎn)移金額
comments :備注
返回值:
0  資產(chǎn)轉(zhuǎn)移成功
-1 轉(zhuǎn)移資產(chǎn)賬戶不存在
-2 接收資產(chǎn)賬戶不存在
-3 金額不足
-4 金額溢出
-5 其他錯(cuò)誤
修改:主要修改參數(shù)部分,增加comments字段
*/
function transfer(string memory from_account, string memory to_account, uint256 amount, string memory comments) public returns(int256) {
  // 查詢轉(zhuǎn)移資產(chǎn)賬戶信息
  int ret_code = 0;
  int256 ret = 0;
  uint256 from_asset_value = 0;
  uint256 to_asset_value = 0;
  //string  comments = 0;
  // 轉(zhuǎn)移賬戶是否存在?
  (ret, from_asset_value) = select(from_account);
  if(ret != 0) {
      ret_code = -1;
      // 轉(zhuǎn)移賬戶不存在
      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;
      // 接收資產(chǎn)的賬戶不存在
      emit TransferEvent(ret_code, from_account, to_account, amount, comments);
      return ret_code;
    }

  if(from_asset_value < amount) {
      ret_code = -3;
      // 轉(zhuǎn)移資產(chǎn)的賬戶金額不足
      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));
  // 更新轉(zhuǎn)賬賬戶
  int count = table.update(from_account, entry0, table.newCondition());
  if(count != 1) {
      ret_code = -5;
      // 失敗? 無權(quán)限或者其他錯(cuò)誤?
      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;
}
}

此小節(jié)其余步驟與官網(wǎng)無異,套用和編譯即可

  1. 接著是對(duì)調(diào)用代碼AssetClient.java的修改,它位于/src/main/java/org/fisco/bcos/asset/client目錄下,主要也是對(duì)轉(zhuǎn)賬函數(shù)以及main函數(shù)參數(shù)調(diào)用處的修改,此步驟為官網(wǎng)步驟開發(fā)第一個(gè)區(qū)塊鏈應(yīng)用的第四個(gè)步驟-創(chuàng)建區(qū)塊鏈應(yīng)用項(xiàng)目部分的。修改代碼如下,
//轉(zhuǎn)賬部分修改,主要修改參數(shù)部分,增加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 函數(shù)參數(shù)調(diào)用修改
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. 改個(gè)小bug

注意:整體修改完成后的時(shí)候出現(xiàn)過一個(gè)小bug,就是comments字段如果輸入的英文字符串中間帶有空格的話,將會(huì)丟失第一個(gè)空格之后的所有內(nèi)容。如上圖,若comments輸入的內(nèi)容為"Hello World",存入鏈上的數(shù)據(jù)將會(huì)是"Hello。原因在于,java執(zhí)行帶有參數(shù)的時(shí)候會(huì)將空格之后的視為另一個(gè)參數(shù)。
經(jīng)多次測試,若想解決這個(gè)問題,需要對(duì)asset_run.sh做如下修改。將最后一行的$@修改為"$@",同時(shí)需要java版本為11及以上(1.8有bug)

Data-Export數(shù)據(jù)導(dǎo)出系統(tǒng)安裝

再次提醒,此組件只支持FISCO-BCOS 2.x 版本,官網(wǎng)的步驟數(shù)據(jù)導(dǎo)出系統(tǒng)
然后要說的是按照官網(wǎng)這個(gè)流程是失敗了的,原因暫時(shí)未知,嘗試過切換多種版本java,嘗試過更換數(shù)據(jù)庫(官網(wǎng)用的是Mariadb)都無果。。。
于是采用的第二個(gè)辦法,通過docker快速部署,參考docker快速部署
注意:通過這個(gè)部署后的mysql端口是3307,另外啟用服務(wù)的時(shí)候要先啟動(dòng)鏈
如果一切運(yùn)行正常,你將得到數(shù)據(jù)庫結(jié)構(gòu)如下
fisco bcos環(huán)境配置,區(qū)塊鏈,java,開發(fā)語言
有關(guān)交易的細(xì)節(jié)在tx_receipt_raw_data的input字段里。
Over!Over!文章來源地址http://www.zghlxwxcb.cn/news/detail-763574.html

到了這里,關(guān)于Fisco-Bcos的環(huán)境搭建及Data-Export導(dǎo)出組件的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • FISCO-BCOS 十四、使用Caliper進(jìn)行壓力測試fisco-bcos

    ????????前言:根據(jù)操作系統(tǒng)版本不同,部署環(huán)境不同,一些細(xì)節(jié)差別可能造成測試失敗等問題,此文僅做參考,應(yīng)以實(shí)際應(yīng)用為主。 ? ? ? ? 參考官方文檔:壓力測試指南 — FISCO BCOS v2.9.0 文檔 部署Caliper的計(jì)算機(jī)需要有外網(wǎng)權(quán)限; 操作系統(tǒng)版本需要滿足以下要求:Ub

    2024年02月16日
    瀏覽(23)
  • Fisco-Bcos智能合約開發(fā)案例----商品溯源

    Fisco-Bcos智能合約開發(fā)案例----商品溯源

    1個(gè)商品種類----》n個(gè)商品,同時(shí)還可以創(chuàng)建多個(gè)商品種類(工廠合約的作用) 1.部署工廠合約 2.創(chuàng)建商品種類 3. 創(chuàng)建對(duì)應(yīng)的商品 4.查詢商品種類 5. 查詢商品狀態(tài) 0–生產(chǎn)者,1—運(yùn)輸者,2—超市售賣者,3—消費(fèi)者 6. 查詢商品溯源信息 7.改變商品狀態(tài) 8.查詢商品溯源

    2024年02月11日
    瀏覽(64)
  • 區(qū)塊鏈實(shí)驗(yàn)室(14) - 編譯FISCO-BCOS

    區(qū)塊鏈實(shí)驗(yàn)室(14) - 編譯FISCO-BCOS

    FISCO-BCOS是一種區(qū)塊鏈平臺(tái),與Hyperledger和Ethereum有些不同,詳見FISCO BCOS 區(qū)塊鏈 編譯FISCO BCOS源碼的目的是修改或者新增其中功能模塊,進(jìn)行對(duì)比實(shí)驗(yàn),驗(yàn)證新想法、新創(chuàng)意的效果。編譯的步驟很簡單,按技術(shù)文檔一步一步進(jìn)行即可??赡芘龅降膯栴}是訪問網(wǎng)站raw.githubusercont

    2024年02月13日
    瀏覽(39)
  • 基于Fisco-Bcos的區(qū)塊鏈智能合約-簡單案例實(shí)踐

    基于Fisco-Bcos的區(qū)塊鏈智能合約-簡單案例實(shí)踐

    智能合約是指把合同/協(xié)議條款以代碼的形式電子化地放到區(qū)塊鏈網(wǎng)絡(luò)上。FISCO BCOS平臺(tái)支持兩種智能合約類型:Solidity智能合約與預(yù)編譯智能合約 Solidity與Java類似。代碼寫好后,都需要通過編譯器將代碼轉(zhuǎn)換成二進(jìn)制,在Java中,編譯器是Javac,而對(duì)于Solidity,是solc。生成后的

    2024年02月09日
    瀏覽(26)
  • fisco-bcos 部署企業(yè)級(jí)國密區(qū)塊鏈

    fisco-bcos 部署企業(yè)級(jí)國密區(qū)塊鏈

    首先說明,我目前所用的fisco-bcos generator企業(yè)部署版本尚不支持docker部署,只能在主機(jī)上直接部署。 下面進(jìn)入正題 我們本次搭建的是三機(jī)構(gòu)A、B、C組成的聯(lián)盟鏈,AB首先組成群組Group1,C后期加入Group1。 本文所有的操作目錄都是基于generator文件夾 在A、B、C三臺(tái)機(jī)器上下載并安

    2024年02月03日
    瀏覽(69)
  • FISCO-BCOS 命令交互控制臺(tái) Console-命令大全(超詳細(xì))

    引言 此文章基于fisco-bocs官方技術(shù)文檔進(jìn)行整理并加以解釋,在這里可以快速理解命令的含義和更快地上手,可以當(dāng)作命令詞典使用。 前提條件 部署好區(qū)塊鏈網(wǎng)絡(luò) 配置好console,即拷貝配置文件等等 console 目錄如下: 使用賬戶生成腳本生成賬戶(非國密版) PEM格式 p12格式 啟動(dòng)控

    2024年02月04日
    瀏覽(30)
  • FISCO BCOS環(huán)境搭建

    系統(tǒng)環(huán)境 Ubuntu 16.04+ 安裝依賴openssl、curl ** ubuntu** sudo apt install -y openssl curl 在fisco-bcos操作目錄下執(zhí)行下載腳本 將下載的腳本設(shè)置權(quán)限 執(zhí)行腳本,生成4節(jié)點(diǎn)的fisco鏈,最后輸出All completed,表示節(jié)點(diǎn)生成成功 啟動(dòng)所有節(jié)點(diǎn) 安裝Java環(huán)境 獲取控制臺(tái)下載腳本,并執(zhí)行下載控制臺(tái) c

    2024年02月01日
    瀏覽(34)
  • Fisco Bcos區(qū)塊鏈一(搭建單群組FISCO BCOS聯(lián)盟鏈)

    Fisco Bcos區(qū)塊鏈一(搭建單群組FISCO BCOS聯(lián)盟鏈)

    技術(shù)文檔:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/index.html 1、搭建單群組FISCO BCOS聯(lián)盟鏈 1. 安裝centos依賴包 安裝依賴包openssl、curl 2. 創(chuàng)建操作目錄, 下載安裝腳本 如果因?yàn)榫W(wǎng)絡(luò)問題導(dǎo)致長時(shí)間無法下載build_chain.sh腳本,請(qǐng)嘗試 3. 搭建單群組4節(jié)點(diǎn)聯(lián)盟鏈 在fisco目錄下執(zhí)

    2024年02月10日
    瀏覽(52)
  • 搭建FISCO BCOS區(qū)塊鏈平臺(tái)

    搭建FISCO BCOS區(qū)塊鏈平臺(tái)

    這是為北京交通大學(xué)《區(qū)塊鏈技術(shù)》課程制作的實(shí)驗(yàn)教程,因面向全校研究生開放選課,故提供了詳細(xì)的步驟。本文是實(shí)驗(yàn)第一步,用于搭建FISCO BCOS區(qū)塊鏈平臺(tái)。 詳細(xì)閱讀FISCO BCOS官方文檔: https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/index.html VMware虛擬機(jī)安裝包下載地址: https

    2024年02月06日
    瀏覽(22)
  • FISCO BCOS 聯(lián)盟鏈Max搭建

    FISCO BCOS 聯(lián)盟鏈Max搭建

    為了能夠支撐海量交易上鏈場景,v3.0.0推出了Max版本FISCO BCOS, Max版本FISCO BCOS旨在提供海量存儲(chǔ)服務(wù)、高性能可擴(kuò)展的執(zhí)行模塊、高可用的故障恢復(fù)機(jī)制 。 Max版FISCO BCOS節(jié)點(diǎn)采用分布式存儲(chǔ)TiKV,執(zhí)行模塊獨(dú)立成服務(wù),存儲(chǔ)和執(zhí)行均可橫向擴(kuò)展,且支持自動(dòng)化主備恢復(fù)。 Max版

    2024年02月10日
    瀏覽(14)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包