おはようございます。
昨日はよく眠れましたか?
その1
https://qiita.com/kazumasamatsumo/items/07bc4f02925b96820237
その2
https://qiita.com/kazumasamatsumo/items/0f61b20a49c2474bd682
今日もSymbol-cli触っていきます。
環境構築はその1で、アカウントの作成はその2です。
順番にしていけばできます。
ただしバージョンが異なるのは堪忍やで。
使用中のバージョン
Block
今日はblockのサブコマンドを実施します。
まずは
symbol-cli block
で何が出るかみましょう。
(base) ~% symbol-cli block
USAGE
symbol-cli block <subcommand>
SUBCOMMANDS
info - Get block header by height
receipts - Get the receipts triggered for a given block height
search - Search transactions
(base) ~%
さてここの情報をみると
infoはブロックの情報
receiptsは指定されたブロック高に対してトリガーされたレシートを返します。
searchはトランザクションを探します。ということで実際に叩いてみましょう。
(base) ~% symbol-cli block info
✔ Enter the block height: … 79999
Block Header
┌─────────────────────────────────────────┬──────────────────────────────────────────────────────────────────┐
│ Property │ Value │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Record Id: │ 5F92DFFEF703500D5E5F1B60 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Hash: │ 1843B733D52EBF113719A877F1B17357394467BE5651D976A3C52AFDB5E3C516 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Generation Hash: │ FF61D24C32290C1B808B43C240184D3C286E880E106C0D669E67D838123072E0 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Total Fee: │ 0 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Number of Transactions: │ 0 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Number of Transactions (with embedded): │ 0 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Signature: │ DD3B1EF05AF2ADC2CDBF7D846377E3BC529C64ED90B731248DC96C67BCDC862A │
│ │ B61079AA3F2D52864023EC871C75106A1578BF0CC3A39C6644A39A6A28DBB200 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Signer: │ 35149D884E55A438D7E9D922A0F8185D1B27DC930E657C41C495D84B3A4FF315 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Network Type: │ TEST_NET │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Version: │ 1 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Type: │ 33091 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Height: │ 79999 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Timestamp: │ 30030716757 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Difficulty: │ 16737018442386 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Fee Multiplier: │ 0 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Previous Block Hash: │ 83A2D9C176A3D3D3F7F114AC544C78DB59FADCCEE926A746639BDBA5B5FF856C │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Block Transactions Hash: │ 0000000000000000000000000000000000000000000000000000000000000000 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Block Receipts Hash: │ 8CD29BE8D1F3DD3F06D8C3C562D78E8AF6598AC15C67EBB385CA38DCFA7C4092 │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ State Hash: │ 50FF88A95E1AB02E742EC73BC9DBEA1D6FB5A2F808FA7A10836B0E142BE623CF │
├─────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Beneficiary Address │ TDXKCJ-5A7XHG-M3JEVN-4J57RD-DT5HXR-QGICMW-MMY │
└─────────────────────────────────────────┴──────────────────────────────────────────────────────────────────┘
(base) ~%
まず
symbol-cli block info
を叩くと
(base) ~% symbol-cli block info
✔ Enter the block height: … 79999
ブロック高の入力を求められます。
ここは適当に79999と入力しただけです。
1とか2でもいいんじゃないんですか?
そうすると取得できたのは
- Record Id
- Hash
- Generation Hash
- Total Fee
- Number of Transactions
- Number of Transactions(with embedded)
- Signature
- Signer
- Network Type
- Version
- Type
- Height
- Timestamp
- Difficulty
- Fee Multiplier
- Previous Block Hash
- Block Transaction Hash
- Block Receipts Hash
- State Hash
- Beneficiary Address
の20この項目が取得できました。
それぞれが何なのか?
調べてみました。
Record Id
Daokaさんに確認
Hash
ブロックチェーンの高さ。各ブロックは一意な高さを持っています。後ろに続くブロックとは 1 だけ高さが異なります。
Generation Hash
バージョンの証明のハッシュ
Total Fee
トータルの手数料
Number of Transactions
トランザクションの順番?
ここは確認
Number of Transactions(with embedded)
ここは確認
Signature
署名者により生成されたエンティティの署名。
Signer
署名者の公開鍵?
ここも確認
Network Type
エンティティネットワーク
(MAIN_NET) パブリックネットワーク
(TEST_NET) パブリックテストネットワーク
(MIJIN) プライベートネットワーク
(MIJIN_TEST) プライベートテストネットワーク
Version
構造体のバージョン
Type
エンティティタイプ
Height
ブロック高
Timestamp
ネメシスブロックが生成されてから経過したミリ秒です。
Difficulty
以前のブロックに基づき、新しいブロックを見つけるのがどのくらい難しいかを決定します。
Fee Multiplier
手数料乗数はブロックのトランザクションに適用されます。
Previous Block Hash
前ブロックのハッシュ
Block Transaction Hash
ブロック内トランザクションのハッシュ
Block Receipts Hash
このブロックによって生成されたレシートのハッシュ
State Hash
このブロックでのグローバルチェーンステートのハッシュ
Beneficiary Address
ハーベスタによって指定されたオプション受益者のアドレス。
と言った内容の情報が取得できました。
詳しくはこちら
https://docs.symbolplatform.com/ja/concepts/block.html
search
symbol-cli block search
これを実施すると最新のブロックから10件情報を取得できます。
オプションは以下のようになります。
(base) ~% symbol-cli block search --help
Search transactions
USAGE
symbol-cli block search [...options]
OPTIONS
--profile <profile> - (Optional) Select between your profiles, by providing a profile name.
-o, --order <order> - (Optional): Sort entries. (Desc: Newer to older, Asc: Older to newer) [Desc]
-n, --page-size <pageSize> - (Optional) Number of entries per page. [10]
-n, --page-number <pageNumber> - (Optional) Filter by page number. [1]
-i, --offset <offset> - (Optional) Database entry id at which to start pagination.
--signer-public-key <signerPublicKey> - (Optional) Public key of the account signing the entity.
--beneficiary-address <beneficiaryAddress> - (Optional) Filter by beneficiary address.
--order-by <orderBy> - (Optional) Order by (Id, Height). [Id]
(base) ~%
--profile
プロファイルを指定してブロックを取得します
symbol-cli block search --profile kazumasa
これはそのプロファイルが関与しているブロックを取得できるみたいなイメージをしますが、
ここはこのプロファイルのジェネレーションハッシュのノードのブロック最新10件を取得できます。
-o, --order
並び替えをします。
descとascのように並び替えることができます
(base) ~% symbol-cli block search --order desc
⠋ Processing
ERR Order must be one of (Asc, Desc)
(base) ~%
必ずDescとAscのように頭文字を大文字にしましょう。
symbol-cli block search --order Desk
降順(最新のブロックから10件)
symbol-cli block search --order Asc
昇順(最初のブロックから10件)
--page-size
ブロックの取得件数を設定できます。
最低10件から
symbol-cli block search --page-size 15
これだと15件取得できます。
--page-number
ここはページの番号を入力することでそのページを取得できます。10件のみ
正直なところこのオプションを使うことってあるんかな?となっている。
--offset
ここはオプションに何を入れればいいのかわからない。
--signer-public-key
証明者のパブリックキーを入力することでその署名者のブロックを取得できるはず。
--beneficiary-address
ちょっと何言っているかわかりません
--order-by
並び替え
receipts
ちょっとここの機能もそもそも確認