informalsystems / informalsystems/hermes
Support multiple keys/wallets per chain
- Dominant language
- Rust
- Stars
- 505
- Forks
- 399
- PR merge metrics
- No merged PRs in 30d
Description
## Summary
Allowing for multiple wallets would help alleviate the issue with account sequence mismatch errors.
## Problem Definition
When running relayers against many chains, the wallet is often tapped out at the maximum tx speed of the incoming/outgoing network. This results in `Account Sequence Mismatch` errors.
```
2023-03-05T04:31:41.766710Z ERROR ThreadId(20) worker.batch{chain=osmosis-1}:supervisor.handle_batch{chain=osmosis-1}:supervisor.process_batch{chain=osmosis-1}:worker.packet.cmd{src_chain=osmosis-1 src_port=transfer src_channel=channel-1 dst_chain=akashnet-2}:relay{odata=ef431de1 ->Destination @1-8558658; len=1}:send_messages_and_wait_check_tx{chain=akashnet-2 tracking_id=ef431de1}:send_tx_with_account_sequence_retry{chain=akashnet-2 account.sequence=19234}:estimate_gas: failed to simulate tx. propagating error to caller: gRPC call failed with status: status: Unknown, message: "account sequence mismatch, expected 19235, got 19234: incorrect account sequence [cosmos/cosmos-sdk@v0.45.9/x/auth/ante/sigverify.go:265] With gas wanted: '0' and gas used: '356174' ", details: [], metadata: MetadataMap { headers: {"content-type": "application/grpc", "x-cosmos-block-height": "10041080"} }
```
## Proposal
Support multiple wallets per chain.
## Acceptance Criteria
____
#### For Admin Use
- [ ] Not duplicate issue
- [ ] Appropriate labels applied
- [ ] Appropriate milestone (priority) applied
- [ ] Appropriate contributors tagged
- [ ] Contributor assigned/self-assigned
Contributor guide
Research direction
The issue names no files, tests, or entry points. Start by tracing how the relayer manages wallets and account sequences for each chain, then determine the required configuration and transaction behavior. Done means supporting multiple wallets per chain and reducing account sequence mismatch errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- blockchain, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100