首页 > 其他分享 >BRICS区块链比赛流程

BRICS区块链比赛流程

时间:2023-09-24 16:48:57浏览次数:55  
标签:BRICS fisco 流程 caliper webase bcos HOME 区块

BRICS比赛流程梳理如下,从上到下的顺序为比赛流程的顺序。总共3个部分,从环境搭建到常见问题踩坑。提供了参考。整合了许多文档于一体的一部参考文档。对于未完成的部分,未来会完成补坑。

区块链平台运维


基于提供的开发环境,使用离线安装包搭建区块链网络平台,含 FISCO BCOS 区块链底层平台和 Console控制台等

登录Linux服务器,安装并部署2节点Fisco联盟链

  1. 安装Ubuntu对于Fisco-Bcos依赖

    sudo apt install -y openssl curl
    
  2. 创建区块链比赛目录

    cd ~ && mkdir -p fisco && cd fisco
    
  3. 下载安装脚本

    curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v2.9.1/build_chain.sh && chmod u+x build_chain.sh
    
  4. 搭建2节点联盟链

    bash build_chain.sh -l 127.0.0.1:2 -p 30300,20200,8545
    

    命令执行成功会输出All completed。如果执行出错,请检查nodes/build.log文件中的错误信息。

  5. 启动2节点联盟链

    bash nodes/127.0.0.1/start_all.sh
    

    启动成功如下所示

    try to start node0
    try to start node1
    node0 start successfully
    node1 start successfully
    
  6. 检查进程是否成功启动

    ps -ef | grep -v grep | grep fisco-bcos
    

    正常情况会有类似下面的输出; 如果进程数不为4,则进程没有启动(一般是端口被占用导致的)

    fisco       5453     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini
    fisco       5459     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
    

安装并部署Console控制台,检查部署的Console控制台是否正常运行

  1. 系统安装Java

    sudo apt install -y default-jdk
    
  2. 获取控制台并返回fisco目录

    cd ~/fisco && curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh && bash download_console.sh
    
  3. 拷贝控制台配置文件

    cp -r nodes/127.0.0.1/sdk/* console/conf/
    

    将刚刚搭建的2节点下sdk所有证书配置文件赋值到控制台中的配置文件目录

  4. 启动并使用控制台,检测控制台是否安装配置成功

    cd ~/fisco/console && bash start.sh
    

    这是正确无误的启动情况

    =============================================================================================
    Welcome to FISCO BCOS console(2.6.0)!
    Type 'help' or 'h' for help. Type 'quit' or 'q' to quit console.
     ________  ______   ______    ______    ______         _______    ______    ______    ______
    |        \|      \ /      \  /      \  /      \       |       \  /      \  /      \  /      \
    | $$$$$$$$ \$$$$$$|  $$$$$$\|  $$$$$$\|  $$$$$$\      | $$$$$$$\|  $$$$$$\|  $$$$$$\|  $$$$$$\
    | $$__      | $$  | $$___\$$| $$   \$$| $$  | $$      | $$__/ $$| $$   \$$| $$  | $$| $$___\$$
    | $$  \     | $$   \$$    \ | $$      | $$  | $$      | $$    $$| $$      | $$  | $$ \$$    \
    | $$$$$     | $$   _\$$$$$$\| $$   __ | $$  | $$      | $$$$$$$\| $$   __ | $$  | $$ _\$$$$$$\
    | $$       _| $$_ |  \__| $$| $$__/  \| $$__/ $$      | $$__/ $$| $$__/  \| $$__/ $$|  \__| $$
    | $$      |   $$ \ \$$    $$ \$$    $$ \$$    $$      | $$    $$ \$$    $$ \$$    $$ \$$    $$
     \$$       \$$$$$$  \$$$$$$   \$$$$$$   \$$$$$$        \$$$$$$$   \$$$$$$   \$$$$$$   \$$$$$$
    
    =============================================================================================
    

使用MySQL数据库对搭建的节点数据进行存储,并命名为Node0和Node1。

完成区块链中间件WeBASE-Front搭建,以及按要求进行网络的扩容和网络配置等维护操作

安装并检查部署的WeBASE-Front中间件是否正常运行

需要安装的环境

环境依赖
  1. java: 8~14

请注意:WeBASE-Front依赖于JAVA_HOME。如果没有配置JAVA_HOME,请优先配置JAVA_HOME在完成以下操作

  • 查看位置

    which java
    

    输出:/usr/bin/java

  • 确定Java安装位置

    ls -lr /usr/bin/java
    ls -lrt /etc/alternatives/java
    

    输出:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64。这个就是Java的安装目录。

  • 打开配置环境变量的文件

    vim /etc/profile
    

    添加如下配置

    export JAVA_HOME=java安装目录
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    
  • 刷新并测试是否配置成功

    source /etc/profile && echo $JAVA_HOME
    

安装

  1. 下载安装包

    wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-front.zip
    
  2. 解压并进入目录

    unzip webase-front.zip
    cd webase-front
    
  3. 拷贝sdk证书文件(build_chain生成的)

    cp -r nodes/${ip}/sdk/* ./conf/
    
  4. 服务启动

    bash start.sh
    
  5. 启动成功出现如下日志

    ...
    	Application() - main run success...
    

检查

  1. 访问浏览器http://ipaddr:5002/WeBASE-Front/看是否能够访问web平台

  2. 检查节点进程

    ps -ef | grep node
    

    输出如下,此处部署了两个节点node0, node1

    root     29977     1  1 17:24 pts/2    00:02:20 /root/fisco/webase/webase-deploy/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
    root     29979     1  1 17:24 pts/2    00:02:23 /root/fisco/webase/webase-deploy/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini
    
  3. 检查节点前置webase-front的进程

    ps -ef | grep webase.front 
    

    正常输入如下

    root     31805     1  0 17:24 pts/2    00:01:30 /usr/local/jdk/bin/java -Djdk.tls.namedGroups=secp256k1 ... conf/:apps/*:lib/* com.webank.webase.front.Application
    

登陆linux服务器,生成新的节点,并且将该节点启动及加入当前群组

针对搭建的区块链网络平台,使用Caliper压力测试工具对区块链网络平台进行性能测试

搭建Caliper环境

环境依赖:
  1. NodeJS: 8,9,10
  2. Docker >= 18.06.01
  3. Docker Compose >= 1.22.0
  4. Python >=2.7
  5. 安装make, g++, gcc, git
  6. 需要外网权限
下载caliper,并安装验证
npm install --only=prod @hyperledger/caliper-cli@0.2.0
npx caliper --versi

成功会打印版本信息v0.2.0。如果错误,请检查环境是否完整或者版本是否对应。

image-20230924131531761

绑定FISCO-BCOS(需要外网)
npx caliper bind --caliper-bind-sut fisco-bcos --caliper-bind-sdk latest

image-20230924131722795

下载测试用例

在Caliper目录下通过git拉去测试代码,这里使用gitee

git clone https://gitee.com/vita-dounai/caliper-benchmarks.git

image-20230924142814842

修改源码

一共要修改4个文件的源码,分别是fiscoBcos.jschannelPromise.jsweb3sync.js, 一个依赖包版本secp256k1

  1. 修改fiscoBcos.js

    vim ./node_modules/@hyperledger/caliper-fisco-bcos/lib/fiscoBcos.js
    

    image-20230924143226627

    image-20230924143245551

    image-20230924143258818

  2. 修改channelPromise.js

    vim ./node_modules/@hyperledger/caliper-fisco-bcos/lib/channelPromise.js
    

    image-20230924143540145

  3. 修改web3sync.js

    vim ./node_modules/@hyperledger/caliper-fisco-bcos/lib/web3lib/web3sync.js
    

    image-20230924143706245

    image-20230924143717817

    image-20230924143728444

  4. 修改package.json文件,添加secp256k1 依赖

    vim node_modules/@hyperledger/caliper-fisco-bcos/package.json
    

    image-20230924143927638

    在该目录下重新安装依赖:

    npm i
    
    基于刚刚下载的测试用例进行压测

    进入caliper目录中输入如下命令:

    npx caliper benchmark run --caliper-workspace caliper-benchmarks --caliper-benchconfig benchmarks/samples/fisco-bcos/helloworld/config.yaml --caliper-networkconfig networks/fisco-bcos/4nodes1group/fisco-bcos.json
    

    等命令执行完成之后会显示如下页面:

    image-20230924145644358

    image-20230924145715375

    如上图所示,显示了4个节点的内存,磁盘使用率,每秒交易的TPS,最大与最小响应时间

    在caliper-benchmarks中也有report.html文件方便查看。

Caliper 使用

  1. 启动webase平台(webase-front)

  2. 在caliper目录中:

    cd ./caliper-benchmarks/networks/fisco-bcos
    mkdir myProject
    
  3. 在该目录创建fisco-bcos.json

    image-20230924151049599

使用Caliper和HelloWorld合约对区块链网络进行压测。

智能合约开发


基于题目中的业务逻辑,使用 Solidity 语言进行智能合约开发,并完成合约编译、部署以及运行测试。

根据提供的Solidity智能合约代码框架完成银行、核心企业、供应商的功能,并且完成银行向核心企业提供授信并发放数字凭证,企业转让数字凭证。

完成智能合约的部署、编译与接口调用的运行测试,并将结果截图提交至工程文档。

智能合约代码测试,基于Ganache私有链环境,使用Truffle框架编写JavaScript脚本对Solidity智能合约进行单元测试

安装Ganache与Truffle

环境要求
  1. NodeJS v8.9.4 或 之后的版本
安装Ganache
安装Truffle
  1. 使用npm安装Truffle

    npm install -g truffle@5.8.2
    
  2. 创建项目

    truffle unbox metacoin
    

    如果在安装的过程中出现了错误的token,如图所示。

    image-20230924134545799

    建议升级node版本或者npm版本,然后清除npm缓存,再不行就卸载重装最新版本node。即可解决这一问题。

  3. 修改配置文件

    image-20230924134732652

    image-20230924134756078

基于Ganache与Truffle完成简单测试查看是否安装配置成功

在启动Ganache私有链环境与Truffle框架配置完成之后就可以进行如下操作。

在项目目录下:

truffle migrate

成功之后会显示如下信息,包括账户信息,资产信息,合约地址以及用户地址。

image-20230924151959402

如果合约地址在链上出现,说明合约部署成功并完成上链操作

image-20230924152345364

完成智能合约代码中实现函数的功能测试

完成智能合约的漏洞测试

针对提供的合约代码,完成智能合约测试,并将测试结果截图提交至工程文档

应用开发与部署


利用 HTML、Javascript前端框架等完成页面逻辑和展示

基于前端系统的开发模板,在Login.vue等文件中添加对应的登录与注册功能,实现对后端系统的访问,并测试功能完整性。

在框架代码中完善对应企业信息、凭证信息等数据的查询页面。

利用 Java 语言和SpringBoot框架,实现应用程序接口、完善区块链应用系统,调用智能合约开发结果,实现链上信息的查询和结果展示

开发区块链供应链金融应用中后端系统对应的数据查询功能,包括公司信息列表、银行信息列表、存证信息列表等功能

开发区块链供应链金融应用的后端系统中包含的存证交易功能

对区块链应用的后端接口进行测试

按要求完成前后端的集成测试

标签:BRICS,fisco,流程,caliper,webase,bcos,HOME,区块
From: https://www.cnblogs.com/pronting/p/17726155.html

相关文章

  • Android 9关机流程
    一、整体关机流程framework->init->kernel二、关机流程(代码)本文基于Android9,梳理下正常power键触发的关机流程。涉及的相关代码路径如下://frameworkframeworks\base\core\res\res\values\config.xmlframeworks\base\services\core\java\com\android\server\policy\LegacyG......
  • 通过 BigQuery 中的 11 个新链增强 Google Cloud 的区块链数据服务
    【CloudAce 是GoogleCloud全球战略合作伙伴,在亚太地区、欧洲、南北美洲和非洲拥有二十多个办公室。CloudAce在谷歌专业领域认证及专业知识目前排名全球第一位,并连续多次获得GoogleCloud各类奖项。作为谷歌云托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认......
  • RunnerGo使用流程
    性能测试—计划管理新建计划:在左侧导航栏中,选择“性能测试”,点击“计划管理”进入计划管理界面,点击右上角新建计划来新建测试计划。任务类型选择后不可再更改。定时模式下,该计划内最多只能创建一个场景。普通任务:支持当即执行计划;定时任务:可预设计划开始运行的时间和频次,频......
  • git rebase分支的流程和注意事项
    比如有两个开发了比较多功能的分支,或者在比较久的一次提交上做了一个hotfix,这个时候如果合并,通过ui查看会有一条额外的很长的线连接过来,不美观,看起来也不方便。可以用rebase进行变基,强行把两个分支的内容合并到一起。rebase与merge的区别merge就是把两个分支,当前的内容,进行比较......
  • 流程迁移如何做到平滑无缝?通关攻略来了!
    流程迁移如何做到平滑、无缝的迁移?是企业在数字化进程中普遍会遇到的难题。本文将从目标、方法论、全过程维度,解析流程迁移的实施挑战及应对方法。 流程迁移的挑战  随着科技的不断进步和业务的快速发展,企业对流程系统的要求也越来越高。早期的流程系统往往功能有限,无法满......
  • DNS执行流程
    说一下DNS执行流程?|Javaᶜⁿ面试突击(javacn.site)抓包理解DNS流程和CDN原理(qq.com)为什么DNS协议使用UDP?只使用了UDP吗?(qq.com)DNS(DomainNameSystem,域名系统)是互联网中非常重要的基础设施之一,它负责将人类易于记忆的域名转换成计算机可识别的IP地址,使得用......
  • Vue执行和开发流程、登录小案例、混入、插件、elementui
    一、Vue执行流程1、vue的执行流程#1为什么浏览器中访问某个地址,会显示某个页面组件 -根组件:App.vue必须是<template><divid="app"><router-view></router-view></div> </template> -1配置路由 router--......
  • iOS应用程序发布流程:从测试到上架的完整指南
    ​ 目录 转载:iOS应用程序的签名、重签名和安装测试前言打开要处理的IPA文件设置签名使用的证书和描述文件开始iosipa重签名 转载:iOS应用程序的签名、重签名和安装测试前言ipa编译出来后,或者ipa进行修改后,需要进行重新签名才能安装到测试手机,或者提交appstore供a......
  • 工作流程优化 - 总结笔记
    一、一个忙碌的上午(现实中的工作流问题)小张已经忙了一个早上了,她觉得自己还是很有条理的,这种有条理的忙碌感让他觉得内心充实。她会把每件工作按照紧急程序进行一个大致的排序,一件件处理,但是判断依据呢?只是自己的一个感觉而已。(问题:没有对瓶颈环节设计紧急的分流方案)老王的......
  • 软件产品研发流程总结
    开发流程更完整、更有效率,产品才能脱颖而出。 1.项目启动在项目启动阶段,主要确定项目的目标、范围及其可行性,我们需要对项目的背景、干系人、决策人等等进行了解。编制项目章程和组建项目团队,包括:产品经理、架构师、UI工程师、开发工程师、测试工程师等;明确项目管理制度,每......