狗哥区块链与AI精品内容集@NonceGeek

2025年03月28日更新 75 人订阅
原价: ¥ 20 限时优惠
专栏简介 「造」最关键的是什么?| Hackathon 漫游指南(贰) Why Hackathon?| Hackathon 漫游指南(壹) 设计「众人维护」的 BuidlerBoard | BeWater.xyz Movement 白皮书中文版 Rebuidl RSS 生产因素与反生产因素 | 独立黑客创业手册(陆) 组织 | 独立黑客创业手册(伍) 生产 | 独立黑客创业手册(肆) 销售 | 独立黑客创业手册(叄) 最优先的能力 | 独立黑客创业手册(贰) 为什么从独立黑客开始 | 独立黑客创业手册(壹) Aptos Token Object V2 | Move dApp 极速入门(贰拾肆) 可編程交易塊 | Move dApp 極速入門(貳拾叁) Aptos 密鑰輪換 | Move dApp 極速入門(貳拾貳) Aptos 对象模型 | Move dApp 极速入门(贰拾壹) Aptos Moveflow SDK使用指南 | Move dApp 极速入门(贰拾) Sui 上简单 Swap 的实现 | Move dApp 极速入门(拾玖) 用 Elixir 交互 Aptos | Move dApp 极速入门(拾捌) Sui 链上数据查询 | Move dApp 极速入门(拾柒) SUI 合约测试攻略 | Move dApp 极速入门(拾陆) Sui 数据类型详解 | Move dApp 极速入门(拾伍) Airdropper Contract in Aptos | Move dApp 极速入门(拾肆) Sandwich合约源码解析 | Move dApp 极速入门(拾叁) Sui 极速上手 | Move dApp 极速入门(拾贰) scaffold-aptos 脚手架 | Move dApp 极速入门(拾壹) 对 DID Document 的思考 | Move dApp 极速入门(九) DID中地址聚合器的实现 | Move dApp 极速入门(八) 值的存取应用3.0 | Web3.0 dApp 开发(五) 合约数据类型综述 | Move dApp 极速入门(四) 操作资源 | Move dApp 极速入门(三) 第一个 Move dApp | Move dApp 极速入门(二) Hello Move | Move dApp极速入门(一) Staker | Web3.0 dApp 开发(九) Token 自动售卖机 | Web3.0 dApp 开发(七) SVG NFT 全面实践 | Web3.0 dApp 开发(六) 值的存取应用2.0 | Web3.0 dApp 开发(四) 值的存取应用1.0 | Web3.0 dApp开发(三) Scaffold-eth 快速上手 | Web3.0 dApp 开发(二) eth.build 快速上手 | Web3.0 dApp 开发(一) 1 小时理解比特币系统 【NonceGeek Workshop 0x01总结】基于链上数据生成游戏地图 Remix 完全本地化部署 NFT:实体与虚拟载体的主与辅 | 狗哥的元宇宙思辨(一) Web3Camp 内容大全@NonceGeek 用 Python 创建一条 Pow 区块链(上) 区块链与共识机制演变史 基于 Etherscan 实现 Blockchain Syncer 【论文分享】去中心化社会:寻找 Web3 的灵魂(上) 【论文分享】去中心化社会:寻找 Web3 的灵魂(下) Ted Yin | 2021 年的区块链基础设施将是什么? 0. 公链、联盟链与分布式未来(全文) 基于 Infura 与 Web3py 部署调用 Hello 合约全过程 | 以太坊开发极速入门 太上中的基因设计与Binary | 函数式与区块链(一) 理解以太坊合约数据读取过程 | 函数式与区块链(二) Hello, Ink! | 用 Rust 写智能合约(一) Mapping 数据结构 | 用 Rust 写智能合约(二) 用 Rust 程序和 Webase 交互 | Rust 学习笔记(四) 用 Sqlite 存储 WeId | Rust 学习笔记(五) 链上注册WeId与错误处理 | Rust 学习笔记(六) WeId 链上创建与本地存储的完整闭环 | Rust 学习笔记(七) 以太坊上的核心开发者 Austin | 以太坊上的最佳开发实践 1. FISCO BCOS 开发环境节点搭建全攻略 伪代码简述 ECDSA 签名过程 | 联盟链开发 WeIdentity 源码分析 | 狗哥解码 WeIdentity 源码分析 | 狗哥解码 FISCO BCOS 介绍 | 联盟链开发 给Remix升个级 | 联盟链开发 2. 控制台的安装与使用 3. 【实验】补全一个区块链应用 4. 控制台的Web化 5. Web化控制台2.0:打造团队共用区块链学习平台 6. 使用脚手架快速搭建 Java DApp 【视频+文字】分布式思维 Rebuidl RSS (EN)

2. 控制台的安装与使用

  • 李大狗
  • 发布于 2021-01-03 23:37
  • 阅读 6135

控制台安装与使用全攻略

在上一讲中,我们谈到了 FISCO BCOS 节点的安装。现在,只要再安装控制台,我们就能开始 FISCO BCOS 区块链应用的开发了。

控制台:命令行交互控制台 (简称“控制台”) 是FISCO BCOS 2.0重要的交互式客户端工具,它通过 Java SDK 与区块链节点建立连接,实现对区块链节点数据的读写访问请求。控制台拥有丰富的命令,包括查询区块链状态、管理区块链节点、部署并调用合约等。此外,控制台提供一个合约编译工具,用户可以方便快捷的将Solidity合约文件编译为Java合约文件。

控制台的安装

安装很简单,官方文档地址如下:

https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/console/console_of_java_sdk.html

  1. 获取控制台

这里推荐通过 Gitee 的方法获取:

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

  1. 配置控制台
  • conf目录下的config-example.toml文件重命名为config.toml文件。

    # 确保在 fisco 目录下,也即 console 与 nodes 的上级目录
    mv console/conf/config_example.toml console/conf/config.toml
  • 将节点sdk目录下的ca.crtsdk.crtsdk.key文件拷贝到conf目录下。

    # 确保在 fisco 目录下,也即 console 与 nodes 的上级目录
    cp nodes/127.0.0.1/sdk/* console/conf
  • 多个环境下的控制台配置

    如果控制台需要应对多个区块链网络的话(例如测试环境网络和正式环境网络),那么我们可以通过软链接的方式复制配置文件。

    首先我们把多个环境下的conf文件夹放在console目录下,命名为conf_*,如conf_mainconf_test

    创建软链接:

    ln -s conf_* conf

    image20210101170800878.png

    要切换环境时,更新软链接即可:

    ln -snf conf_* conf
  1. 运行控制台

先确保所有脚本权限足够:

chmod u+x *.sh

执行start.sh

./start.sh

image20210101170835219.png

出现这个页面,就说明你控制台安装成功了!

控制台的使用

具体的命令列表查看:

https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/console/console_of_java_sdk.html

这里枚举一些最常见的命令:

1 查看帮助

  h

2 数据查看类操作

  • 查看区块高度

    getBlockNumber
  • 根据高度/哈希查看区块/根据高度查哈希

    根据哈希查看区块:
    getBlockByHash [Hash] 
    根据高度查看区块:
    getBlockByNumber [Num]
    根据高度获取对应哈希:
    getBlockHashByNumber [Num]
  • 根据哈希查看交易

    小Tips:区块中的交易可通过查看区块看到

    getTransactionByHash [Hash]

3 账户类操作

  • 新建账户

    newAccount
  • 列出账户

    listAccount
  • 切换账户

    loadAccount [addr]

4 智能合约类操作

合约存放目录为:console/contracts/solidity

4.1 查看ABI

ABI 内包含函数(Method)接口描述与事件(Event)接口描述。

```
listAbi [ContractName]
```

如:

```
listAbi HelloWorld
```

image20210102152743837.png

Method List:

其中,name 是函数名,constant 标识该函数是否会改写区块链状态,methodId 是函数 id,Signature 是该函数的用法。

Event List:

同理,name 是事件名,topic 是 Event Signature(即后一个字段 Signature) 的哈希(数字指纹),Signature 是该事件的用法。

4.2 合约部署

包含普通部署/CNS部署两种部署方式。

a)普通部署

deploy [contractName or contractPath]

例子:

deploy HelloWorld

会返回交易地址与合约哈希。

image20210102153753050.png

b)CNS部署

CNS(Contract Name Service)通过提供链上合约名称与合约地址映射关系的记录及相应的查询功能,方便调用者通过记忆简单的合约名来实现对链上合约的调用。

deployByCNS contractNameOrPath contractVersion

例子:

deployByCNS HelloWorld 1.0

4.3 合约调用

a)通过普通方式调用

对应普通方式部署:

call [contractNameOrPath] [contractAddress] [function] [parameters]

例子:

call HelloWorld 0xbad9906c55e8762fe5c18e2beb37d7d8db177578 set "HappyNewYear!"

image20210102154848770.png

b)通过CNS方式调用

对应CNS方式部署:

callByCNS contractNameOrPath:contractVersion function parameters

例子:

callByCNS HelloWorld:1.0 set "HappyNewYear!"

image20210102155025857.png

点赞 2
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论