-
Notifications
You must be signed in to change notification settings - Fork 352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Account sequence errors from connecting to partially synced chains #1462
Comments
Hey Jacob, This is a tough one! In general, Hermes cannot trust account sequence numbers from a full node unless that node (a) is synced with the network and (b) has a clean mempool (ref). For (b) we don't have a solution yet, but we're working with tm-go team to find one. The problem you're highlighting here is in reference to case (a). With respect to (a) it's not clear how can Hermes reliably infer whether the node is or isn't synced with the network. For SDK-based chains there is the option to query the node's status endpoint and read the Beside the |
Hi @adizere, thank you for your comment! We checked our chains, in this case, Juno, and it's unsynced with |
The only way, currently, to accurately gauge this is to compare block heights from multiple nodes. |
Good to know!! |
Marking as blocked until we get more insights. We'll perhaps arrive at a solution together with the tendermint-go team! |
This problem has been partly solved in PR #1349, which closed a related issue #1264.
Currently, Hermes either:
I will therefore close this issue, and we may consider reopening if we still see problem in the future. |
Crate
relayer-cli
Summary of Bug
If hermes is started while a chain is syncing, it picks up old acccount sequence values, and then attempts to use them repetitively.
The temporary solution is "don't start hermes against a partially synced chain"
The permanent solution is probably to actively check the account sequence
Version
0.7.3 + the compatiblity pr #1461
Steps to Reproduce
Heheh, little bit of a hard one here, but I guess it's approximately:
Using a wallet that has already been used for relaying, start Hermes against a partially synced Juno or Sifchain. What is likely to occur here is that Hermes will keep trying to make a tx with an invalid sequence number.
Another solution to this may be to disable hermes from interacting with partially-synced chains.
Acceptance Criteria
It should no longer be possible for Account sequence issues to crop up because it was connected to partially-synced chains from a previously used wallet.
For Admin Use
The text was updated successfully, but these errors were encountered: