Symbol-cliを触ってみた3


おはようございます。

昨日はよく眠れましたか?

その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でもいいんじゃないんですか?

そうすると取得できたのは
1. Record Id
2. Hash
3. Generation Hash
4. Total Fee
5. Number of Transactions
6. Number of Transactions(with embedded)
7. Signature
8. Signer
9. Network Type
10. Version
11. Type
12. Height
13. Timestamp
14. Difficulty
15. Fee Multiplier
16. Previous Block Hash
17. Block Transaction Hash
18. Block Receipts Hash
19. State Hash
20. 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

ちょっとここの機能もそもそも確認