Updated on October 29, 2021
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- 2.5 gwei as priority fee (+40% gas price in legacy transactions)
High- 2.0 gwei as priority fee (+20% gas price in legacy transactions)
Medium- (default) 1.5 gwei as priority fee (gas price in legacy transactions)
Low: 1.0 gwei as priority fee (-20% gas price in legacy transactions)
Very low- 0.5 gwei as priority fee ( -40% gas price in legacy transactions)
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||Priority fee (or gas price in legacy transactions) percentage increase for each retry. For example,
|limit||Maximum priority fee (or 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 priority fee (or gas price) is incremented.
- The policy sends the same job transaction to the blockchain if the gas has not been incremented during a retry.