Skip to content

Releases: hashgraph/hedera-protobufs

Hedera Services v0.13.0-rc.2

20 Apr 21:09
f770bbb
Compare
Choose a tag to compare

In Hedera Services v0.13.0, we have redesigned scheduled transactions. The new design gives collaborating nodes a well-defined workflow if they happen to schedule identical transactions, even if they are using different gRPC client libraries (for example, Go and JavaScript). The new design also reduces the number of signatures required to submit a valid ScheduleSign transaction in many common use cases. Users will be able to schedule CryptoTransfer and ConsensusMessageSubmit transactions in this release.

This release deprecates three fields in the protobuf for system files 0.0.101 and 0.0.102. The three deprecated fields are ipAddress, portno, and memo. When we rely on these fields, we cannot concisely represent node with multiple IP addresses. For example, take mainnet node 0 (account 0.0.3), which as of this writing has proxy IPs 13.82.40.153, 34.239.82.6, and 35.237.200.180. The mainnet 0.0.101 file must include a NodeAddress entry for each proxy, which means duplicating fields like nodeCertHash.

The new protobuf avoid this duplication, letting us represent node 0 in a protobuf equivalent of,

{
    "nodeId" : 0,
    "certHash" : "337390d8fea144afc12e81254a28dac6ea82893836ac072effd85e0a7748580ef28096648c5a7f8dbb4ce81476815137",
    "nodeAccount" : "0.0.3",
    "serviceEndpoints" : [ { 
      "ipAddressV4" : "13.82.40.153",
      "port" : 50211
    }, {
      "ipAddressV4" : "34.239.82.6",
      "port" : 50211
    }, {
      "ipAddressV4" : "35.237.200.180",
      "port" : 50211
    } ] 
}

However, Services will continue to populate the deprecated fields in duplicate entries for six months, to give all consumers of files 0.0.101 and 0.0.102 time to prepare for exclusive use of the new format. After six months, we will eliminate the duplication and the ipAddress, portno, and memo fields will be left empty. (The fields will never be removed to ensure it remains possible to parse early versions of these system files.)

In a minor point, Services now rejects any protobuf string field whose UTF-8 encoding includes the zero-byte character; that is, Unicode code point 0, NUL. Databases (for example, PostgreSQL) commonly reserve this character as a delimiter in their internal formats, so allowing it to occur in entity fields can make life harder for Mirror Node operators.

To simplify tasks for network admins, we have also streamlined the signing requirements for updates to system accounts, and introduced a Docker-based utility called "yahcli" for admin actions such as updating system files.

Enhancements

  • Redesign scheduled transactions #1177
  • When updating a system account's key, if the account's signature is waived, also waive signing with new key #1148
  • Basic implementation of yahcli, e.g. #1176

Protobuf deprecations

  • Three NodeAddress fields, to be replaced by a richer ServiceEndpoint message #750

Bug fixes

  • Re-institute policy of exporting account balances every 15 minutes since the epoch #1142

Contributors

We'd like to thank all the contributors who worked on this release!

Hedera Services v0.13.0

21 Apr 19:12
f770bbb
Compare
Choose a tag to compare

In Hedera Services v0.13.0, we have redesigned scheduled transactions. The new design gives collaborating nodes a well-defined workflow if they happen to schedule identical transactions, even if they are using different gRPC client libraries (for example, Go and JavaScript). The new design also reduces the number of signatures required to submit a valid ScheduleSign transaction in many common use cases.

This release deprecates three fields in the protobuf for system files 0.0.101 and 0.0.102. The three deprecated fields are ipAddress, portno, and memo. When we rely on these fields, we cannot concisely represent node with multiple IP addresses. For example, take mainnet node 0 (account 0.0.3), which as of this writing has proxy IPs 13.82.40.153, 34.239.82.6, and 35.237.200.180. The mainnet 0.0.101 file must include a NodeAddress entry for each proxy, which means duplicating fields like nodeCertHash.

The new protobuf avoid this duplication, letting us represent node 0 in a protobuf equivalent of,

{
    "nodeId" : 0,
    "certHash" : "337390d8fea144afc12e81254a28dac6ea82893836ac072effd85e0a7748580ef28096648c5a7f8dbb4ce81476815137",
    "nodeAccount" : "0.0.3",
    "serviceEndpoints" : [ { 
      "ipAddressV4" : "13.82.40.153",
      "port" : 50211
    }, {
      "ipAddressV4" : "34.239.82.6",
      "port" : 50211
    }, {
      "ipAddressV4" : "35.237.200.180",
      "port" : 50211
    } ] 
}

However, Services will continue to populate the deprecated fields in duplicate entries for six months, to give all consumers of files 0.0.101 and 0.0.102 time to prepare for exclusive use of the new format. After six months, we will eliminate the duplication and the ipAddress, portno, and memo fields will be left empty. (The fields will never be removed to ensure it remains possible to parse early versions of these system files.)

In a minor point, Services now rejects any protobuf string field whose UTF-8 encoding includes the zero-byte character; that is, Unicode code point 0, NUL. Databases (for example, PostgreSQL) commonly reserve this character as a delimiter in their internal formats, so allowing it to occur in entity fields can make life harder for Mirror Node operators.

To simplify tasks for network admins, we have also streamlined the signing requirements for updates to system accounts, and introduced a Docker-based utility called "yahcli" for admin actions such as updating system files.

Enhancements

  • Redesign scheduled transactions #1177
  • When updating a system account's key, if the account's signature is waived, also waive signing with new key #1148
  • Basic implementation of yahcli, e.g. #1176

Protobuf deprecations

  • Three NodeAddress fields, to be replaced by a richer ServiceEndpoint message #750

Bug fixes

  • Re-institute policy of exporting account balances every 15 minutes since the epoch #1142

Contributors

We'd like to thank all the contributors who worked on this release!

Hedera Services v0.13.0-alpha.2

30 Mar 20:42
c6ec4a0
Compare
Choose a tag to compare
Pre-release

In the second alpha release of Hedera Services v0.13.0, we have redesigned scheduled transactions. The new design gives collaborating nodes a well-defined workflow if they happen to schedule identical transactions, even if they are using different gRPC client libraries (for example, Go and JavaScript). The new design also reduces the number of signatures required to submit a valid ScheduleSign transaction in many common use cases.

The final release of v0.13.0 will include a notable deprecation in the protobuf that defines the contents of system files 0.0.101 and 0.0.102 (known as the "address book" and "node details" files, respectively). Instead of the ipAddress, portno, memo fields, we will supply a more complete set of node metadata via a new (repeatable) NodeEndpoint message. Please track issue #750 for details. After a six month window, the three deprecated fields will be removed from the NodeAddress type completely.

In a minor point, Services now rejects any protobuf string field whose UTF-8 encoding includes the zero-byte character; that is, Unicode code point 0, NUL. Databases (for example, PostgreSQL) commonly reserve this character as a delimiter in their internal formats, so allowing it to occur in entity fields can make life harder for Mirror Node operators.

To simplify tasks for network admins, we have also streamlined the signing requirements for updates to system accounts, and introduced a Docker-based utility called "yahcli" for admin actions such as updating system files.

Enhancements

  • Redesign scheduled transactions #1177
  • When updating a system account's key, if the account's signature is waived, also waive signing with new key #1148
  • Basic implementation of yahcli, e.g. #1176

Protobuf deprecations

  • Three NodeAddress fields, to be replaced by a richer NodeEndpoint message #750

Bug fixes

  • Re-institute policy of exporting account balances every 15 minutes since the epoch #1142

Contributors

We'd like to thank all the contributors who worked on this release!