55 static constexpr auto PRIMARY_RPC_INTERFACE =
"primary_rpc_interface";
167 max_open_sessions_soft,
168 max_open_sessions_hard,
174 forwarding_timeout_ms,
175 enabled_operator_features,
196 inline static std::pair<std::string, std::string> split_net_address(
199 auto [
host, port] = ccf::nonstd::rsplit_1(addr,
":");
200 return std::make_pair(std::string(
host), std::string(port));
204 const std::string&
host,
const std::string& port)
206 return fmt::format(
"{}:{}",
host, port);
216 std::tie(v1.nodehost, v1.nodeport) =
221 const auto& primary_interface = nin.
rpc_interfaces.begin()->second;
222 std::tie(v1.rpchost, v1.rpcport) =
223 split_net_address(primary_interface.bind_address);
224 std::tie(v1.pubhost, v1.pubport) =
225 split_net_address(primary_interface.published_address);
257 make_net_address(v1.nodehost, v1.nodeport);
260 primary_interface.
bind_address = make_net_address(v1.rpchost, v1.rpcport);
262 make_net_address(v1.pubhost, v1.pubport);
265 PRIMARY_RPC_INTERFACE, std::move(primary_interface));
270FMT_BEGIN_NAMESPACE
template <>
271struct formatter<
ccf::Authority>
273 template <
typename ParseContext>
274 constexpr auto parse(ParseContext& ctx)
279 template <
typename FormatContext>
281 ->
decltype(ctx.out())
287 return format_to(ctx.out(),
"Node");
291 return format_to(ctx.out(),
"Service");
295 return format_to(ctx.out(),
"ACME");
299 return format_to(ctx.out(),
"Unsecured");
#define DECLARE_JSON_REQUIRED_FIELDS(TYPE,...)
Definition json.h:718
#define DECLARE_JSON_TYPE(TYPE)
Definition json.h:667
#define DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS(TYPE)
Definition json.h:694
#define DECLARE_JSON_OPTIONAL_FIELDS(TYPE,...)
Definition json.h:790
#define DECLARE_JSON_ENUM(TYPE,...)
Definition json.h:841
Definition app_interface.h:14
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
bool will_locally_seal_ledger_secrets
Definition node_info_network.h:154
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:184
bool operator==(const NodeInfoNetwork &other) const
Definition node_info_network.h:189
NodeInfoNetwork(const NodeInfoNetwork_v2 &other)
Definition node_info_network.h:186
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