iota_grpc_types/proto/generated/iota.grpc.v1.checkpoint.rs
1// Copyright (c) Mysten Labs, Inc.
2// Modifications Copyright (c) 2025 IOTA Stiftung
3// SPDX-License-Identifier: Apache-2.0
4
5// This file is @generated by prost-build.
6/// A header for a checkpoint on the IOTA blockchain.
7///
8/// On the IOTA network, checkpoints define the history of the blockchain. They are quite similar to
9/// the concept of blocks used by other blockchains like Bitcoin or Ethereum. The IOTA blockchain,
10/// however, forms checkpoints after transaction execution has already happened to provide a
11/// certified history of the chain, instead of being formed before execution.
12///
13/// Checkpoints commit to a variety of state, including but not limited to:
14///
15/// * The hash of the previous checkpoint.
16/// * The set of transaction digests, their corresponding effects digests, as well as the set of
17/// user signatures that authorized its execution.
18/// * The objects produced by a transaction.
19/// * The set of live objects that make up the current state of the chain.
20/// * On epoch transitions, the next validator committee.
21///
22/// `CheckpointSummary`s themselves don't directly include all of the previous information but they
23/// are the top-level type by which all the information is committed to transitively via cryptographic
24/// hashes included in the summary. `CheckpointSummary`s are signed and certified by a quorum of
25/// the validator committee in a given epoch to allow verification of the chain's state.
26#[non_exhaustive]
27#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
28pub struct CheckpointSummary {
29 /// The digest of this CheckpointSummary.
30 #[prost(message, optional, tag = "1")]
31 pub digest: ::core::option::Option<super::types::Digest>,
32 /// This CheckpointSummary serialized as BCS.
33 #[prost(message, optional, tag = "2")]
34 pub bcs: ::core::option::Option<super::bcs::BcsData>,
35}
36/// The committed to contents of a checkpoint.
37#[non_exhaustive]
38#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
39pub struct CheckpointContents {
40 /// The digest of this CheckpointContents.
41 #[prost(message, optional, tag = "1")]
42 pub digest: ::core::option::Option<super::types::Digest>,
43 /// This CheckpointContents serialized as BCS.
44 #[prost(message, optional, tag = "2")]
45 pub bcs: ::core::option::Option<super::bcs::BcsData>,
46}
47#[non_exhaustive]
48#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
49pub struct Checkpoint {
50 /// The height of this checkpoint.
51 #[prost(uint64, optional, tag = "1")]
52 pub sequence_number: ::core::option::Option<u64>,
53 /// The `CheckpointSummary` for this checkpoint.
54 #[prost(message, optional, tag = "2")]
55 pub summary: ::core::option::Option<CheckpointSummary>,
56 /// The `CheckpointContents` for this checkpoint.
57 #[prost(message, optional, tag = "3")]
58 pub contents: ::core::option::Option<CheckpointContents>,
59 /// An aggregated quorum signature from the validator committee that
60 /// certified this checkpoint.
61 #[prost(message, optional, tag = "4")]
62 pub signature: ::core::option::Option<
63 super::signatures::ValidatorAggregatedSignature,
64 >,
65}