FISCO-BCOS コマンド対話型コンソール コンソールコマンド集(超詳細)
導入
この記事は、fisco-bocs の公式技術ドキュメントを基に整理・解説したもので、コマンドの意味をすぐに理解し、より早く作業を開始できるよう、コマンド辞書としてもご利用いただけます。
記事ディレクトリ
前提条件
- ブロックチェーンネットワークを展開する
- コンソールを設定します。つまり、設定ファイルをコピーします。
コンソールのディレクトリは次のとおりです。
|-- 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合约文件的开发工具脚本
アカウント生成スクリプトを使用してアカウントを生成します(非国家機密バージョン)
PEM形式
bash get_account.sh
p12フォーマット
bash get_account.sh -p
コンソールを起動する
-
デフォルトでコンソールを起動する
bash start.sh
-
グループ番号を指定して開始します
bash start.sh [群组号]
-
pem形式の秘密鍵ファイルの使用を開始する
bash start.sh [群组号] -pem [私钥文件路径]
-
p12形式ファイルの使用を開始する
bash start.sh [群组号] -p12 [私钥文件路径]
コンソールコマンドのリストを表示する
-
help([-h, -help, --h, --H, --help, -H, h]): ヘルプ情報を提供します。
[group:1]> help * help([-h, -help, --h, --H, --help, -H, h]) Provide help information * addObserver Add an observer node * addSealer Add a sealer node * call Call a contract by a function and parameters * callByCNS Call a contract by a function and parameters by CNS * create Create table by sql * delete Remove records by sql * deploy Deploy a contract on blockchain * deployByCNS Deploy a contract on blockchain by CNS * desc Description table information * quit([quit, q, exit]) Quit console * freezeAccount Freeze the account * freezeContract Freeze the contract ........... ---------------------------------------------------------------------------------------------
注記:
- ヘルプには各コマンドの意味が表示されます: コマンド コマンド機能の説明
- 特定のコマンドの使用方法を表示するには、コマンド -h または -help を入力して表示します。例えば:
[group:1]> getBlockByNumber -h Query information about a block by block number. Usage: getBlockByNumber blockNumber [boolean] * blockNumber -- Integer of a block number, from 0 to 2147483647. * boolean -- (optional) If true it returns the full transaction objects, if false only the hashes of the transactions.
アカウント操作
アカウントを作成する
- newAccount: アカウントを作成する
newAccount [加密格式/(pem/p12)]
注:
无参数默认是pem格式
現在のアカウント情報を取得する
- getCurrentAccount: 現在のアカウント情報を取得します
現在保存されているアカウントを一覧表示する
- listAccount: 現在保存されているアカウントのリストを表示します。
アカウントを凍結する
- izeAccount: アカウントを凍結する
freezeAccount [账户地址]
アカウントの凍結を解除する
- unfreezeAccount: アカウントの凍結を解除する
unfreezeAccount [账户地址]
トランザクション署名用のアカウントをロードする
- loadAccount: トランザクション署名用のロードアカウント
loadAccount [账户私钥路径] [加密格式(pem/p12)]
注:
不指定加密格式,默认是pem格式
ノードの操作
ノードのバージョン番号情報の表示
- getNodeVersion: 現在のノードのバージョンを問い合わせます
ノード情報の表示
-
getNodeInfo: 指定したノードの情報を問い合わせます。
getNodeInfo [IP:channel端口号]
現在クライアントに接続されているピアをクエリします。
- getPeers: 現在クライアントに接続されているピア ノードをクエリします。
ノードの PBFT ビューをクエリする
- getPbftView: ノードの PBFT ビューをクエリします。
現在クライアントに接続されているピアをクエリします。
- getPeers: 現在クライアントに接続されているピア ノードをクエリします。
接続されているすべてのノードのノード ID リストを照会します。
- getNodeIDList: 接続されているすべてのノードのノード ID リストをクエリします。
ノードを削除する
-
RemoveNode: ノードを削除します
removeNode [nodeId]
観測ノードとコンセンサスノード
-
addObserver: オブザーバーノードを追加します。
addObserver [nodeid]
-
getObserverList: オブザーバー ノードのノード ID リストをクエリします。
-
addSealer: コンセンサスノードを追加します
addSealer [nodeid]
-
getSealerList: コンセンサス ノードのノード ID リストをクエリします。
-
getGroupPeers: コンセンサス ノードとオブザーバー ノードのノード ID リストをクエリします。
グループ運用
グループを切り替える
-
スイッチ
switch [群组号]
指定したノードのグループを生成します
-
generateGroup: 指定されたノードのグループを生成します
generateGroup [节点IP:channel端口号] [新建群组的Id] [新建群组创世块时间戳] [新创建群组的共识节点列表] 注: 1.可通过命令echo $(($(date '+%s')*1000))获取时间戳; 2.多个共识节点ID之间用空格分割
新しいグループ構成ファイル (group-generate-config.toml) を使用して、指定されたノードのリストに新しいグループを作成します。
グループ構成の例group-generate-config.toml
は次のとおりです。
# The peers to generate the group
[groupPeers]
peers=["127.0.0.1:20200", "127.0.0.1:20201"]
# The consensus configuration of the generated group
[consensus]
# The sealerList
sealerList=["b8acb51b9fe84f88d670646be36f31c52e67544ce56faf3dc8ea4cf1b0ebff0864c6b218fdcd9cf9891ebd414a995847911bd26a770f429300085f37e1131f36","11e1be251ca08bb44f36fdeedfaeca40894ff80dfd80084607a75509edeaf2a9c6fee914f1e9efda571611cf4575a1577957edfd2baa9386bd63eb034868625f"]
[genesis]
# The genesis timestamp, It is recommended to set to the current utcTime, which must be greater than 0
timestamp = "1590586645000"
generateGroupFromFile
コマンドのパラメータには次のものが含まれます。
groupConfigFilePath
: グループ構成ファイルのパス、コンソールconf/group-generate-config.toml
は、提供されているグループ構成ファイルのテンプレートです。ユーザーは、実際のシナリオに従って構成テンプレートをコピーおよび変更し、変更されたグループのグループ構成をロードできます。ファイル;groupId
:新規に作成したグループIDです。
[group:1]> generateGroupFromFile conf/group-generate-config.toml 3
* Result of 127.0.0.1:20200:
GroupStatus{
code='0x0',
message='Group 3 generated successfully',
status='null'
}
* Result of 127.0.0.1:20201:
GroupStatus{
code='0x0',
message='Group 3 generated successfully',
status='null'
}
クエリグループリスト
- getGroupList: グループリストのクエリ
コンセンサスノードとオブザーバーノードのノードIDリストをクエリします。
- getGroupPeers: コンセンサス ノードとオブザーバー ノードのノード ID リストをクエリします。
指定したノードの指定したグループのステータスを問い合わせます
- queryGroupStatus: 指定されたノードの指定されたグループのステータスを照会します。
queryGroupStatus [节点IP:channel端口] [群组号]
指定したノードの指定したグループを復元します
- reverseGroup: 指定されたノードの指定されたグループを回復します
recoverGroup [节点IP:channel端口] [群组号]
指定されたノードから指定されたグループを削除します
- RemoveGroup: 指定したノードの指定したグループを削除します。
removeGroup [节点IP:channel端口] [群组号]
指定したノードの指定したグループを起動します
- startGroup: 指定したノードの指定したグループを開始します
startGroup [节点IP:channel端口] [群组号]
指定したノードの指定したグループを停止します
- stopGroup: 指定したノードの指定したグループを停止します。
stopGroup [节点IP:channel端口] [群组号]
受託運用
デプロイ契約
- deploy(deployByCNS): ブロックチェーン上にコントラクトをデプロイします
契約を展開します。 (使用例として、HelloWorld コントラクトと TableTest.sol がデフォルトで提供されています) パラメーター:
契約パス: 相対パス、絶対パス、デフォルト パスをサポートする契約ファイルのパス。ユーザー入力がファイル名の場合、ファイルはデフォルト ディレクトリから取得されます。デフォルト ディレクトリは、contracts/solidity
です (例: HelloWorld)。
`deploy [合约路径]`
# 部署HelloWorld合约,默认路径
[group:1]> deploy HelloWorld.sol
contract address:0xc0ce097a5757e2b6e189aa70c7d55770ace47767
# 部署HelloWorld合约,相对路径
[group:1]> deploy contracts/solidity/HelloWorld.sol
contract address:0xd653139b9abffc3fe07573e7bacdfd35210b5576
# 部署HelloWorld合约,绝对路径
[group:1]> deploy /root/fisco/console/contracts/solidity/HelloWorld.sol
contract address:0x85517d3070309a89357c829e4b9e2d23ee01d881
注記:
- ユーザーが作成したコントラクトを展開するには、Solidity コントラクト ファイルをコンソールのルート ディレクトリの
contracts/solidity/
ディレクトリに配置して、展開します。 Tab キーを押して、contracts/solidity/
ディレクトリで契約名を検索します。- 展開するコントラクトが他のコントラクトまたはライブラリを参照する場合、参照形式は
import "./XXX.sol";
です。関連するインポートされた契約とライブラリはcontracts/solidity/
ディレクトリに配置されます。- コントラクトがライブラリ library を参照する場合、通常のコントラクトとライブラリ ファイルを区別するために、ライブラリ ファイルの名前は文字列
Lib
で始まる必要があります。ライブラリ ファイルを個別に展開して呼び出すことはできません。deployByCNS: CNS を介してブロックチェーン上にコントラクトをデプロイします
通話契約
- call: 関数とパラメータを通じてコントラクトを呼び出します。
call [合约路径] [合约地址] [合约接口名] [合约接口参数]
注:参数:由合约接口参数决定。**参数由空格分隔,其中字符串、字节类型参数需要加上双引号;数组参数需要加上中括号,比如[1,2,3],数组中是字符串或字节类型,加双引号,例如[“alice”,”bob”],注意数组参数中不要有空格;布尔类型为true或者false。**
- callByCNS: CNS (Contract Name Service) を介して関数とパラメータによってコントラクトを呼び出します。
callByCNS [合约路径] [合约地址] [合约接口名] [合约接口参数]
契約状況を取得する
- getContractStatus: 契約のステータスを取得します
getContractStatus [合约地址]
導入されたコントラクトのログをクエリする
- getDeployLog: デプロイメントコントラクトのログをクエリします。
契約の機能やイベント情報を一覧表示
- listAbi: コントラクトの機能とイベント情報をリストします。
listAbi [合约文件路径]
指定したコントラクトのコントラクトアドレスを一覧表示します
- listDeployContractAddress: 指定されたコントラクトのコントラクト アドレスを一覧表示します。
listDeployContractAddress [合约文件路径]
ブロックとトランザクション情報
ハッシュによるブロック情報のクエリ
- getBlockByHash: ハッシュを介してブロック情報をクエリします
getBlockByHash [区块哈希] [true/fasle]
注:
true表示会返回一个交易对象,false会返回只返回交易哈希,不写默认为false
ブロック番号によるブロック情報のクエリ
- getBlockByNumber: ブロック番号によるブロック情報のクエリ
getBlockByNumber [区块号] [true/false]
注:
true表示会返回一个交易对象,false会返回只返回交易哈希,不写默认为false
ブロック番号によるブロックハッシュのクエリ
- getBlockHashByNumber: ブロック番号によるブロック ハッシュのクエリ
getBlockHashByNumber [区块号]
ハッシュを介してブロックヘッダー情報をクエリする
- getBlockHeaderByHash: ハッシュを使用してブロック ヘッダー情報をクエリします
getBlockHeaderByHash [区块哈希] [true/fasle]
注:
如果为true,则还将返回签名列表,不写默认为false
ブロック番号によるブロックヘッダー情報のクエリ
- getBlockHeaderByNumber: ブロック番号によるブロックヘッダー情報のクエリ
getBlockHeaderByNumber [区块号] [true/false]
最新のブロック数を問い合わせる
- getBlockNumber: 最新のブロック数を問い合わせる
未確認のトランザクションをクエリする
- getPendingTransactions: 未確認のトランザクションをクエリします
ブロック ハッシュとトランザクション インデックスの位置に基づいてトランザクション情報をクエリします
- getTransactionByBlockHashAndIndex: ブロック ハッシュとトランザクション インデックスの位置に基づいてトランザクション情報をクエリします。
getTransactionByBlockHashAndIndex [区块哈希] [交易索引]
トランザクション ハッシュに基づいてトランザクション情報をクエリする
- getTransactionByHash: トランザクション ハッシュに基づいてトランザクション情報をクエリします。
getTransactionByHash [交易哈希]
トランザクション ハッシュに基づいてトランザクション受信をクエリする
- getTransactionReceipt: トランザクション ハッシュに基づいてトランザクション受信をクエリします
getTransactionReceipt [交易哈希]
トランザクションの合計数を問い合わせる
getTotalTransactionCount: トランザクションの合計数をクエリします。
権限管理
fisco-bcos セキュリティ コントロールをより良く使用するには、fisco-bcos セキュリティ コントロールを最初に理解する必要があります
GrantCNSManager: CNS にアドレス権限を付与します。
GrantCommitteeMember: アカウント委員会のメンバーシップを付与します。
GrantContractStatusManager: ユーザーに契約権限を付与します。
GrantContractWritePermission: アカウントにコントラクトへの書き込み権限を付与します。
GrantDeployAndCreateManager: コントラクトをデプロイし、ユーザー テーブルを作成するためのアクセス許可をアドレスに付与します。
GrantNodeManager: ノードを構成するためのアクセス許可をアドレスに付与します。
GrantOperator: アカウント オペレーターのステータスを付与します。
GrantSysConfigManager: システムを構成するためのアクセス許可をアドレスに付与します。
GrantUserTableManager: 指定されたテーブル名とアドレスを持つユーザー テーブルにアクセス許可を付与します。
revokeCNSManager: CNS の権限を取り消します。
revokeCommitteeMember: 委員会メンバーからアカウントを取り消します。
revokeContractStatusManager: 契約に対するユーザーの承認を取り消します。
revokeContractWritePermission: コントラクトに対するアカウントの書き込み権限を取り消します。
revokeDeployAndCreateManager: コントラクトをデプロイし、ユーザー テーブルを作成する権限を取り消します。
revokeNodeManager: ノード構成に対する権限を取り消します。
revokeOperator: オペレーター ID を取り消します。
revokeSysConfigManager: システム構成の権限を取り消します。
revokeUserTableManager: 指定されたテーブル名とアドレスを持つユーザー テーブルに対する権限を取り消します。
revokeSysConfigManager: システム構成の権限を取り消します。
revokeUserTableManager: 指定されたテーブル名とアドレスを持つユーザー テーブルに対する権限を取り消します。
委員の体重
- queryCommitteeMemberWeight: 委員会メンバーの体重をクエリします。
- updateCommitteeMemberWeight: 委員会メンバーの体重を更新します。