Symbol-ETL Part.1 Block編


まずは基本のブロックから。
金額の移動という観点からすると、ここにある金額及びその行き先アドレスの情報は
Inflationや、Harvester, beneficiary及びNetworkSinkの分配とかの情報が入っていないため、Statementを見た方が良さそう。ただし、各トランザクションで消費されたFeeの値は、TransactionにはMaxFeeしかないため、feeMultiplierとの計算が必要だと思う。

サンプルデータ

{
    "recordId": "5FC286F4A094C43139213EB0",
    "size": 560,
    "hash": "339E8AB1E1A5D19F394AF1918B051CA32567D824DF463BAA928DDC5959AEE297",
    "generationHash": "F64F8122A01143C26F3BE66640C8C241CB0F2D16EA9742DCA3D4CA742582BEAE",
    "totalFee": "18400",
    "stateHashSubCacheMerkleRoots": [
        "A6CB447B661106D157290795A4B7E12B3878B6A1CFF203772331BF4DC4A9DDB0",
        "F96D2BE50D19C11A030381474291FC5BBCB519F63CBB53473CB718FBB029C930",
        "D8DEE43F8ADF918A81B34A1710CF050495FB8050101AB57098290699153A0B70",
        "DCD99A3343F22978F3848A50E2D37C5DC79364F2D79BEE189DD1B33E69C4EEF4",
        "0000000000000000000000000000000000000000000000000000000000000000",
        "0000000000000000000000000000000000000000000000000000000000000000",
        "A11B40F36D500644E8BEA6BD231BA47A413671BB8AAD9C89532523297E59D001",
        "0000000000000000000000000000000000000000000000000000000000000000",
        "0000000000000000000000000000000000000000000000000000000000000000"
    ],
    "totalTransactionsCount": 1,
    "signature": "E1D9DB9CF67FB7D5D8E436B60179DEDF02631FFC7601C999FEC0F80592A4E89FC1BA648B02745CB5F43BB7DD0E74B50578DF222FE71C059D3234ECF29624D503",
    "signer": {
        "publicKey": "AE7E523C102538937A395C430FA138E863B8D628AB46A9911699AAECDC30AAB8",
        "address": {
            "address": "TB6FNMCYKCLISXEPWL3FO7RS7UWS33BLH73BG5Y",
            "networkType": 152
        }
    },
    "networkType": 152,
    "version": 1,
    "type": 33091,
    "height": "374",
    "timestamp": "27636019546",
    "difficulty": "15750736212871",
    "feeMultiplier": 100,
    "previousBlockHash": "B3DF2CD53F59D8E04892268F2A7D2CC6E4009DCB829FD6603DD7C059B65F69C9",
    "blockTransactionsHash": "AB4552BC93E3C58C228CED27D334B2CB88E4C1221F24FC371C340FE764C43A2D",
    "blockReceiptsHash": "CA2A0F6B0707B0156BC3F04B97CC564F85F8B25D94924294F5FAACDBF634404F",
    "stateHash": "60BBE22F6F36AECB55BBA88DCEEADFD952FA0FD4573D445BB536C99CD48245F0",
    "proofGamma": "F17AB922D3C677C32A7BFC9FFD087BCC5ED824ECEFCF1A1F9165C494563CA74D",
    "proofScalar": "6363351A2AF66A57121E630BDB45088C61C9F12AF53D42AC93E5D2127672CC00",
    "proofVerificationHash": "9FFC498860AE01039F13EEEF98213E74",
    "beneficiaryAddress": {
        "address": "TB6FNMCYKCLISXEPWL3FO7RS7UWS33BLH73BG5Y",
        "networkType": 152
    },
    "transactionsCount": 1,
    "statementsCount": 1
}

項目の説明

field description
recordId
totalFee このブロックに格納されているTranaction Feeの合計
totalTransactionsCount このブロックに格納されているTranadtion数
signer.address ハーベスタのアドレス。リモートアカウントを使っているときは、そのアドレスになる?
networkType
version
type
height ブロック高。Nem系は1始まりなので注意。
timestamp お馴染みのネメシスブロックからのミリ秒です。ネム星人以外に通じるようにするには、変換してください。
feeMultiplier 手数料乗数
トランザクションの手数料は、トランザクションサイズとブロックのハーベスターにより決定される。
https://docs.symbolplatform.com/ja/concepts/fees.html#transaction-fee
transactionにはmaxFeeしか載っていないので、実際のfeeは自分で計算する必要あり。
beneficiaryAddress 受益者アドレス。Node側で設定する。報酬の一部をもらえるのでショバ代みたいなもの?
transactionsCount totalTransactionsCountの違いは、集約系のトランザクションを1と数えるのがこっちで、内訳もカウントするのがtotalTransactionsCount?
statementsCount このブロックに紐づくstatement/recipientの数。トランザクションがなくても、内部的にはハーベスティング報酬が支払われるので、その分もカウントされます。

statement

{
    "height": "374",
    "source": {
        "primaryId": 0,
        "secondaryId": 0
    },
    "receipts": [
        {
            "version": 1,
            "type": 8515,
            "targetAddress": "987C56B0585096895C8FB2F6577E32FD2D2DEC2B3FF61377",
            "mosaicId": "5B66E76BECAD0860",
            "amount": "87305628"
        },
        {
            "version": 1,
            "type": 8515,
            "targetAddress": "98CD8E0C7AA7310818912B070C1DF89799F59D05F5E824F2",
            "mosaicId": "5B66E76BECAD0860",
            "amount": "4595033"
        },
        {
            "version": 1,
            "type": 20803,
            "mosaicId": "5B66E76BECAD0860",
            "amount": "91882261"
        }
    ]
}
field description
type Receiptの種類。16進数に変換した方が分かりやすい。
8515はHarvest_Fee、20803はInflation
詳しくはReceipt参照
targetAddress このRecipientの対象アドレス。このフィールドはtypeによってあったりなかったりする。
mosaicId targetAddressに対するmosaicの種類
amount targetAddressに対する金額