Introduction

Henesis makes it easy to track the status changes of transactions.

What is a Transaction?

The "transaction" is the signed data set to change the state recorded in the blockchain.

To change the state on the blockchain, a transaction must be created and propagated to the blockchain network. However, dealing with transactions in the blockchain is difficult. Why?

  • Transactions are not mined in blocks in real time. Therefore, in order to give the user accurate information, we need to know exactly the current status of the transaction.

  • Mining transactions could be delayed or canceled, depending on several situations.

Then, what does it mean "Handling transactions properly"?

  • It constantly checks whether a transaction was finally mined and notifies the result to users

  • If the transaction has not been mined within expected time, investigate the cause and take appropriate actions.

In short, you need to monitor the status of the transaction in real time, and take an appropriate action regarding to the status of transactions. What kinds of status a transaction can have?

Transaction Status

In Henesis, there are three transaction status.

Status

Description

Pending

The transaction is created, but not yet mined. This can be caused largely by two cases.

  1. In case the transaction is not propagated correctly in the blockchain network, the transaction is not contained in the miner's tx pool.

  2. In case the gas price is low, miners don't put transactions into blocks

Receipt

The transaction has been mined.

Confirmation

After transactions are mined, additional blocks are created, making chain re-organization difficult.

Difficulties in tracking transaction's status

Now, we know there are three transaction status. However, tracking the status of all transactions generated in your DApps is more difficult than you might expect.

  • The more transactions you track, the more system resources are consumed.

  • To check the pending status, you need to query the transaction pool of blockchain nodes. However, most node providers don't support RPC calls for querying the transaction pool. Therefore, you must operate stable nodes by yourself.

  • You also need to build an infrastructure that keeps your service informed of updates in real time whenever transaction status is changed.

Henesis solves those problems

  • Henesis provides the managed transaction tracker to help customers handle many transactions without scaling system resources

  • Henesis uses own blockchain nodes that supports querying the transaction pool for tracking transactions. So you don't have to run a blockchain node.

  • Henesis informs the status of transactions via WebSocket in real-time. So there is no need to build a separate infrastructure for message delivery.