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"
8#include "ccf/node/quote.h"
12#include "ccf/tx.h"
14
15namespace ccf
16{
17 using ExtendedState = std::tuple<
19 std::optional<ccf::kv::Version> /* recovery_target_seqno */,
20 std::optional<ccf::kv::Version> /* last_recovered_seqno */>;
21
23 {
24 public:
25 virtual ~AbstractNodeOperation() = default;
26
27 static char const* get_subsystem_name()
28 {
29 return "NodeOperation";
30 }
31
32 virtual ExtendedState state() = 0;
33
34 virtual bool is_in_initialised_state() const = 0;
35 virtual bool is_part_of_public_network() const = 0;
36 virtual bool is_part_of_network() const = 0;
37 virtual bool is_reading_public_ledger() const = 0;
38 virtual bool is_reading_private_ledger() const = 0;
39
40 virtual bool is_user_frontend_open() = 0;
41 virtual bool is_member_frontend_open() = 0;
42 virtual bool is_accessible_to_members() const = 0;
43
44 virtual bool can_replicate() = 0;
45
48
50 virtual size_t get_jwt_attempts() = 0;
51
54 const QuoteInfo& quote_info,
55 const std::vector<uint8_t>& expected_node_public_key_der,
57
59
61
63 };
64}
Definition node_operation_interface.h:23
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 const ccf::COSESignaturesConfig & get_cose_signatures_config()=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:27
virtual ccf::kv::Version get_last_recovered_signed_idx()=0
Definition node_subsystem_interface.h:8
Definition pem.h:18
Definition tx.h:160
Definition tx.h:201
uint64_t Version
Definition version.h:8
Definition app_interface.h:14
QuoteVerificationResult
Definition quote.h:18
std::tuple< NodeStartupState, std::optional< ccf::kv::Version >, std::optional< ccf::kv::Version > > ExtendedState
Definition node_operation_interface.h:20
NodeStartupState
Definition node_startup_state.h:10
Definition cose_signatures_config.h:12
Describes a quote (attestation) from trusted hardware.
Definition quote_info.h:26
Definition session_metrics.h:13
Definition measurement.h:120