CCF
Loading...
Searching...
No Matches
startup_config.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/curve.h"
13
14#include <optional>
15#include <string>
16#include <vector>
17
19{
20 size_t worker_threads = 0;
21
22 // 2**24.5 as per RFC8446 Section 5.5
23 size_t node_to_node_message_limit = 23'726'566;
24
26
29
31 {
32 std::string subject_name = "CN=CCF Node";
33 std::vector<std::string> subject_alt_names = {};
36
37 bool operator==(const NodeCertificateInfo&) const = default;
38 };
40
42 {
43 size_t tx_count = 5000;
45
46 bool operator==(const LedgerSignatures&) const = default;
47 };
49
50 struct JWT
51 {
53
54 bool operator==(const JWT&) const = default;
55 };
56 JWT jwt = {};
57
59 {
61 std::optional<std::string> snp_security_policy_file = std::nullopt;
62 std::optional<std::string> snp_uvm_endorsements_file = std::nullopt;
63
65 {
66 std::optional<std::string> security_policy = std::nullopt;
67 std::optional<std::string> uvm_endorsements = std::nullopt;
68
69 bool operator==(const Environment&) const = default;
70 };
72
73 bool operator==(const Attestation&) const = default;
74 };
76};
77
79{
80 StartupConfig() = default;
81 StartupConfig(const CCFConfig& common_base) : CCFConfig(common_base) {}
82
83 std::string startup_host_time;
84 size_t snapshot_tx_interval = 10'000;
85
86 // Only if starting or recovering
88 std::string service_subject_name = "CN=CCF Service";
89
90 nlohmann::json service_data = nullptr;
91
92 nlohmann::json node_data = nullptr;
93
94 struct Start
95 {
96 std::vector<ccf::NewMember> members;
97 std::string constitution;
99
100 bool operator==(const Start& other) const = default;
101 };
103
111 Join join = {};
112
113 struct Recover
114 {
115 std::optional<std::vector<uint8_t>> previous_service_identity =
116 std::nullopt;
117 std::optional<std::string> constitution = std::nullopt;
118 };
120};
CurveID
Definition curve.h:18
@ SECP384R1
The SECP384R1 curve.
std::vector< EndorsementsServer > EndorsementsServers
Definition attestation_sev_snp_endorsements.h:81
Definition consensus_types.h:23
Definition startup_config.h:65
std::optional< std::string > uvm_endorsements
Definition startup_config.h:67
std::optional< std::string > security_policy
Definition startup_config.h:66
bool operator==(const Environment &) const =default
Definition startup_config.h:59
bool operator==(const Attestation &) const =default
ccf::pal::snp::EndorsementsServers snp_endorsements_servers
Definition startup_config.h:60
std::optional< std::string > snp_security_policy_file
Definition startup_config.h:61
std::optional< std::string > snp_uvm_endorsements_file
Definition startup_config.h:62
Environment environment
Definition startup_config.h:71
Definition startup_config.h:51
ccf::ds::TimeString key_refresh_interval
Definition startup_config.h:52
bool operator==(const JWT &) const =default
Definition startup_config.h:42
ccf::ds::TimeString delay
Definition startup_config.h:44
bool operator==(const LedgerSignatures &) const =default
size_t tx_count
Definition startup_config.h:43
Definition startup_config.h:31
std::vector< std::string > subject_alt_names
Definition startup_config.h:33
size_t initial_validity_days
Definition startup_config.h:35
bool operator==(const NodeCertificateInfo &) const =default
ccf::crypto::CurveID curve_id
Definition startup_config.h:34
std::string subject_name
Definition startup_config.h:32
Definition startup_config.h:19
size_t worker_threads
Definition startup_config.h:20
ccf::ds::SizeString historical_cache_soft_limit
Definition startup_config.h:25
ccf::NodeInfoNetwork network
Definition startup_config.h:28
JWT jwt
Definition startup_config.h:56
NodeCertificateInfo node_certificate
Definition startup_config.h:39
LedgerSignatures ledger_signatures
Definition startup_config.h:48
Attestation attestation
Definition startup_config.h:75
size_t node_to_node_message_limit
Definition startup_config.h:23
Definition startup_config.h:105
ccf::NodeInfoNetwork::NetAddress target_rpc_address
Definition startup_config.h:106
std::vector< uint8_t > service_cert
Definition startup_config.h:108
ccf::ds::TimeString retry_timeout
Definition startup_config.h:107
bool follow_redirect
Definition startup_config.h:109
Definition startup_config.h:114
std::optional< std::vector< uint8_t > > previous_service_identity
Definition startup_config.h:115
std::optional< std::string > constitution
Definition startup_config.h:117
Definition startup_config.h:95
std::string constitution
Definition startup_config.h:97
std::vector< ccf::NewMember > members
Definition startup_config.h:96
bool operator==(const Start &other) const =default
ccf::ServiceConfiguration service_configuration
Definition startup_config.h:98
Definition startup_config.h:79
std::string startup_host_time
Definition startup_config.h:83
size_t snapshot_tx_interval
Definition startup_config.h:84
Start start
Definition startup_config.h:102
nlohmann::json node_data
Definition startup_config.h:92
std::string service_subject_name
Definition startup_config.h:88
StartupConfig()=default
nlohmann::json service_data
Definition startup_config.h:90
Recover recover
Definition startup_config.h:119
size_t initial_service_certificate_validity_days
Definition startup_config.h:87
StartupConfig(const CCFConfig &common_base)
Definition startup_config.h:81
Join join
Definition startup_config.h:111
std::string NetAddress
Definition node_info_network.h:86
Definition node_info_network.h:192
Definition service_config.h:14
Definition consensus_config.h:11
Definition unit_strings.h:122
Definition unit_strings.h:159