ブロック
Arc はおよそ 0.5 秒ごとに 1 ブロックをコミットし、そのそれぞれにページがあります。ブロック高でもハッシュでも到達でき、存在した瞬間に確定しています。
ブロックへの 2 つの到達方法#
ブロック高と 32 バイトのブロックハッシュは、どちらも同じページに解決します。これは EIP-3091 がエクスプローラーに求めていることです。正規の表記はブロック高のほうです。Arcscan のすべてのリンクが出力するのは高さで、ハッシュの URL は正規タグを高さに向けるため、2 つの表記が 2 つのページとして扱われることはありません。
https://arc-scan.io/en/block/14852000 https://arc-scan.io/en/block/0xb6a8c3b65b23486cb3b99ac35d60b68009f43daa768a43c16b296cf2c7466968
10 進の数字でも 0x + 16 進 64 文字でもないものは、照会せずに 404 になります。形は正しいがコミットされたことのないハッシュも 404 ですが、それを決められるのはチェーンだけなので、こちらはリクエストを 1 回消費します。目で見てブロックを選ぶなら、ブロック一覧新しいタブで開きますから始めてください。
ブロックページが示すもの#
ラベル付きの行が 3 グループ、そのあとに互換用のヘッダーを収めた開閉領域があります。以下の項目名はページに表示されるものと同じなので、両方を並べて読めます。
概要#
| 項目 | Arc における意味 |
|---|---|
| ブロック高 | チェーンの中での位置です。数字の横の山形は前後のブロックへ移動し、ジェネシスと、当方が把握している最新のブロックで止まります。 |
| ステータス | 常に ファイナル です。Arc は "finality": "instant" と報告するため、待つべき承認数はなく、ページにそれが出ることもありません。 |
| タイムスタンプ | ブロックがコミットされた時刻で、分解能は 1 秒です — そのため 0.5 秒差の 2 ブロックが同じタイムスタンプになることがよくあります。 |
| トランザクション | そのブロックが運んだトランザクションの件数で、トランザクション タブへリンクします。内部トランザクションの件数は、それが分かっているときにだけ同じ文に添えられます。 |
| 提案者 | そのブロックを提案したバリデータのアドレスです。マイナーではなく、ブロック報酬の行もないため、報酬が支払われたと示唆するものはページのどこにもありません。 |
| 支払手数料 | そのブロックの合計トランザクション手数料で、単位は USDC です。 |
| サイズ | ブロックをシリアライズしたサイズ(バイト)です。 |
| トランザクションの動作 | トランザクション 1 件につき四角 1 つを、ブロック内の順に並べ、そのトランザクションが何をしたかで色分けしています。当方のインデックスから導出しているため、インデックスを持たない配備ではこの行は空になるのではなく存在しません。 |
| 使用ガス | そのブロックのトランザクションが消費したガス、上限に対する割合、そしてメーターです。メーターはどの比率でも同じ色です。ほぼ満杯の Arc のブロックは正常であって、異常ではありません。 |
| ガス上限 | このブロックが消費を許されていたガスの最大値です。 |
| ガスあたり基本手数料 | このブロックにおけるガスの価格です。USDC の金額として示し、その横に gwei の値を併記します。 |
| バーン手数料 | 支払われた手数料のうち焼却された分です。上の 支払手数料 の一部であり、それを上回ることはありません。 |
| エクストラデータ | テキストではありません。Arc の extraData は 8 バイトのビッグエンディアンのベースフィーなので、文字化けを生む UTF-8 として解釈するのではなく、生の 16 進をデコード後の値の横に表示します。 |
extraData のデコードは一度見ておく価値があります。イーサリアム向けに作られたツールが最も読み違えやすい項目だからです。メインネットのヘッドブロックでの実測:
extra_data.raw 0x00000004a817c800 0x00000004a817c800 = 20000000000 wei base_fee_gwei 20
詳細#
詳細 の開閉の内側には、Arc がクライアント互換のために保持しているヘッダーの各項目があります。読者がルートをコピーして検証ツールに入れられるようにあるのであって、それらが Arc について何かを語っているからではありません。
| 項目 | 意味 |
|---|---|
| ハッシュ | このブロックのヘッダーのハッシュです。 |
| 親ブロックハッシュ | 1 つ前のブロックのハッシュで、そのブロックへリンクしています。 |
| StateRoot | このブロックの後の状態トライのルートです。 |
| ReceiptsRoot | このブロックのレシートトライのルートです。 |
| TransactionsRoot | このブロックのトランザクショントライのルートです。 |
| ナンス | イーサリアムのツールが動き続けるように保持されています。抽出したどのブロックでも 0x0000000000000000 であり、ここでは合意形成上の意味を持ちません。 |
| 生ヘッダー | イーサリアム型のヘッダーの残り — difficulty、sha3Uncles、logsBloom、mixHash、withdrawalsRoot、blob ガス関連の各項目です。どの値も実在してコピーできますが、Arc 上ではいずれも何の意味も持ちません。 |
ヘッダーの 1 項目は意図的に表示していません
parentBeaconBlockRoot は、抽出したどの Arc のブロックでも親ハッシュとバイト単位で同一でした。これを独立した行として表示すると、読者が突き合わせなければならない 2 つ目の別名の親ポインタを作り出すことになるため、ページはこれを落として親ハッシュを 1 度だけ示します。
3 つのタブ#
概要 は上のカードです。トランザクション はそのブロックのトランザクションを位置の順に並べ、件数をラベル自身の中に持ちます — 件数が不明なときは、件数をまったく出しません。参加者 はそれらを送信したアドレスを、支払った手数料の順に並べます。
0.5 秒、そして到着した時点で確定#
本日 /v1/chain から実測: メインネットは 1 ブロックあたり 506 ミリ秒、テストネットは 536 ミリ秒です。どちらもプロトコルの定数ではなく API が報告する実測値なので、ハードコードせずにそこから読んでください。ファイナリティは両チェーンとも instant です。コミットされたブロックは巻き戻せず、再編成もないため、ブロックページは一度描かれたら永久に正しいままです。
空のブロックは正常です
Arc は誰も何も送っていなくても、定刻どおりにブロックをコミットします。メインネットの高さ 1、14,000,000、14,852,000 はいずれも、本体が完全に取得できる状態でトランザクション 0 件でした — これはチェーンが暇だったということであって、当方のデータの欠落ではありません。ページは壊れて見えるのではなく、そのことをはっきり述べます。
手数料もガスも USDC です#
Arc のガスは USDC で支払われるため、ブロックページの手数料の行はすでにドル額です — オラクルも換算もありません。ネイティブ通貨は小数 18 桁、一方 0x3600000000000000000000000000000000000000 にある ERC-20 の USDC は6 桁です。サイトには両方のスケールが登場するので、生の数量を読むときにどちらかを決めつけないでください。
block 14,852,345 Fees Paid 0.0009989545 USDC
Burnt Fees 0.00092926 USDC
Base Fee 20 Gwei不明はゼロではありません#
ノードがブロックの本体を保持しなくなっても、そのヘッダーは完全なままです — 高さ、タイムスタンプ、提案者、使用ガス、サイズ、各ルートはいずれも実在します — が、本体から得られる件数は失われています。API はそのブロックについてそう述べ、ページは数字が入るはずの場所に 取得できません と表示し、その上に このブロックのトランザクションと手数料は「ゼロ」ではなく「不明」です と題した告知を出します。トランザクション タブと 参加者 タブは、空のブロックだと報告するのではなく、同じ告知を掲げます。
この区別が厳格な規則である理由
本体が破棄されたブロックについて、API は返せる数がほかにないため tx_count: 0 を返します。そのゼロをそのまま描けば、何が入っていたか誰にも分からないブロックについて「トランザクションは入っていなかった」と 5 言語で述べることになります。見るべき事例はテストネットのブロック 30,000,000 です。gas_used は 1,015,512 — つまり何かが確かに起きた — 一方でその本体には pruned と印が付いています。
Arcscan は数字とトランザクション一覧へのリンクをまとめて落とします。一覧できないタブは、読者を送る先ではないからです。この挙動には回帰テストがあり、ここだけでなくすべての場所に適用されます。
ブロックはどこまで遡れるか#
ブロックページは、ヘッダーのためにチェーンを、導出されるすべてのために当方のインデックスを必要とします。2 つのチェーンの出発点は異なり、ジェネシスから始まっているのは片方だけです。
| チェーン | インデックス開始 | その意味 |
|---|---|---|
| Arc メインネット (5042) | ブロック 0 | ジェネシスから連続してインデックスされているため、どのメインネットのブロックにもページがあります。 |
| Arc Testnet (5042002) | ブロック 53,500,000 | その高さより下は、当方のインデックスに一切ありません。そこで答えが空であることは、チェーンではなく当方の履歴が欠けていることを意味します。 |
上端は両チェーンとも 1 秒に約 2 回動くため、ここには数値を書きません — /v1/chain かエクスプローラーからリアルタイムで読んでください。ブロックページを読むうえで知っておく価値のある欠落が 1 つあります。traces のインデックスストリームは現在、どちらのチェーンでもブロックを 1 つも保持していません。ブロックの内部トランザクションの件数が トランザクション の行にたいてい出ていないのは、そのためです。ここでも、ゼロではなく「無い」ということです。