Skip to content

Releases: hashgraph/hedera-services

Hedera Services v0.12.0

04 Mar 21:37
Compare
Choose a tag to compare

In Hedera Services v0.12.0, we completed the MVP implementation of the scheduled transactions service as detailed in this design document. This service decouples what should execute on the ledger from when it should execute, giving new flexibility and programmability to users. Note the scheduling operations are enabled on Previewnet, but remain disabled on Testnet and Mainnet at this time.

We have given users of the Hedera Token Service (HTS) more control over the lifecycle of their token associations. In v0.11.0, deleted tokens were immediately dissociated from all accounts. This automatic dissociation no longer occurs. If account X is associated with token Y, then even if token Y is marked for deletion, a getAccountInfo query for X will continue to show the association with Y until it is explicitly removed via a tokenDissociateFromAccount transaction. Note that for convenience, queries that return token balances now also return the decimals value for the relevant token. This allows a user to interpret e.g. balance=10050 as 100.50 tokens given decimals=2.

In a final Hedera API (HAPI) change, we have extended the memo field present on contract and topic entities to the account, file, token, and scheduled transaction entities. (Note this memo is distinct from the short-lived memo that may be given to any TransactionBody for inclusion in the TransactionRecord.) All of these changes to HAPI are now more easily browsed via GitHub pages here; the new hashgraph/hedera-protobufs repository is now the authortative source of the protobuf files defining HAPI.

Apart from these enhancements to HAPI, the "streams" consumable by mirror node operators now include an alpha version of a protobuf file that contains the same information as the _Balances.csv files. The type of this file is AllAccountBalances.

Enhancements

  • Complete the MVP scheduled transaction service #1016, etc.
  • Give users full control of dissociating from expired/deleted tokens. #997, #998
  • Return token decimals in queries that include token balances #1075
  • Add memo field for file entity #962
  • Add memo field for account entity #961
  • Add memo field for token entity #960
  • Export a new _Balances.proto file to (eventually) supersede current _Balances.csv #852
  • Migrate Hedera protobufs to new hashgraph/hedera-protobufs repo #883

Contributors

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

Hedera Services v0.12.0

22 Feb 23:07
Compare
Choose a tag to compare
Pre-release

In Hedera Services v0.12.0, we completed the MVP implementation of the scheduled transactions service as detailed in this design document. This service decouples what should execute on the ledger from when it should execute, giving new flexibility and programmability to users. Note the scheduling operations are enabled on Previewnet, but remain disabled on Testnet and Mainnet at this time.

We have given users of the Hedera Token Service (HTS) more control over the lifecycle of their token associations. In v0.11.0, deleted tokens were immediately dissociated from all accounts. This automatic dissociation no longer occurs. If account X is associated with token Y, then even if token Y is marked for deletion, a getAccountInfo query for X will continue to show the association with Y until it is explicitly removed via a tokenDissociateFromAccount transaction. Note that for convenience, queries that return token balances now also return the decimals value for the relevant token. This allows a user to interpret e.g. balance=10050 as 100.50 tokens given decimals=2.

In a final Hedera API (HAPI) change, we have extended the memo field present on contract and topic entities to the account, file, token, and scheduled transaction entities. (Note this memo is distinct from the short-lived memo that may be given to any TransactionBody for inclusion in the TransactionRecord.) All of these changes to HAPI are now more easily browsed via GitHub pages here; the new hashgraph/hedera-protobufs repository is now the authortative source of the protobuf files defining HAPI.

Apart from these enhancements to HAPI, the "streams" consumable by mirror node operators now include an alpha version of a protobuf file that contains the same information as the _Balances.csv files. The type of this file is AllAccountBalances.

Enhancements

  • Complete the MVP scheduled transaction service #1016, etc.
  • Give users full control of dissociating from expired/deleted tokens. #997, #998
  • Return token decimals in queries that include token balances #1075
  • Add memo field for file entity #962
  • Add memo field for account entity #961
  • Add memo field for token entity #960
  • Export a new _Balances.proto file to (eventually) supersede current _Balances.csv #852
  • Migrate Hedera protobufs to new hashgraph/hedera-protobufs repo #883

Contributors

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

Hedera Services v0.12.0

18 Feb 22:22
Compare
Choose a tag to compare
Pre-release

In Hedera Services v0.12.0, we completed the MVP implementation of the Hedera Scheduled Transaction Service (HSS) as detailed in this design document. This service decouples what should execute on the ledger from when it should execute, giving new flexibility and programmability to users. Note that HSS operations are enabled on Previewnet, but remain disabled on Testnet and Mainnet at this time.

We have given users of the Hedera Token Service (HTS) more control over the lifecycle of their token associations. In v0.11.0, deleted tokens were immediately dissociated from all accounts. This automatic dissociation no longer occurs. If account X is associated with token Y, then even if token Y is marked for deletion, a getAccountInfo query for X will continue to show the association with Y until it is explicitly removed via a tokenDissociateFromAccount transaction. Note that for convenience, queries that return token balances now also return the decimals value for the relevant token. This allows a user to interpret e.g. balance=10050 as 100.50 tokens given decimals=2.

In a final Hedera API (HAPI) change, we have extended the memo field present on contract and topic entities to the account, file, token, and scheduled transaction entities. (Note this memo is distinct from the short-lived memo that may be given to any TransactionBody for inclusion in the TransactionRecord.) All of these changes to HAPI are now more easily browsed via GitHub pages here; the new hashgraph/hedera-protobufs repository is now the authortative source of the protobuf files defining HAPI.

Apart from these enhancements to HAPI, the "streams" consumable by mirror node operators now include an alpha version of a protobuf file that contains the same information as the _Balances.csv files. The type of this file is AllAccountBalances.

Enhancements

  • Complete the MVP scheduled transaction service #1016, etc.
  • Give users full control of dissociating from expired/deleted tokens. #997, #998
  • Return token decimals in queries that include token balances #1075
  • Add memo field for file entity #962
  • Add memo field for account entity #961
  • Add memo field for token entity #960
  • Export a new _Balances.proto file to (eventually) supersede current _Balances.csv #852
  • Migrate Hedera protobufs to new hashgraph/hedera-protobufs repo #883

Contributors

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

Hedera Services v0.12.0-rc.2

17 Feb 16:39
Compare
Choose a tag to compare
Pre-release

In Hedera Services v0.12.0, we completed the MVP implementation of the Hedera Scheduled Transaction Service (HSTS) as detailed in this design document. This service decouples what should execute on the ledger from when it should execute, giving new flexibility and programmability to users. Note that HSTS operations are enabled on Previewnet, but remain disabled on Testnet and Mainnet at this time.

We have given users of the Hedera Token Service (HTS) more control over the lifecycle of their token associations. In v0.11.0, deleted tokens were immediately dissociated from all accounts. This automatic dissociation no longer occurs. If account X is associated with token Y, then even if token Y is marked for deletion, a getAccountInfo query for X will continue to show the association with Y until it is explicitly removed via a tokenDissociateFromAccount transaction. Note that for convenience, queries that return token balances now also return the decimals value for the relevant token. This allows a user to interpret e.g. balance=10050 as 100.50 tokens given decimals=2.

In a final Hedera API (HAPI) change, we have extended the memo field present on contract and topic entities to the account, file, token, and scheduled transaction entities. (Note this memo is distinct from the short-lived memo that may be given to any TransactionBody for inclusion in the TransactionRecord.) All of these changes to HAPI are now more easily browsed via GitHub pages here; the new hashgraph/hedera-protobufs repository is now the authortative source of the protobuf files defining HAPI.

Apart from these enhancements to HAPI, the "streams" consumable by mirror node operators now include an alpha version of a protobuf file that contains the same information as the _Balances.csv files. The type of this file is AllAccountBalances.

Enhancements

  • Complete the MVP scheduled transaction service #1016, etc.
  • Give users full control of dissociating from expired/deleted tokens. #997, #998
  • Return token decimals in queries that include token balances #1075
  • Add memo field for file entity #962
  • Add memo field for account entity #961
  • Add memo field for token entity #960
  • Export a new _Balances.proto file to (eventually) supersede current _Balances.csv #852
  • Migrate Hedera protobufs to new hashgraph/hedera-protobufs repo #883

Contributors

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

Hedera Services v0.11.0

25 Jan 23:14
Compare
Choose a tag to compare

In Hedera Services v0.11.0, we upgraded the record stream format from v2 to v5 and the event stream format from v3 to v5. These changes are described in detail in the "Record and Event Stream File Formats" article.

We also updated startup code to make the number of system accounts in development and pre-production networks match the number of system accounts on mainnet, creating account numbers 900-1000 on startup if they do not exist.

Enhancements

  • Refactor RecordStream and EventStream to v5 #854
  • Create Crypto accounts from 900 to 1000 if they do not exist. #784

Contributors

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

Hedera Services v0.10.0

15 Dec 19:06
Compare
Choose a tag to compare

In Hedera Services v0.10.0, we improved the usability of the Hedera Token Service (HTS) with a newTotalSupply field in the receipts of TokenMint and TokenBurn transactions. Without this field, a client must follow the entire record stream of a token's supply changes to be certain of its supply at the consensus timestamp in the receipt. (Note that HTS operations are now enabled on Previewnet and Testnet, but remain disabled on Mainnet at this time. Please consult the SDK documentation for HTS semantics.)

Also for HTS, we added a property fees.tokenTransferUsageMultiplier that scales the resource usage assigned to a CryptoTransfer that changes token balances. This scaling factor is expected to be set so that the cost of a CryptoTransfer that changes two token balances is roughly 10x the cost of a CryptoTransfer that changes only two hbar balances.

Apart from HTS, this release drops a restriction on what payer accounts can be used for CryptoUpdate transactions that target system accounts. (That is, accounts with number not greater than hedera.numReservedSystemEntities.) In earlier versions, only three payers were accepted: The target account itself, the system admin account, or the treasury account. Other payers resulted in a status of AUTHORIZATION_FAILED. This entire restriction is removed, with one exception---the treasury must pay for a CryptoUpdate targeting the treasury.

Apart from these functional changes, we fixed an unintentional change in the naming of the crypto balances CSV file, and improved the usefulness of clients under test-clients/ for testing reconnect scenarios.

Enhancements

  • Add newTotalSupply field to the receipt of transactions affecting token supply #645
  • Scale resource usage differently for hbar and token balance adjustments #863
  • Relax payer authorization reqs for updates to system accounts #774

Bug fixes

  • Revert unintentional change to balances CSV name #842

Contributors

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

Hedera Services v0.10.0

14 Dec 19:18
Compare
Choose a tag to compare
Pre-release

In Hedera Services v0.10.0, we improved the usability of the Hedera Token Service (HTS) with a newTotalSupply field in the receipts of TokenMint and TokenBurn transactions. Without this field, a client must follow the entire record stream of a token's supply changes to be certain of its supply at the consensus timestamp in the receipt. (Note that HTS operations are now enabled on Previewnet and Testnet, but remain disabled on Mainnet at this time. Please consult the SDK documentation for HTS semantics.)

Also for HTS, we added a property fees.tokenTransferUsageMultiplier that scales the resource usage assigned to a CryptoTransfer that changes token balances. This scaling factor is expected to be set so that the cost of a CryptoTransfer that changes two token balances is roughly 10x the cost of a CryptoTransfer that changes only two hbar balances.

Apart from HTS, this release drops a restriction on what payer accounts can be used for CryptoUpdate transactions that target system accounts. (That is, accounts with number not greater than hedera.numReservedSystemEntities.) In earlier versions, only three payers were accepted: The target account itself, the system admin account, or the treasury account. Other payers resulted in a status of AUTHORIZATION_FAILED. This entire restriction is removed, with one exception---the treasury must pay for a CryptoUpdate targeting the treasury.

Apart from these functional changes, we fixed an unintentional change in the naming of the crypto balances CSV file, and improved the usefulness of clients under test-clients/ for testing reconnect scenarios.

Enhancements

  • Add newTotalSupply field to the receipt of transactions affecting token supply #645
  • Scale resource usage differently for hbar and token balance adjustments #863
  • Relax payer authorization reqs for updates to system accounts #774

Bug fixes

  • Revert unintentional change to balances CSV name #842

Contributors

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

Hedera Services v0.9.0

19 Nov 16:31
Compare
Choose a tag to compare

In Hedera Services v0.9.0, we finished the alpha implementation of the Hedera Token Service (HTS). Note that all HTS operations are enabled on Previewnet, but remain disabled on Testnet and Mainnet. Please consult the SDK documentation for HTS semantics.

We made several changes to the HAPI protobuf. First, we removed the deprecated SignatureList message type. Second, we added a top-level signedTransactionBytes field to the Transaction message to ensure deterministic transaction hashes; the top-level bodyBytes and sigMap fields are now deprecated and the already-deprecated body field is removed. Third, we deprecated all fields related to non-payer records, include account send and receive thresholds. This followed from the effective removal of non-payer records in v0.8.1.

For the same reason, the semantics of the CryptoGetRecords and ContractGetRecords queries have also changed. The only queryable records are now those granted to the effective payer of a transaction that was handled while the network property ledger.keepRecordsInState=true. Such records have an expiry of 180 seconds. It is important to note that because a contract account can never be the effective payer for a transaction, any ContractGetRecords query will always return an empty record list, and we have deprecated the query.

Enhancements

  • Complete alpha implementation of HTS, e.g. #646 #703 #751
  • Ensure deterministic transaction hashes via the Transaction#signedTransactionBytes field #611
  • Drop some artificial constraints on the form of a CryptoTransfer used for a query payment #581

Deprecations

  • Remove all code involved with non-payer records; deprecate all associated protobuf elements #548

Bug fixes

  • Consolidate fees for variable-size transaction records to ensure the payer's max transactionFee is respected #502
  • Fix issues with pre-alpha HTS implementation, e.g. #698

Contributors

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

Hedera Services v0.9.0

13 Nov 22:05
Compare
Choose a tag to compare

In Hedera Services v0.9.0, we finished the alpha implementation of the Hedera Token Service (HTS). Note that all HTS operations are enabled on Previewnet, but remain disabled on Testnet and Mainnet. Please consult the SDK documentation for HTS semantics.

We made several changes to the HAPI protobuf. First, we removed the deprecated SignatureList message type. Second, we added a top-level signedTransactionBytes field to the Transaction message to ensure deterministic transaction hashes; the top-level bodyBytes and sigMap fields are now deprecated and the already-deprecated body field is removed. Third, we deprecated all fields related to non-payer records, include account send and receive thresholds. This followed from the effective removal of non-payer records in v0.8.1.

For the same reason, the semantics of the CryptoGetRecords and ContractGetRecords queries have also changed. The only queryable records are now those granted to the effective payer of a transaction that was handled while the network property ledger.keepRecordsInState=true. Such records have an expiry of 180 seconds. It is important to note that because a contract account can never be the effective payer for a transaction, any ContractGetRecords query will always return an empty record list, and we have deprecated the query.

Enhancements

  • Complete alpha implementation of HTS, e.g. #646 #703 #751
  • Ensure deterministic transaction hashes via the Transaction#signedTransactionBytes field #611
  • Drop some artificial constraints on the form of a CryptoTransfer used for a query payment #581

Deprecations

  • Remove all code involved with non-payer records; deprecate all associated protobuf elements #548

Bug fixes

  • Consolidate fees for variable-size transaction records to ensure the payer's max transactionFee is respected #502
  • Fix issues with pre-alpha HTS implementation, e.g. #698

Contributors

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

Hedera Services v0.9.0

11 Nov 04:18
Compare
Choose a tag to compare

In Hedera Services v0.9.0, we finished the alpha implementation of the Hedera Token Service (HTS). Note that all HTS operations are enabled on Previewnet, but remain disabled on Testnet and Mainnet. Please consult the SDK documentation for HTS semantics.

We made several changes to the HAPI protobuf. First, we removed the deprecated SignatureList message type. Second, we added a top-level signedTransactionBytes field to the Transaction message to ensure deterministic transaction hashes; the top-level bodyBytes and sigMap fields are now deprecated and the already-deprecated body field is removed. Third, we deprecated all fields related to non-payer records, include account send and receive thresholds. This followed from the effective removal of non-payer records in v0.8.1.

For the same reason, the semantics of the CryptoGetRecords and ContractGetRecords queries have also changed. The only queryable records are now those granted to the effective payer of a transaction that was handled while the network property ledger.keepRecordsInState=true. Such records have an expiry of 180 seconds. It is important to note that because a contract account can never be the effective payer for a transaction, any ContractGetRecords query will always return an empty record list, and we have deprecated the query.

Enhancements

  • Complete alpha implementation of HTS, e.g. #646 #703 #751
  • Ensure deterministic transaction hashes via the Transaction#signedTransactionBytes field #611
  • Drop some artificial constraints on the form of a CryptoTransfer used for a query payment #581

Deprecations

  • Remove all code involved with non-payer records; deprecate all associated protobuf elements #548

Bug fixes

  • Consolidate fees for variable-size transaction records to ensure the payer's max transactionFee is respected #502
  • Fix issues with pre-alpha HTS implementation, e.g. #698

Contributors

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