ブロック
Last updated
Last updated
ブロックはトランザクションのバッチの組み合わせであり、チェーン内の前のブロックのハッシュが含まれています。ハッシュはブロックデータの暗号化から派生するため、これによりブロックが(チェーンに)接続されます。これにより、前のブロックを変更すると後続のすべてのブロックが無効になり、すべてのハッシュが変更され、ブロックチェーンを実行するすべての人が気付くため、不正行為が防止されます。
PolySmartChainネットワークのすべての参加者が同期を保ち、トランザクションの正確な履歴に同意できるようにするために、トランザクションを複数のブロックに分割します。これは、数十(または数百)のトランザクションが一度に送信され、合意され、同期されることを意味します。
間隔を空けたコミットを使用すると、トランザクション要求が1秒間に数十回発生した場合でも、すべてのネットワーク参加者にコンセンサスに達するのに十分な時間を与えることができます。PolySmartChainのブロックは、約3秒ごとにコミットされます。
トランザクション履歴を保持するために、ブロックは厳密に順序付けられ(作成された新しいブロックにはそれぞれ親ブロックへの参照が含まれます)、ブロック内のトランザクションは厳密に順序付けられます。まれな場合を除いて、ネットワーク上のすべての参加者は、ブロックの正確な数と履歴について合意し、現在アクティブなトランザクション要求を次のブロックにバッチ処理するように取り組んでいます。
ブロックがネットワーク上のマイナーの1つによってまとめられる(マイニングされる)と、それはネットワークの残りの部分に伝播します。すべてのノードは、このブロックをブロックチェーンの最後に追加し、マイニングを続行します。
timestamp
– ブロックをマイニングする時間。
blockNumber
– ブロックチェーン内のブロックの長さ。
baseFeePerGas
- ブロックにトランザクションを含めるために必要なガスあたりの最小コスト。
difficulty
– マイニングに必要な労力。
mixHash
– ブロックの一意の識別子。
parentHash
– 前のブロックの一意の識別子(これがブロックがチェーンを形成する方法です)。
transactions
–ブロックに含まれるトランザクション。
stateRoot
– システムの全体的な状態:アカウントの残高、契約の保管、契約コード、およびアカウントの乱数。
nonce
– Hashは、mixHashと組み合わせて使用すると、ブロックがワークロードプルーフに合格したことを証明します。
ブロック時間とは、新しいブロックをマイニングするのにかかる時間を指します。PolySmartChainでは、平均ブロック時間は3秒で、各ブロックの後に評価されます。予想されるブロック時間はプロトコルレベルで定数として設定され、鉱夫が計算能力を高めたときにネットワークを保護するために使用されます。平均ブロック時間は予想ブロック時間と比較され、平均ブロック時間が長い場合、ブロックヘッダーの難易度は低くなります。平均ブロック時間が短い場合、ブロックヘッダーの難易度が高くなります。
最後の重要なポイントは、ブロック自体のサイズに制限があることです。各ブロックの目標サイズは1500万ガスですが、ブロックサイズはネットワークの需要に応じて増減します。ブロック制限は最大3000万(ターゲットブロックサイズの2倍)に制限されています。ブロック内のすべてのトランザクションで消費されるガスの総量は、ブロックのガス制限を下回っている必要があります。これは、ブロックが任意に大きくならないようにするために重要です。ブロックが任意に大きくなる可能性がある場合、スペースと速度の要件により、能力の低いフルノードは徐々にネットワークに追いつくことができなくなります。