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}