CCF
Loading...
Searching...
No Matches
configuration.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
4#pragma once
5
6#include "ccf/crypto/curve.h"
7#include "ccf/crypto/pem.h"
8#include "ccf/ds/json.h"
9#include "ccf/ds/logger.h"
10#include "ccf/ds/unit_strings.h"
17#include "ds/oversized.h"
21
22#include <optional>
23#include <string>
24#include <vector>
25
28 {{LoggerLevel::TRACE, "Trace"},
29 {LoggerLevel::DEBUG, "Debug"},
30 {LoggerLevel::INFO, "Info"},
31 {LoggerLevel::FAIL, "Fail"},
32 {LoggerLevel::FATAL, "Fatal"}});
33
36 {{StartType::Start, "Start"},
37 {StartType::Join, "Join"},
38 {StartType::Recover, "Recover"}});
39
52
53static constexpr auto node_to_node_interface_name = "node_to_node_interface";
54
58 CCFConfig::NodeCertificateInfo,
59 subject_name,
60 subject_alt_names,
61 curve_id,
62 initial_validity_days);
63
66DECLARE_JSON_OPTIONAL_FIELDS(CCFConfig::LedgerSignatures, tx_count, delay);
67
70DECLARE_JSON_OPTIONAL_FIELDS(CCFConfig::JWT, key_refresh_interval);
71
73DECLARE_JSON_REQUIRED_FIELDS(CCFConfig::Attestation::Environment);
75 CCFConfig::Attestation::Environment, security_policy, uvm_endorsements);
76
80 CCFConfig::Attestation,
81 snp_endorsements_servers,
82 environment,
83 snp_security_policy_file,
84 snp_uvm_endorsements_file);
85
90 worker_threads,
91 node_certificate,
93 ledger_signatures,
94 jwt,
95 attestation,
96 node_to_node_message_limit,
97 historical_cache_soft_limit);
98
101 StartupConfig::Start, members, constitution, service_configuration);
102
106 target_rpc_address,
107 retry_timeout,
108 service_cert,
109 follow_redirect);
110
114
118 startup_host_time,
119 snapshot_tx_interval,
120 initial_service_certificate_validity_days,
121 service_subject_name,
122 service_data,
123 node_data,
124 start,
125 join,
126 recover);
StartType
Definition enclave_interface_types.h:113
@ Join
Definition enclave_interface_types.h:115
@ Recover
Definition enclave_interface_types.h:116
@ Start
Definition enclave_interface_types.h:114
#define DECLARE_JSON_TYPE_WITH_BASE(TYPE, BASE)
Definition json.h:663
#define DECLARE_JSON_REQUIRED_FIELDS(TYPE,...)
Definition json.h:712
#define DECLARE_JSON_TYPE(TYPE)
Definition json.h:661
#define DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS(TYPE)
Definition json.h:688
#define DECLARE_JSON_OPTIONAL_FIELDS(TYPE,...)
Definition json.h:784
#define DECLARE_JSON_ENUM(TYPE,...)
Definition json.h:835
LoggerLevel
Definition logger_level.h:6
@ DEBUG
Definition logger_level.h:8
@ FATAL
Definition logger_level.h:11
@ INFO
Definition logger_level.h:9
@ TRACE
Definition logger_level.h:7
@ FAIL
Definition logger_level.h:10
Definition consensus_types.h:23
Definition startup_config.h:31
Definition startup_config.h:19
Definition configuration.h:41
oversized::WriterConfig writer_config
Definition configuration.h:50
ringbuffer::Offsets * from_enclave_buffer_offsets
Definition configuration.h:48
size_t to_enclave_buffer_size
Definition configuration.h:43
uint8_t * from_enclave_buffer_start
Definition configuration.h:46
size_t from_enclave_buffer_size
Definition configuration.h:47
uint8_t * to_enclave_buffer_start
Definition configuration.h:42
ringbuffer::Offsets * to_enclave_buffer_offsets
Definition configuration.h:44
Definition startup_config.h:79
Definition oversized.h:341
Definition ring_buffer_types.h:25