55 static constexpr auto PRIMARY_RPC_INTERFACE =
"primary_rpc_interface";
164 max_open_sessions_soft,
165 max_open_sessions_hard,
171 forwarding_timeout_ms,
172 enabled_operator_features,
191 inline static std::pair<std::string, std::string> split_net_address(
194 auto [
host, port] = ccf::nonstd::rsplit_1(addr,
":");
195 return std::make_pair(std::string(
host), std::string(port));
199 const std::string&
host,
const std::string& port)
201 return fmt::format(
"{}:{}",
host, port);
227 j.contains(
"rpc_interfaces") || j.contains(
"node_to_node_interface"))
245 make_net_address(v1.nodehost, v1.nodeport);
248 make_net_address(v1.nodehost, v1.nodeport);
251 primary_interface.
bind_address = make_net_address(v1.rpchost, v1.rpcport);
253 make_net_address(v1.pubhost, v1.pubport);
256 PRIMARY_RPC_INTERFACE, std::move(primary_interface));
261FMT_BEGIN_NAMESPACE
template <>
262struct formatter<
ccf::Authority>
264 template <
typename ParseContext>
265 constexpr auto parse(ParseContext& ctx)
270 template <
typename FormatContext>
272 ->
decltype(ctx.out())
278 return format_to(ctx.out(),
"Node");
282 return format_to(ctx.out(),
"Service");
286 return format_to(ctx.out(),
"ACME");
290 return format_to(ctx.out(),
"Unsecured");
#define DECLARE_JSON_REQUIRED_FIELDS(TYPE,...)
Definition json.h:736
#define DECLARE_JSON_TYPE(TYPE)
Definition json.h:685
#define DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS(TYPE)
Definition json.h:712
#define DECLARE_JSON_OPTIONAL_FIELDS(TYPE,...)
Definition json.h:811
#define DECLARE_JSON_ENUM(TYPE,...)
Definition json.h:864
Definition app_interface.h:13
std::string ApplicationProtocol
Definition node_info_network.h:29
Authority
Definition node_info_network.h:16
void from_json(const nlohmann::json &j, ClaimsDigest &hash)
Definition claims_digest.h:54
RedirectionResolutionKind
Definition node_info_network.h:58
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
bool operator==(const Endorsement &other) const
Definition node_info_network.h:34
Definition node_info_network.h:43
std::string pubport
Definition node_info_network.h:49
std::string nodehost
Definition node_info_network.h:46
std::string rpchost
Definition node_info_network.h:44
std::string rpcport
Definition node_info_network.h:48
std::string nodeport
Definition node_info_network.h:47
std::string pubhost
Definition node_info_network.h:45
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:87
std::optional< size_t > max_open_sessions_hard
Maximum open sessions hard limit.
Definition node_info_network.h:97
std::optional< Redirections > redirections
Definition node_info_network.h:126
NetProtocol protocol
Definition node_info_network.h:90
std::optional< size_t > max_open_sessions_soft
Maximum open sessions soft limit.
Definition node_info_network.h:94
std::optional< size_t > forwarding_timeout_ms
Timeout for forwarded RPC calls (in milliseconds)
Definition node_info_network.h:111
std::optional< ApplicationProtocol > app_protocol
Definition node_info_network.h:91
std::optional< http::ParserConfiguration > http_configuration
HTTP configuration.
Definition node_info_network.h:100
std::set< ccf::endpoints::OperatorFeature > enabled_operator_features
Definition node_info_network.h:116
NetAddress bind_address
Definition node_info_network.h:88
std::optional< std::vector< std::string > > accepted_endpoints
Definition node_info_network.h:108
NetAddress published_address
Definition node_info_network.h:89
bool operator==(const NetInterface &other) const
Definition node_info_network.h:128
std::optional< Endorsement > endorsement
Interface endorsement.
Definition node_info_network.h:104
Node network information.
Definition node_info_network.h:80
NetInterface node_to_node_interface
Node-to-node network interface.
Definition node_info_network.h:148
std::string RpcInterfaceID
Definition node_info_network.h:82
std::string NetProtocol
Definition node_info_network.h:83
std::string NetAddress
Definition node_info_network.h:81
std::map< RpcInterfaceID, NetInterface > RpcInterfaces
RPC interface mapping.
Definition node_info_network.h:145
RpcInterfaces rpc_interfaces
RPC interfaces.
Definition node_info_network.h:151
Definition node_info_network.h:179
bool operator==(const NodeInfoNetwork &other) const
Definition node_info_network.h:184
NodeInfoNetwork(const NodeInfoNetwork_v2 &other)
Definition node_info_network.h:181
NodeInfoNetwork()=default
Definition node_info_network.h:68
bool operator==(const RedirectionResolverConfig &) const =default
RedirectionResolutionKind kind
Definition node_info_network.h:69
nlohmann::json target
Definition node_info_network.h:70