livepeer / livepeer/go-livepeer

Retry transactions unsent because of too low `maxGasPrice`

Open
#2,118 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: blockchain area: orchestrator QoL status: icebox type: enhancement
Dominant language
Go
Stars
586
Forks
226
Avg merge
1d 17h
Merged PRs (30d)
19

Description

Is your feature request related to a problem? Please describe.

Currently, if the value of -maxGasPrice is too low, the transactions are not sent and never retried.

The issue was initially mentioned by @0xVires in the comment.

Would it be possible to also add a retry mechanism like the one for the ticket redemption? Currently, if the new round starts and the gas price is higher than the maxFeePerGas, the O does not call the reward tx. It's then up to the user to manually call it or it won't be called at all.
It would be great if the node would keep checking the gas price and automatically submits the tx as soon as the gas price is lower than the set maxFeePerGas (like for the ticket redemption).

Describe the solution you'd like
Livepeer can keep track of unsent transactions and periodically try to send them again.

Describe alternatives you've considered
One alternative would be to always send the transaction even if -maxGasPrice is too low. However, then in a result, Livepeer may require manual interactions because the pending transactions block any subsequent transactions. For details, please check the following comment.

Additional context
N/A

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the maxGasPrice check and the existing ticket-redemption retry mechanism, then trace how unsent reward transactions are tracked and submitted. Done means transactions skipped because gas is too high are retained and retried periodically until the gas price permits submission, without blocking later transactions.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
blockchain
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.