-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
0.0.101 NodeAddressBook contains duplicate entries for each distinct IP #60
Comments
Issue created to track hashgraph/hedera-protobufs#21 and hashgraph/hedera-services#750 |
Revised Proposal here hashgraph/hedera-services#750 (comment) New message structures: /*
Contains the IP address and the port representing a service endpoint of a Node in a network. Used to reach the Hedera API and submit transactions to the network.
*/
message ServiceEndpoint {
bytes ipAddressV4 = 1; // The 32-bit IP address of the node encoded in left to right order (e.g. 127.0.0.1 has 127 as its first byte)
int32 port = 2; // The port of the node
}
/*
The data about a Node – including IP Address, and the crypto account associated with the Node.
All fields are populated in the 0.0.102 address book file while only fields that start with # are populated in the 0.0.101 address book file.
*/
message NodeAddress {
bytes ipAddress = 1 [deprecated=true]; // The IP address of the Node with separator & octets encoded in UTF-8. Usage is deprecated, ServiceEndpoint is preferred to retrieve a node's list of IP addresses and ports.
int32 portno = 2 [deprecated=true]; // The port number of the grpc server for the node. Usage is deprecated, ServiceEndpoint is preferred to retrieve a node's list of IP addresses and ports.
bytes memo = 3 [deprecated=true]; // Usage is deprecated, nodeAccountId is preferred to retrieve a node's account ID.
string RSA_PubKey = 4; // The x509 RSA public key of the node encoded in hex format.
int64 nodeId = 5; // # A non-sequential identifier for the node.
AccountID nodeAccountId = 6; // # The account to be paid for queries and transactions sent to this node.
bytes nodeCertHash = 7; // # A hash of the X509 cert used for gRPC traffic to this node.
repeated ServiceEndpoint serviceEndpoint = 8; // # A node's service IP addresses and ports.
string description = 9; // A description of the node. Max 100 bytes.
int64 stake = 10; // The amount of tinybars staked to this node.
}
/*
A list of nodes and their metadata that contains all details of the nodes for the network
*/
message NodeAddressBook {
repeated NodeAddress nodeAddress = 1; // Metadata of nodes on the network
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Summary
As a Hedera Services client, I need the address book to contain one entry per node so it's easier to consume and doesn't duplicate information. Currently, for the 0.0.101 address book that contains IP address information it duplicates each
NodeAddress
for each distinct IP that that node has. This is confusing since the node count shows as 39 in mainnet (viaNodeAddressBook.getNodeAddressCount()
) despite there only being 13ish nodes. It's also wasteful to duplicate information as every client who wants to communicate with the network will be pulling this file to get up to date IP information.The proto currently looks like this:
Possible resolution
File 0.0.101 will be NodeAddressBookAbbreviated
File 0.0.102 will be NodeAddressBook
The text was updated successfully, but these errors were encountered: