informalsystems / informalsystems/hermes

Support multiple keys/wallets per chain

Open
#3,136 0 comments 0 reactions 0 assignees View on GitHub
A: risky I: configuration I: logic O: usability
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.