60 static constexpr auto PRIMARY_RPC_INTERFACE =
"primary_rpc_interface";
162 std::optional<ACME>
acme = std::nullopt;
178 max_open_sessions_soft,
179 max_open_sessions_hard,
185 forwarding_timeout_ms,
208 inline static std::pair<std::string, std::string> split_net_address(
211 auto [
host, port] = ccf::nonstd::rsplit_1(addr,
":");
212 return std::make_pair(std::string(
host), std::string(port));
216 const std::string&
host,
const std::string& port)
218 return fmt::format(
"{}:{}",
host, port);
228 std::tie(v1.nodehost, v1.nodeport) =
233 const auto& primary_interface = nin.
rpc_interfaces.begin()->second;
234 std::tie(v1.rpchost, v1.rpcport) =
235 split_net_address(primary_interface.bind_address);
236 std::tie(v1.pubhost, v1.pubport) =
237 split_net_address(primary_interface.published_address);
269 make_net_address(v1.nodehost, v1.nodeport);
272 primary_interface.
bind_address = make_net_address(v1.rpchost, v1.rpcport);
274 make_net_address(v1.pubhost, v1.pubport);
277 PRIMARY_RPC_INTERFACE, std::move(primary_interface));
282FMT_BEGIN_NAMESPACE
template <>
283struct formatter<
ccf::Authority>
285 template <
typename ParseContext>
286 constexpr auto parse(ParseContext& ctx)
291 template <
typename FormatContext>
293 ->
decltype(ctx.out())
299 return format_to(ctx.out(),
"Node");
303 return format_to(ctx.out(),
"Service");
307 return format_to(ctx.out(),
"ACME");
311 return format_to(ctx.out(),
"Unsecured");
#define DECLARE_JSON_REQUIRED_FIELDS(TYPE,...)
Definition json.h:714
#define DECLARE_JSON_TYPE(TYPE)
Definition json.h:663
#define DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS(TYPE)
Definition json.h:690
#define DECLARE_JSON_OPTIONAL_FIELDS(TYPE,...)
Definition json.h:786
#define DECLARE_JSON_ENUM(TYPE,...)
Definition json.h:837
Definition acme_client.h:30
Definition app_interface.h:14
RedirectionResolutionKind
Definition node_info_network.h:63
std::string ApplicationProtocol
Definition node_info_network.h:29
void from_json(const nlohmann::json &j, ClaimsDigest &hash)
Definition claims_digest.h:54
Authority
Definition node_info_network.h:16
void to_json(nlohmann::json &j, const ClaimsDigest &hash)
Definition claims_digest.h:49
Definition configuration.h:14
Definition node_info_network.h:32
Authority authority
Definition node_info_network.h:33
std::optional< std::string > acme_configuration
Definition node_info_network.h:35
bool operator==(const Endorsement &other) const
Definition node_info_network.h:37
Definition node_info_network.h:48
std::string pubport
Definition node_info_network.h:54
std::string nodehost
Definition node_info_network.h:51
std::string rpchost
Definition node_info_network.h:49
std::string rpcport
Definition node_info_network.h:53
std::string nodeport
Definition node_info_network.h:52
std::string pubhost
Definition node_info_network.h:50
ACME configuration description.
Definition node_info_network.h:154
std::map< std::string, ccf::ACMEClientConfig > configurations
Mapping of ACME client configuration names to configurations.
Definition node_info_network.h:156
bool operator==(const ACME &) const =default
Definition node_info_network.h:119
bool operator==(const Redirections &other) const =default
RedirectionResolverConfig to_primary
Definition node_info_network.h:120
RedirectionResolverConfig to_backup
Definition node_info_network.h:121
Network interface description.
Definition node_info_network.h:92
std::optional< size_t > max_open_sessions_hard
Maximum open sessions hard limit.
Definition node_info_network.h:102
std::optional< Redirections > redirections
Definition node_info_network.h:126
NetProtocol protocol
Definition node_info_network.h:95
std::optional< size_t > max_open_sessions_soft
Maximum open sessions soft limit.
Definition node_info_network.h:99
std::optional< size_t > forwarding_timeout_ms
Timeout for forwarded RPC calls (in milliseconds)
Definition node_info_network.h:116
std::optional< ApplicationProtocol > app_protocol
Definition node_info_network.h:96
std::optional< http::ParserConfiguration > http_configuration
HTTP configuration.
Definition node_info_network.h:105
NetAddress bind_address
Definition node_info_network.h:93
std::optional< std::vector< std::string > > accepted_endpoints
Definition node_info_network.h:113
NetAddress published_address
Definition node_info_network.h:94
bool operator==(const NetInterface &other) const
Definition node_info_network.h:128
std::optional< Endorsement > endorsement
Interface endorsement.
Definition node_info_network.h:109
Node network information.
Definition node_info_network.h:85
bool will_locally_seal_ledger_secrets
Definition node_info_network.h:165
NetInterface node_to_node_interface
Node-to-node network interface.
Definition node_info_network.h:147
std::optional< ACME > acme
ACME configuration.
Definition node_info_network.h:162
std::string RpcInterfaceID
Definition node_info_network.h:87
std::string NetProtocol
Definition node_info_network.h:88
std::string NetAddress
Definition node_info_network.h:86
std::map< RpcInterfaceID, NetInterface > RpcInterfaces
RPC interface mapping.
Definition node_info_network.h:144
RpcInterfaces rpc_interfaces
RPC interfaces.
Definition node_info_network.h:150
Definition node_info_network.h:196
bool operator==(const NodeInfoNetwork &other) const
Definition node_info_network.h:201
NodeInfoNetwork(const NodeInfoNetwork_v2 &other)
Definition node_info_network.h:198
NodeInfoNetwork()=default
Definition node_info_network.h:73
bool operator==(const RedirectionResolverConfig &) const =default
RedirectionResolutionKind kind
Definition node_info_network.h:74
nlohmann::json target
Definition node_info_network.h:75