• 【03】FISCOBCOS配置及使用控制台


    官网文档https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/installation.html#
    配置及使用控制台
     第一步. 准备依赖
    安装java (推荐使用java 14)

    # ubuntu系统安装java
    sudo apt install -y default-jdk
    
    #centos系统安装java
    sudo yum install -y java java-devel
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    【拓展,java设置环境变量,便于后面的应用】
    官方文档https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/sdk/java_sdk/quick_start.html
    经过上一步我们已经安装好了java,接下来修改环境变量

    # 确认您当前的java版本
    $ java -version
    # 查看jdk版本号
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    添加java环境路径

    $sudo vim /etc/profile
    
    • 1

    在这里插入图片描述

    文件最后添加

    export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 # 此处为自己的jdk版本号
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH:::
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述i键 改成插入模式,Esc键退出插入模式,:wq保存退出

    设置环境生效

    source /etc/profile
    
    • 1

    在这里插入图片描述

    =============================================================================
    获取控制台并回到fisco目录

    cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh
    
    • 1

    如果因为网络问题导致长时间无法下载,请尝试 cd ~/fisco && curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh && bash download_console.sh
    具体而言,cd ~/fisco 命令将当前工作目录更改为 ~/fisco 目录,其中 ~ 表示用户的 home 目录。如果该目录不存在,则会创建它。

    然后,curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh 命令使用 curl 工具从指定的 URL 下载控制台脚本,并保存在当前目录中。-LO 选项表示保持原始文件名,并将其保存到当前目录。

    最后,bash download_console.sh 命令用于执行下载的脚本进行安装。该脚本将会自动下载并设置控制台所需的依赖项和配置文件。

    通过执行上述命令,你将下载并安装 FISCO BCOS 控制台。该控制台可用于管理和操作 FISCO BCOS 区块链网络,并提供了一套丰富的命令行工具和图形界面。请注意,该命令的执行结果取决于当前所在的目录和用户的权限设置。
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    拷贝控制台配置文件

    若节点未采用默认端口,请将文件中的20200替换成节点对应的channel端口。

    # 最新版本控制台使用如下命令拷贝配置文件
    cp -n console/conf/config-example.toml console/conf/config.toml
    
    • 1
    • 2

    具体而言,cp 命令用于复制文件或目录。在这个指令中,-n 选项表示只在目标文件不存在时才执行复制操作,以避免覆盖已存在的文件。

    指令中的第一个参数 console/conf/config-example.toml 是源文件的路径,它是控制台提供的示例配置文件。第二个参数 console/conf/config.toml 是目标文件的路径,它是你要创建的配置文件。

    通过执行上述指令,将会复制示例配置文件 config-example.toml 到 config.toml,如果 config.toml 文件已经存在,则不会执行复制操作。

    你可以在所需的位置创建配置文件,并根据需要进行相应的修改和自定义。在 FISCO BCOS 控制台中,配置文件 config.toml 用于指定控制台的各种设置,例如连接的区块链网络节点、账户信息、日志等配置项。
    在这里插入图片描述
    配置控制台证书

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

    在这里插入图片描述
    第二步. 启动并使用控制台
    启动

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

    是一个命令行指令,用于在指定目录下执行 start.sh 脚本。

    具体而言,指令中的 cd ~/fisco/console 表示切换到 ~/fisco/console 目录,其中 ~ 表示当前用户的主目录(home directory)。这个目录是你要进入的工作目录。

    接着,&& 运算符用于将两个命令连接起来,确保只有前一个命令成功执行才会执行后续的命令。

    最后,bash start.sh 表示在当前目录下执行名为 start.sh 的脚本文件。这个脚本文件可能包含一系列的命令和操作,用于启动相关的应用程序或服务。
    在这里插入图片描述
    若1.x控制台启动失败,参考 Web3SDK启动失败场景https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/faq/connect.html
    在这里插入图片描述

    用控制台获取信息

    # 获取客户端版本
    [group:1]> getNodeVersion
    ClientVersion{
        version='2.6.0',
        supportedVersion='2.6.0',
        chainId='1',
        buildTime='20200819 15:47:59',
        buildType='Darwin/appleclang/RelWithDebInfo',
        gitBranch='HEAD',
        gitCommitHash='e4a5ef2ef64d1943fccc4ebc61467a91779fb1c0'
    }
    # 获取节点信息
    [group:1]> getPeers
    [
        PeerInfo{
            nodeID='c1bd77e188cd0783256ee06838020f24a697f9af785438403d3620967a4a3612e3abc4bbe986d1e9dddf62d4236bff0b7d19a935a3cd44889f681409d5bf8692',
            ipAndPort='127.0.0.1:30302',
            agency='agency',
            topic=[
    
            ],
            node='node2'
        },
        PeerInfo{
            nodeID='7f27f5d67f104eacf689790f09313e4343e7887a1a7b79c31cd151be33c7c8dd57c895a66086c3c8e0b54d2fa493407e0d9646b2bd9fc29a94fd3663a5332e6a',
            ipAndPort='127.0.0.1:57266',
            agency='agency',
            topic=[
                _block_notify_1
            ],
            node='node1'
        },
        PeerInfo{
            nodeID='862f26d9681ed4c12681bf81a50d0b8c66dd5b6ee7b0b42a4af12bb37b1ad2442f7dcfe8dac4e737ce9fa46aa94d904e8c474659eabf575d6715995553245be5',
            ipAndPort='127.0.0.1:30303',
            agency='agency',
            topic=[
    
            ],
            node='node3'
        }
    ]
    
    [group:1]>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    1. 部署及调用HelloWorld合约,这个合约系统自带了,在控制台目录下contracts/solidity/HelloWorld.sol
      HelloWorld合约提供两个接口,分别是get()和set(),用于获取/设置合约变量name。合约内容如下:
    pragma solidity ^0.4.24;
    
    contract HelloWorld {
        string name;
    
        function HelloWorld() {
            name = "Hello, World!";
        }
    
        function get()constant returns(string) {
            return name;
        }
    
        function set(string n) {
            name = n;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    第二步. 部署HelloWorld合约

    在控制台输入以下指令 部署成功则返回合约地址

    [group:1]> deploy HelloWorld
    在这里插入图片描述
    第三步. 调用HelloWorld合约

    # 查看当前块高
    [group:1]> getBlockNumber
    1
    
    # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址
    [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get
    ---------------------------------------------------------------------------------------------
    Return code: 0
    description: transaction executed successfully
    Return message: Success
    ---------------------------------------------------------------------------------------------
    Return values:
    [
        "Hello,World!"
    ]
    ---------------------------------------------------------------------------------------------
    
    # 查看当前块高,块高不变,因为get接口不更改账本状态
    [group:1]> getBlockNumber
    1
    
    # 调用set设置name
    [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS"
    transaction hash: 0x7e742c44091e0d6e4e1df666d957d123116622ab90b718699ce50f54ed791f6e
    ---------------------------------------------------------------------------------------------
    transaction status: 0x0
    description: transaction executed successfully
    ---------------------------------------------------------------------------------------------
    Output
    Receipt message: Success
    Return message: Success
    ---------------------------------------------------------------------------------------------
    Event logs
    Event: {}
    
    # 再次查看当前块高,块高增加表示已出块,账本状态已更改
    [group:1]> getBlockNumber
    2
    
    # 调用get接口获取name变量,检查设置是否生效
    [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get
    ---------------------------------------------------------------------------------------------
    Return code: 0
    description: transaction executed successfully
    Return message: Success
    ---------------------------------------------------------------------------------------------
    Return values:
    [
        "Hello,FISCO BCOS"
    ]
    ---------------------------------------------------------------------------------------------
    
    # 退出控制台
    [group:1]> quit
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    quit 退出
    在这里插入图片描述

  • 相关阅读:
    pyspark 系统找不到指定的路径; \Java\jdk1.8.0_172\bin\java
    lua拼接字符串
    基于野狗算法优化概率神经网络PNN的分类预测 - 附代码
    SpringMVC五种数据提交方式的优化
    【数据库数据恢复】SQL SERVER数据库MDF (NDF)或LDF损坏怎么恢复数据?
    语音识别系列︱利用达摩院ModelScope进行语音识别+标点修复(四)
    YOLOv5全面解析教程②:如何制作训练效果更好的数据集
    matlab simulink 温度控制时延系统 模糊pid和smith控制
    艺术大观杂志艺术大观杂志社艺术大观编辑部2022年第20期目录
    QT基础教程(Hello QT)
  • 原文地址:https://blog.csdn.net/weixin_43491496/article/details/133199653