Fisco Bcos区块链二(搭建使用控制台,体验Holleworld合约调用)

2023-11-07

区块链开荒

技术文档:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/index.html

2、配置及使用控制台

1. 准备依赖
  • 获取控制台并回到fisco目录
cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh

如果因为网络问题导致长时间无法下载,请尝试

cd ~/fisco && curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh && bash download_console.sh

控制台目录结构

|-- apps # 控制台jar包目录
|   -- console.jar|-- lib # 相关依赖的jar包目录
├── conf
│   ├── config-example.toml # 配置文件
│   ├── group-generate-config.toml # 创建群组的配置文件,具体可参考命令genrateGroupFromFile
│   └── log4j.properties # 日志配置文件
|-- contracts # 合约所在目录
|   -- solidity  # solidity合约存放目录
|       -- HelloWorld.sol # 普通合约:HelloWorld合约,可部署和调用
|       -- TableTest.sol # 使用CRUD接口的合约:TableTest合约,可部署和调用
|       -- Table.sol # 提供CRUD操作的接口合约
|   -- console  # 控制台部署合约时编译的合约abi, bin,java文件目录
|   -- sdk      # sol2java.sh脚本编译的合约abi, bin,java文件目录
|-- start.sh # 控制台启动脚本
|-- get_account.sh # 账户生成脚本
|-- get_gm_account.sh # 账户生成脚本,国密版
|-- sol2java.sh # solidity合约文件编译为java合约文件的开发工具脚
  • 拷贝控制台配置文件

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

# 最新版本控制台使用如下命令拷贝配置文件
cp -n console/conf/config-example.toml console/conf/config.toml
  • 配置控制台证书
cp -r nodes/127.0.0.1/sdk/* console/conf/
2. 启动并使用控制台
  • 启动
cd ~/fisco/console && bash start.sh

输出下述信息表明启动成功 否则请检查conf/config.toml中节点端口配置是否正确

在这里插入图片描述

控制台命令列表及使用

  • help帮助命令

在这里插入图片描述

  • 控制台命令列表及使用 - 账户管理
# 创建新账户
[group:1]> newAccount	

# 账户列表
[group:1]> listAccount	

# 切换账号
[group:1]> loadAccount	新创建的账户
  • 控制台命令列表及使用 - 区块信息
# 区块高度
[group:1]> getBlockNumber	

# 共识节点列表
[group:1]> getSealerList	

# 观察节点列表
[group:1]> getObserverList	

3、部署及调用HelloWorld合约

1. 编写HelloWorld合约

HelloWorld合约提供两个接口,分别是get()set(),用于获取/设置合约变量name。合约内容如下:

cd ~/fisco/console/contracts/solidity && vim HelloWorld.sol
pragma solidity>=0.4.24 <0.6.11;

contract HelloWorld {
    string name;

    constructor() public {
        name = "Hello, World!";
    }

    function get() public view returns (string memory) {
        return name;
    }

    function set(string memory n) public {
        name = n;
    }
}
2. 部署HelloWorld合约

为了方便用户快速体验,HelloWorld合约已经内置于控制台中,位于控制台目录下contracts/solidity/HelloWorld.sol,参考下面命令部署即可。

cd ~/fisco/console && bash start.sh
# 在控制台输入以下指令 部署成功则返回合约地址
[group:1]> deploy HelloWorld
transaction hash: 0xcef99370e6f9149459e26f030d05ddacaa5032f019c220f5b22aa9da1be19435
contract address: 0xa4b9b450613f50fc54568c8ede7a0349a53bdac9
currentAccount: 0x05cf6f5482ce4d318a3683ddd7a3e2d9531c2dfa
3. 调用HelloWorld合约
# 查看当前块高
[group:1]> getBlockNumber
1

# 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址
[group:1]> call HelloWorld 0xa4b9b450613f50fc54568c8ede7a0349a53bdac9 get
---------------------------------------------------------------------------------------------
Return code: 0
description: transaction executed successfully
Return message: Success
---------------------------------------------------------------------------------------------
Return value size:1
Return types: (STRING)
Return values:(Hello, World!)
---------------------------------------------------------------------------------------------

# 查看当前块高,块高不变,因为get接口不更改账本状态
[group:1]> getBlockNumber
1

# 调用set设置name
[group:1]> call HelloWorld 0xa4b9b450613f50fc54568c8ede7a0349a53bdac9 set "Hello, FISCO BCOS"
transaction hash: 0x3a2286706bff3bae891cbb57c6aaaf26b0a3f3e30059bd6e31e7967888398287
---------------------------------------------------------------------------------------------
transaction status: 0x0
description: transaction executed successfully
---------------------------------------------------------------------------------------------
Transaction inputs:
Input value size:1
Input types: (STRING)
Input values:(Hello, FISCO BCOS)
---------------------------------------------------------------------------------------------
Receipt message: Success
Return message: Success
Return values:[]
---------------------------------------------------------------------------------------------
Event logs
Event: {}

# 再次查看当前块高,块高增加表示已出块,账本状态已更改
[group:1]> getBlockNumber
2

# 调用get接口获取name变量,检查设置是否生效
[group:1]> call HelloWorld 0xa4b9b450613f50fc54568c8ede7a0349a53bdac9 get
---------------------------------------------------------------------------------------------
Return code: 0
description: transaction executed successfully
Return message: Success
---------------------------------------------------------------------------------------------
Return value size:1
Return types: (STRING)
Return values:(Hello, FISCO BCOS)
---------------------------------------------------------------------------------------------

# 退出控制台
[group:1]> quit

至此,我们完成了控制台的配置,使用控制台获取区块链信息以及完成了合约的部署和调用等内容!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fisco Bcos区块链二(搭建使用控制台,体验Holleworld合约调用) 的相关文章

随机推荐

  • Echarts 让饼图中间文字居中并自适应图表

    背景 产品提出需求在饼图中间放两行文字且居中 简单 劈劈啪啪写完了 产品再提出你这个没有自适应啊 屏幕放大 缩小你这个就没有居中了 甚至会和饼图重叠 emmmmm UI图如下 方案一 使用tittle 不能自适应 方案二 在series中配
  • flutter实现appbar下选项卡切换

    这篇文章主要为大家详细介绍了flutter实现appbar下选项卡切换 文中示例代码介绍的非常详细 具有一定的参考价值 感兴趣的小伙伴们可以参考一下 本文实例为大家分享了flutter实现appbar下选项卡切换的具体www qmia cn
  • 【设计】】MOS管衬底电位接法

    参考 请问什么是nwell和P substrate 请问什么是nwell和P substrate 请问什么是nwell和P substrate 在CMOS的IC设计 如NPN三极管中经常看到请问什么是nwell和P substrate的说法
  • 【GitLab】在IDEA中回滚主分支

    这是工作中遇到的问题 记录下来 也方便自己后面查看操作步骤 也方便各位遇到这个问题 不至于卡太久 首先切换到主分支 这里以图中ejob项目为例 切换到主分支后 打开ejob项目的git历史记录 例如图中 从当前位置准备回滚到指定位置 右键选
  • Flutter中GetX系列九--路由/页面跳转,传值,中间件(GetPage)

    1 页面传值跳转和中间件 GetPage 使用代码 import package flutter material dart import package flutterlianxi login VC dart import package
  • ubuntu16.04 mysqlserver常见连接问题

    记录安装过程中的mysql连接问题 1 个别试图表无权限查看 CREATE USER username IDENTIFIED BY password GRANT ALL ON TO username FLUSH PRIVILEGES 或者n
  • 深度学习之Python常用第三方模块篇

    除了内建的模块外 Python还有大量的第三方模块 基本上 所有的第三方模块都会在PyPI the Python Package Index上注册 只要找到对应的模块名字 即可用pip安装 强烈推荐安装Anaconda 安装后 数十个常用的
  • ubuntu20.04设置防火墙

    Linux原始的防火墙工具iptables由于过于繁琐 所以ubuntu系统默认提供了一个基于iptable之上的防火墙工具ufw 而UFW支持图形界面操作 可以通过ufw命令操作防火墙 1 防火墙状态 active 开启状态 inacti
  • STM32 基础系列教程 21 - NVIC

    前言 学习stm32 NVIC接口编程 学会使用常用的NVIC接口函数 优改中关优先级 开 关单个中断 开 关所有中断 开 关所有中断和异常 系统软件重启等功能 示例详解 基于硬件平台 STM32F10C8T6最小系统板 MCU 的型号是
  • 搭建redis未授权环境,利用该漏洞getshell

    搭设环境两台主机 win10专业版 redis下载路径 https github com microsoftarchive redis releases kali作为靶机 redis下载路径 wget http dowload redis
  • 车牌输入框 封装 (小程序 vue)

    车牌输入框 封装 小程序 licenseNumber js licenseNumber json licenseNumber wxml licenseNumber wxss 页面调用 wxml js json wxss 样例 vue vnp
  • js延迟加载的方式有哪些

    设置
  • python菜鸟基础笔记(2)

    1 range 函数 前闭后开 遍历数字序列 可以使用内置range函数 生成数列 range 101 可以用来产生0到100范围的整数 需要注意的是取不到101 range 1 101 可以用来产生1到100范围的整数 相当于前面是闭区间
  • 00后太卷了,公司新来的一位卷王,表示我们这帮老油条真干不过.....

    都说00后躺平了 但是有一说一 该卷的还是卷 这不 前段时间我们公司来了个00后 工作没两年 跳槽到我们公司起薪18K 都快接近我了 后来才知道人家是个卷王 从早干到晚就差搬张床到工位睡觉了 最近和他聊了一次天 原来这位小老弟家里条件不太好
  • Linux 环境基础开发工具的使用

    目录 一 软件包管理器 yum 1 什么是软件包 2 查看软件包 3 如何安装软件 4 如何卸载软件 二 Linux开发工具 1 Linux编辑器 vim使用 1 1 vim的基本概念 1 2 vim的基本操作 1 3 vim正常模式命令集
  • springboot项目部署宝塔提示成功,实际没有启动

    被这个问题搞得头大了 默认项目用户为www 把项目用户改成root即可启动成功 启动成功后 再刷新还是显示成功运行
  • web测试的基本测试点

    一 什么是Web测试 如果要了解web测试 首先我们的清楚web项目是什么 一般指本b s架构项目也就是通过浏览器进行访问的 在日常生活工作中 基于web系统的应用非常多 打开电脑 抢火车票我们会登陆12306网站 添置衣物我们会登陆天猫
  • Codeforces 996 A Hit the Lottery

    A Hit the Lottery time limit per test 1 second memory limit per test 256 megabytes input standard input output standard
  • 副业搞钱的几个野路子:两个年入10万的零成本赚钱项目

    不想担太多风险 想低成本歪主意 最佳的选择不外乎就是做服务和卖交互式产品 搞交互式项目 最大的成本是时间成本 很多人都不缺时间 缺的是歪主意思维和变通能力 独豆豆不如众豆豆 这几天辨认出了三个歪主意的野路子 写个文章给大家互动互动 这三个主
  • Fisco Bcos区块链二(搭建使用控制台,体验Holleworld合约调用)

    文章目录 区块链开荒 技术文档 https fisco bcos documentation readthedocs io zh CN latest index html 2 配置及使用控制台 1 准备依赖 2 启动并使用控制台 3 部署及