Skip to content

Commit

Permalink
Updated user stories - hip-869.md (#972)
Browse files Browse the repository at this point in the history
Signed-off-by: mab <[email protected]>
  • Loading branch information
Mark-Swirlds authored May 29, 2024
1 parent 0810485 commit a1e17f8
Showing 1 changed file with 22 additions and 41 deletions.
63 changes: 22 additions & 41 deletions HIP/hip-869.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ status: Accepted
last-call-date-time: 2023-02-14T07:00:00Z
created: 2024-01-22
discussions-to: https://github.com/hashgraph/hedera-improvement-proposal/pull/869
updated: 2024-04-16
updated: 2024-05-21
---

## Abstract
Expand Down Expand Up @@ -43,7 +43,7 @@ This HIP is focused on the HAPI Endpoints phase of the project only. A second

*Feature Benefits:*

- Enables Hedera and node operators to manage address book without Swirlds Labs involvement.
- Enables Hedera council and node operators to manage address book automatically.
- Core building block to support eventual support for community and permissionless nodes.
- Enables the rotation of node operators off the Hedera network should it be required as contracts expire.
- NMT integration of local node firewall admin reduces cost & complexity of node operations.
Expand All @@ -58,63 +58,44 @@ Adopting a two-phase strategy, this approach facilitated the earlier release of

**Personas**

**Council Member** - A member of the council authorized to submit address book changes
**Council** - Hedera Council

**Node Operator** - Technical administrator of Hedera Consensus Nodes
**Node Operator** - Administrator of Hedera Consensus Nodes

**Add Node to Address Book**

***User Story:*** As a council member, I want the ability to submit signed HAPI transactions to add a new consensus node to the Hedera network upon the next maintenance window, so that I can perform operations independently.
***User Stories:***
1. As the Council, we want to submit signed HAPI transactions to add a new consensus node to the Hedera network upon the next maintenance window, so that management of Hedera's Address book is automated.

***Acceptance:*** When a valid council member initiates a HAPI transaction to add a new node, then the network should acknowledge the transaction and perform an update to the network’s Address Book at the next maintenance window.
*Acceptance: When the council initiates a HAPI transaction to add a new node, then the network acknowledges the transaction and performs the update to the network’s Address Book at the next maintenance window.*

**Remove Node from Address Book**
2. As the Council, we want to submit signed HAPI transactions to remove a consensus node from the Hedera network upon the next maintenance window, so that management of Hedera's Address book is automated.

***User Story:*** As a council member, I want the ability to submit signed HAPI transactions to remove a new consensus node to the Hedera network upon the next maintance window, so that I can perform operations independently.
*Acceptance: When the council submits a HAPI transaction to remove a node, then the network should acknowledge the transaction and performs the update to the network’s Address Book at the next maintenance window.*

***Acceptance:*** When a council member submits a HAPI transaction to remove a node, then the network should acknowledge the transaction and perform an update to the network’s Address Book at the next maintenance window.
3. As a Node Operator, I want to submit a signed HAPI transaction that modifies one or both of an existing node's IP addresses and/or ports, so I can independently perform address book related node operations.

**Update Node IP Address(s) and Port(s)**
*Acceptance: When a Node Operator submits a HAPI transaction to modify a node's primary IP address:port or secondary IP address:port, the network acknowledges the transaction and performs the update to the network’s Address Book at the next maintenance window.*

***User Story:*** As a council member, I value the ability to submit a signed HAPI transaction that modifies one or both of an existing node's IP addresses and/or ports.
4. As a Node Operator, I want to submit a signed HAPI transaction that modifies a list of GRPC proxy endpoints supporting both IP and FQDN address formats, so I can independently perform address book related node operations.

***Acceptance:*** When a council member submits a HAPI transaction to modify a node's primary IP address:port or secondary IP address:port, network should acknowledge the transaction and perform an update to the network’s Address Book at the next maintenance window.
*Acceptance: When a Node Operator submits a HAPI transaction to modify a node's IP address:port or FQDN:port, the network acknowledges the transaction and performs the update to the network’s Address Book at the next maintenance window.*

**Update GRPC Proxy Endpoint(s)**
5. As a Node Operator, I want to submit a signed HAPI transaction that modifies a node’s description within the Address Book, so I can independently perform address book related node operations.

***User Story:*** As a council member, I value the ability to submit a signed HAPI transaction that modifies a list of GRPC proxy endpoints supporting both IP and FQDN address formats.
*Acceptance: When a Node Operator submits a HAPI transaction to modify a node's associated Description Field, then the network acknowledges the transaction and performs the update to the network’s Address Book at the next maintenance window.*

***Acceptance:*** When a council member submits a HAPI transaction to modify a node's IP address:port or FQDN:port, then network should acknowledge the transaction and perform an update to the network’s Address Book at the next maintenance window.
6. As a Node Operator, I want to submit a signed HAPI transaction that modifies a node’s public key within the Address Book used for signing, so I can independently perform address book related node operations.

**Update Node Description**
*Acceptance: When a Node Operator submits a HAPI transaction to modify a node's associated Public Key, then the network acknowledges the transaction and performs the update the network’s Address Book at the next maintenance window.*

***User Story:*** As a council member, I value the ability to submit a signed HAPI transaction that modifies a node’s description within the Address Book.
7. As a Node Operator, I want to submit a signed HAPI transaction that modifies a node’s Account ID within the Address Book, so I can independently perform address book related node operations.

***Acceptance:*** When a council member submits a HAPI transaction to modify a node's associated Description Field, then the network should acknowledge the transaction and perform an update to the network’s Address Book at the next maintenance window.
*Acceptance: When a Node Operator submits a HAPI transaction to modify a node's Account ID, then the network acknowledges the transaction and performs the update the network’s Address Book at the next maintenance window.*

**Update Node’s Public Key**
8. As a Node Operator, I want to submit a signed HAPI transaction that modifies a node’s X509 certificate hash within the Address Book, so I can independently perform address book related node operations.

***User Story:*** As a council member, I value the ability to submit a signed HAPI transaction that modifies a node’s public key within the Address Book used for signing.
*Acceptance: When a Node Operator submits a HAPI transaction to modify a node's associated X509 certificate hash, then the network acknowledges the transaction and performs the update the network’s Address Book at the next maintenance window.*

***Acceptance:*** When a council member submits a HAPI transaction to modify a node's associated Public Key, then the network should acknowledge the transaction and perform update the network’s Address Book at the next maintenance window.

**Update Node’s Account ID**

***User Story:*** As a council member, I value the ability to submit a signed HAPI transaction that modifies a node’s Account ID within the Address Book.

***Acceptance:*** When a council member submits a HAPI transaction to modify a node's Account ID, then the network should acknowledge the transaction and perform update the network’s Address Book at the next maintenance window.

**Update Node’s X509 Certificate**

***User Story:*** As a council member, I value the ability to submit a signed HAPI transaction that modifies a node’s X509 certificate hash within the Address Book.

***Acceptance:*** When a council member submits a HAPI transaction to modify a node's associated X509 certificate hash, then the network should acknowledge the transaction and perform update the network’s Address Book at the next maintenance window.

**Automated Firewall Adaptation**

***User Story:*** As a node operator, I rely on the Network Management Tool (NMT) to automatically adjust firewall configurations based on transactions associated with address book changes, so that I can perform operations independently.

***Acceptance:*** When a HAPI transaction triggers an address book change involving a node's addition or removal, or IP:Port change, then the network should acknowledge the transaction and perform update the network’s Address Book at the next maintenance window.
## Specification

This HIP proposes the introduction of a new NodeService API that enables a node operator to create, delete, and update nodes. All of these transactions must be signed by the Hedera Council.
Expand Down Expand Up @@ -341,7 +322,7 @@ Each transaction made through NodeService will have a corresponding transaction

During stage1, node changes will not be active until the network is upgraded. When the node starts, the Platform still uses config.txt to create an AddressBook, which is then passed to Services. This AddressBook contains the activated nodes in the network. Services use the activated nodes to calculate weight.

During the *PREPARE_UPGRADE* freeze period, Services will generate a new config.txt and public.pfx file based on all the NodeService transactions since the last upgrade. These two files will be added to the location where file 0.0.150 is unzipped. Once the *FREEZE_UPGRADE* is completed, the freeze_scheduled.mf mark file is generated. This file will trigger DevOp to run NMT.## Backwards Compatibility
When executing the next `freeze` transaction with `freeze_type` set to `PREPARE_UPGRADE`, services will update network configuration according to the pending modifications for all node create, update, or delete transactions since the last upgrade and merge any pending state to active state.

All HIPs that introduce backward incompatibilities must include a section describing these incompatibilities and their severity. The HIP must explain how the author proposes to deal with these incompatibilities. HIP submissions without a sufficient backward compatibility treatise may be rejected outright.

Expand Down

0 comments on commit a1e17f8

Please sign in to comment.