Checkpoint
Checkpoints contain finalized transactions and are used for node synchronization and global transaction ordering.
type Checkpoint {
digest: String!
sequenceNumber: UInt53!
timestamp: DateTime!
validatorSignatures: Base64!
previousCheckpointDigest: String
networkTotalTransactions: UInt53
rollingGasSummary: GasCostSummary
epoch: Epoch
transactionBlocks(
first: Int
after: String
last: Int
before: String
filter: TransactionBlockFilter
scanLimit: Int
): TransactionBlockConnection!
}
Fields
Checkpoint.digest ● String! non-null scalar
A 32-byte hash that uniquely identifies the checkpoint contents, encoded in Base58. This hash can be used to verify checkpoint contents by checking signatures against the committee, Hashing contents to match digest, and checking that the previous checkpoint digest matches.
Checkpoint.sequenceNumber ● UInt53! non-null scalar
This checkpoint's position in the total order of finalized checkpoints, agreed upon by consensus.
Checkpoint.timestamp ● DateTime! non-null scalar
The timestamp at which the checkpoint is agreed to have happened according to consensus. Transactions that access time in this checkpoint will observe this timestamp.
Checkpoint.validatorSignatures ● Base64! non-null scalar
This is an aggregation of signatures from a quorum of validators for the checkpoint proposal.
Checkpoint.previousCheckpointDigest ● String scalar
The digest of the checkpoint at the previous sequence number.
Checkpoint.networkTotalTransactions ● UInt53 scalar
The total number of transaction blocks in the network by the end of this checkpoint.
Checkpoint.rollingGasSummary ● GasCostSummary object
The computation cost, storage cost, storage rebate, and non-refundable storage fee accumulated during this epoch, up to and including this checkpoint. These values increase monotonically across checkpoints in the same epoch, and reset on epoch boundaries.
Checkpoint.epoch ● Epoch object
The epoch this checkpoint is part of.
Checkpoint.transactionBlocks ● TransactionBlockConnection! non-null object
Transactions in this checkpoint.
scanLimitrestricts the number of candidate transactions scanned when gathering a page of results. It is required for queries that apply more than two complex filters (on function, kind, sender, recipient, input object, changed object, or ids), and can be at mostserviceConfig.maxScanLimit.When the scan limit is reached the page will be returned even if it has fewer than
firstresults when paginating forward (lastwhen paginating backwards). If there are more transactions to scan,pageInfo.hasNextPage(orpageInfo.hasPreviousPage) will be set totrue, andPageInfo.endCursor(orPageInfo.startCursor) will be set to the last transaction that was scanned as opposed to the last (or first) transaction in the page.Requesting the next (or previous) page after this cursor will resume the search, scanning the next
scanLimitmany transactions in the direction of pagination, and so on until all transactions in the scanning range have been visited.By default, the scanning range consists of all transactions in this checkpoint.
Checkpoint.transactionBlocks.first●Intscalar
Checkpoint.transactionBlocks.after ● String scalar
Checkpoint.transactionBlocks.last ● Int scalar
Checkpoint.transactionBlocks.before ● String scalar
Checkpoint.transactionBlocks.filter ● TransactionBlockFilter input
Checkpoint.transactionBlocks.scanLimit ● Int scalar
Returned By
checkpoint query
Member Of
AvailableRange object ● CheckpointConnection object ● CheckpointEdge object ● TransactionBlockEffects object