Skip to content

fix: harden fairyringclient for mainnet validator use - #14

Merged
ap0calypse644 merged 15 commits into
mainfrom
feat/mainnet-client-hardening
Aug 31, 2026
Merged

ap0calypse644 merged 15 commits into
mainfrom
feat/mainnet-client-hardening

Conversation

@ap0calypse644

Copy link
Copy Markdown
Contributor

Summary

  • add configurable gas price and include non-zero fees in every signed transaction
  • validate fee denom, gas price, and 32-byte Cosmos private keys
  • serialize queued transactions through commit to prevent account-sequence races
  • fail immediately on sync broadcast CheckTx rejection instead of waiting forever for an uncommitted tx
  • keep private/general keyshare handling active while blockwise keyshare submission remains disabled
  • process multiple general-keyshare request events from the same block
  • remove raw current/pending/derived keyshare material from logs
  • update delegate transactions to use the configured fee settings
  • correct the embedded client version string to v1.0.1
  • add config/fee regression tests and PR CI

Mainnet rationale

Fairyring mainnet validators enforce minimum-gas-prices = 0.025ufair. The existing v1.0.1 client set gas limits but signed fee-less transactions, so general/private keyshare submissions would be rejected by CheckTx.

For the mainnet validator deployment, standalone fairyringclient is responsible for private/general keyshares only. SubmitBlockwiseKeyshares remains false; blockwise keyshares are handled by fairyringd vote extensions.

Security / reliability

The previous client logged derived and cached keyshare values. These logs are removed. The previous tx queue launched each item in a goroutine; it now processes each transaction serially through commit so the next transaction observes the incremented account sequence.

@ap0calypse644
ap0calypse644 marked this pull request as ready for review August 31, 2026 11:55
@ap0calypse644
ap0calypse644 merged commit aa46d18 into main Aug 31, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant