Transaction management automates tasks related to:
- Creating transactions, including crafting transaction data, managing gas, managing nonces, and signing transactions.
- Sending transactions to a chain.
- Post-processing mined transactions, including catching receipts and decoding event logs.
Orchestrate handles nonce assignment internally enabling the maximal theoretical throughput in transactions per second (TPS) for a single account.
Use the SDK or REST API to send transactions. Sending transactions generates and sends Protobuf messages to Apache Kafka. Orchestrate receives the Protobuf messages and manages the full transaction lifecycle.
Gas price policies
You cannot set a gas price policy when sending raw transactions.
Orchestrate provides an example of using the SDK to create a gas price policy.
Do not specify a priority on networks that enforce a minimum gas price. This ensures the user does not submit a low priority transaction where the transaction’s gas price is lower than the minimum accepted by the Ethereum client.
The following priorities are available:
Very high: 1.4 x gas price
High: 1.2 x gas price
Medium: 1 x gas price (default)
Low: 0.8 x gas price
Very low: 0.6 x gas price
Transaction retry policy
Transactions can remain pending for a long time, for example if the gas price for the transaction is too low, or the network has a high load.
Orchestrate provides the following policy options:
|interval||Interval to wait before retrying pending transactions. For example, |
|increment||Gas price percentage increase for each retry. For example, |
|limit||Maximum gas price limit. For example, |
The following rules apply to the retry policy:
intervalmust be greater than or equal to
- The maximum number of retries is 10, meaning if
incrementis greater than 10, then the policy creation fails.
- The policy creates a child job belonging to the same schedule for each retry where the gas price is incremented.
- The policy sends the same job transaction to the blockchain if the gas has not been incremented during a retry.