@@ -14,7 +14,7 @@ discussions-to: https://github.com/hiero-ledger/hiero-improvement-proposals/pull
1414status : Approved
1515last-call-date-time : 2026-02-11T07:00:00Z
1616created : 2025-03-07
17- updated : 2026-02-10
17+ updated : 2026-03-05
1818---
1919
2020## Abstract
@@ -233,6 +233,14 @@ message RegisteredServiceEndpoint {
233233 * Hiero consensus network.
234234 */
235235 RpcRelayEndpoint rpc_relay = 7;
236+
237+ /**
238+ * A general service.<br/>
239+ * A general service endpoint represents any network accessible service
240+ * that is provided by a registered node but that is not a service
241+ * currently defined as part of the Hiero Ledger system.
242+ */
243+ GeneralServiceEndpoint general_service = 8;
236244 }
237245
238246 /**
@@ -296,6 +304,19 @@ message RegisteredServiceEndpoint {
296304 */
297305 message RpcRelayEndpoint {
298306 }
307+
308+ /**
309+ * A message indicating this endpoint is a General Service endpoint.
310+ */
311+ message GeneralServiceEndpoint {
312+ /**
313+ * A short description of the service provided.
314+ * <p>
315+ * This value, if set, MUST NOT exceed 100 bytes when encoded as UTF-8.<br/>
316+ * This field is OPTIONAL.
317+ */
318+ string description = 1;
319+ }
299320}
300321```
301322
@@ -365,6 +386,10 @@ Service. This API function is used by the node operator to delete a node.
365386This API function MAY also be used by an Hiero network's governance
366387structure to administratively delete a registered node when necessary.
367388
389+ If a ` RegisteredNode ` is present in the ` associated_registered_nodes ` list for
390+ any consensus ` Node ` , then that ` RegisteredNode ` cannot be deleted until it
391+ is first removed from the ` associated_registered_nodes ` list.
392+
368393``` protobuf
369394message RegisteredNodeDeleteTransactionBody {
370395 /**
@@ -440,7 +465,7 @@ message RegisteredNodeUpdateTransactionBody {
440465 * If set, this list MUST NOT contain more than `50` entries.<br/>
441466 * If set, this list SHALL _replace_ the previous list.
442467 */
443- repeated com.hedera.hapi.node.addressbook. RegisteredServiceEndpoint service_endpoint = 4;
468+ repeated RegisteredServiceEndpoint service_endpoint = 4;
444469
445470 /**
446471 * An account identifier.<br/>
@@ -667,15 +692,32 @@ message NodeUpdateTransactionBody {
667692 * HIP-1137) that are operated by the same entity that operates this
668693 * consensus node.
669694 * <p>
670- * This field is OPTIONAL and MAY be empty.<br/>
671- * If set, this field SHALL overwrite any existing value.<br/>
695+ * This field is OPTIONAL.<br/>
696+ * If this field is not set, the current list SHALL NOT change.<br/>
697+ * If this field is set, but contains an empty list, any existing
698+ * associated registered nodes SHALL be removed.<br/>
672699 * This field MUST NOT contain more than twenty(20) entries.<br/>
673700 * Every entry in this list MUST be a valid `registered_node_id` for a
674701 * current registered node.
675702 */
676- repeated uint64 associated_registered_node = 11;
703+ AssociatedRegisteredNodeList associated_registered_node_list = 11;
677704}
678705
706+ /**
707+ * A wrapper around a list of associated registered node identifiers.<br/>
708+ * This wrapper exists to enable an update transaction to differentiate
709+ * between a field that is not set and an empty list of values.
710+ * <p>
711+ * An _unset_ field of this type SHALL NOT modify existing values.<br/>
712+ * A _set_ field of this type with an empty list SHALL remove any
713+ * existing values.
714+ */
715+ message AssociatedRegisteredNodeList {
716+ /**
717+ * A list of registered node identifiers.
718+ */
719+ repeated uint64 associated_registered_node = 1;
720+ }
679721```
680722
681723### Mirror node update
@@ -728,8 +770,6 @@ current proposal.
728770 1 . The modification of registered nodes and consensus nodes have
729771 vastly different risk profiles, and mandate very different signatory
730772 requirements.
731-
732- ## Open Issues
7337731 . Should we use a full Entity ID (0.0.1234 form) for registered node ID
734774 values, or is it reasonable to keep just a single integer (e.g. 28 or 18273)
735775 as the registered node ID.
@@ -745,6 +785,9 @@ current proposal.
745785 be integrated with community sentiment remains an open question.
746786 * This concept should be the subject of a future HIP.
747787
788+ ## Open Issues
789+ None
790+
748791## Copyright/license
749792<!-- SPDX-License-Identifier: Apache-2.0 -->
750793This document is licensed under the Apache License, Version 2.0 --
0 commit comments