CCF
Loading...
Searching...
No Matches
node_operation_interface.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
5#include "ccf/crypto/pem.h"
6#include "ccf/ds/quote_info.h"
7#include "ccf/node/quote.h"
11#include "ccf/tx.h"
13
14namespace ccf
15{
16 using ExtendedState = std::tuple<
18 std::optional<ccf::kv::Version> /* recovery_target_seqno */,
19 std::optional<ccf::kv::Version> /* last_recovered_seqno */>;
20
22 {
23 public:
24 virtual ~AbstractNodeOperation() = default;
25
26 static char const* get_subsystem_name()
27 {
28 return "NodeOperation";
29 }
30
31 virtual ExtendedState state() = 0;
32
33 virtual bool is_in_initialised_state() const = 0;
34 virtual bool is_part_of_public_network() const = 0;
35 virtual bool is_part_of_network() const = 0;
36 virtual bool is_reading_public_ledger() const = 0;
37 virtual bool is_reading_private_ledger() const = 0;
38
39 virtual bool is_user_frontend_open() = 0;
40 virtual bool is_member_frontend_open() = 0;
41 virtual bool is_accessible_to_members() const = 0;
42
43 virtual bool can_replicate() = 0;
44
47
49 virtual size_t get_jwt_attempts() = 0;
50
53 const QuoteInfo& quote_info,
54 const std::vector<uint8_t>& expected_node_public_key_der,
56
58
60 };
61}
Definition node_operation_interface.h:22
virtual size_t get_jwt_attempts()=0
virtual bool is_accessible_to_members() const =0
virtual bool is_user_frontend_open()=0
virtual ccf::kv::Version get_startup_snapshot_seqno()=0
virtual void initiate_private_recovery(ccf::kv::Tx &tx)=0
virtual QuoteVerificationResult verify_quote(ccf::kv::ReadOnlyTx &tx, const QuoteInfo &quote_info, const std::vector< uint8_t > &expected_node_public_key_der, pal::PlatformAttestationMeasurement &measurement)=0
virtual bool is_in_initialised_state() const =0
virtual ccf::crypto::Pem get_self_signed_node_certificate()=0
virtual bool is_reading_private_ledger() const =0
virtual ExtendedState state()=0
virtual ~AbstractNodeOperation()=default
virtual SessionMetrics get_session_metrics()=0
virtual bool is_member_frontend_open()=0
virtual bool can_replicate()=0
virtual bool is_reading_public_ledger() const =0
virtual bool is_part_of_network() const =0
virtual bool is_part_of_public_network() const =0
static char const * get_subsystem_name()
Definition node_operation_interface.h:26
virtual ccf::kv::Version get_last_recovered_signed_idx()=0
Definition node_subsystem_interface.h:8
Definition pem.h:18
Definition tx.h:161
Definition tx.h:202
uint64_t Version
Definition version.h:8
Definition app_interface.h:15
QuoteVerificationResult
Definition quote.h:17
std::tuple< NodeStartupState, std::optional< ccf::kv::Version >, std::optional< ccf::kv::Version > > ExtendedState
Definition node_operation_interface.h:19
NodeStartupState
Definition node_startup_state.h:10
Describes a quote (attestation) from trusted hardware.
Definition quote_info.h:26
Definition session_metrics.h:13
Definition measurement.h:116