Hedera Testnet v0.9.0 Release
Nov 20, 2020
by Simi Hunjan

The Hedera testnet has been upgraded to v0.9.0 — the release notes for the v0.9.0 upgrade can be found in the official Hedera documentation. Although the Hedera Token Service is currently available on the Hedera previewnet in early access with limited functionality; it is not yet available on the Hedera testnet.

Found below is information about changes to the Hedera API (HAPI), new fields in the v0.9.0 transaction proto, new REST APIs for the Hedera mirror node, release of v2 of the official Hedera SDKs, and an update to the Hedera mainnet.

Changes to Hedera API 0.9.0

The Transaction proto will have the following deprecated fields removed. They have been marked as deprecated previously.

  • TransactionBody body = 1
  • SignatureList sigs = 2

The signedTransactionBytes field will be added. If the appropriate updates are not made, transactions will fail with INVALID_TRANSACTION_BODY or INVALID_SIGNATURE response from the network. You can view the updated transaction proto here and issue here.

New fields in transaction proto (v0.9.0)

Release v0.9.0 will be introducing a new field to transaction proto. The addition of the signedTransactionBytes field to the Transaction protobuf message is designed to ensure that the hash of the entire transaction (including signatures) as calculated by the client and the network is guaranteed to be identical. The new field stores the entire signed transaction including signatures as an array of bytes.

  • signedTransactionBytes = 5

This change is a backwards compatible change, so clients that currently use the bodyBytes & sigMap to submit transactions can continue to do so, with the node parsing and hashing the transaction as it currently does.

A transaction can only contain signedTransactionBytes or contain bodyBytes & sigMap. A transaction that contains any other combination of fields will be rejected with an INVALID_TRANSACTION response from the network.

You can view the updated transaction proto here.

message Transaction {

bytes signedTransactionBytes = 5; // SignedTransaction serialized into bytes

bytes bodyBytes = 4 [deprecated = true]; // TransactionBody serialized into bytes, which needs to be signed

SignatureMap sigMap = 3 [deprecated = true]; // The signatures on the body with the new format, to authorize the transaction

}

Hedera Token Service

TokenTransfer proto was removed and the tokenTransferList field is now included in the CryptoTransfer proto. You can view the 0.9.0 release notes here.

Hedera Mirror Node: New REST APIs

In version 0.21.0 of the Hedera Mirror Node, three new token REST APIs were added. A token discovery REST API /api/v1/tokens shows available tokens on the network. A token REST API /api/v1/tokens/${tokenId} shows details for a particular token on the network. A token supply distribution REST API /api/v1/tokens/${tokenId}/balances shows token distribution across accounts.

We improved our existing REST APIs by adding a way to filter by transaction type. When searching for transactions or showing the transactions for a particular account you can now filter via an optional transactionType query parameter. This feature can be used with the transactions API in the format:

/api/v1/transactions?transactionType=cryptotransfer while the format for the accounts API is /api/v1/accounts/0.0.8?transactionType=cryptotransfer

These APIs have already made their way to both the Hedera previewnet and testnet mirror node. You can play with these APIs currently on previewnet, however the testnet mirror node will not have any token data to query as the service will be disabled. You can view the full release notes here and documentation here.

Hedera SDKs: v2 Release

We are excited to share that V2 of the SDKs are available for all other services, but Hedera Token Service. You can find the updated documentation which supports both v1 and v2 of the SDKs here.

Hedera Mainnet

UCL node will be added to mainnet. This node addition will increase from 13 nodes to 14 nodes in the network. HTS availability information will go out once the SDKs have implemented the fix and enabled on testnet.