NostrAccess.RelayHealth (nostr_access v0.3.3)

View Source

Tracks relay reliability and selects relays based on recent health signals.

Summary

Types

relay_state()

@type relay_state() :: %{
  score: non_neg_integer(),
  failure_timestamps: [non_neg_integer()],
  failure_entries: [map()],
  cooldown_until: non_neg_integer() | nil,
  last_failure_at: non_neg_integer() | nil,
  last_success_at: non_neg_integer() | nil
}

Functions

all_states(relay_urls \\ [])

@spec all_states([String.t()]) :: [map()]

available_relays(relay_urls)

@spec available_relays([String.t()]) :: [String.t()]

ignore_failure_reason?(arg1)

@spec ignore_failure_reason?(term()) :: boolean()

reconnect_allowed?(relay_url)

@spec reconnect_allowed?(String.t()) :: boolean()

record_failure(relay_url, reason)

@spec record_failure(String.t(), term()) :: :ok

record_success(relay_url)

@spec record_success(String.t()) :: :ok