Documentation
¶
Index ¶
Constants ¶
const PeerExchangeProtocol = "/debros/peer-exchange/1.0.0"
Protocol ID for peer exchange
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager handles peer discovery operations without a DHT dependency. Note: The constructor intentionally accepts a second parameter of type interface{} to remain source-compatible with previous call sites that passed a DHT instance. The value is ignored.
func NewManager ¶
NewManager creates a new discovery manager.
The second parameter is intentionally typed as interface{} so callers that previously passed a DHT instance can continue to do so; the value is ignored.
func NewManagerSimple ¶
NewManagerSimple creates a manager with a cleaner signature (host + logger).
func (*Manager) StartProtocolHandler ¶ added in v0.51.1
func (d *Manager) StartProtocolHandler()
StartProtocolHandler registers the peer exchange protocol handler on the host
type PeerExchangeRequest ¶ added in v0.51.1
type PeerExchangeRequest struct {
Limit int `json:"limit"`
}
PeerExchangeRequest represents a request for peer information
type PeerExchangeResponse ¶ added in v0.51.1
type PeerExchangeResponse struct {
Peers []PeerInfo `json:"peers"`
RQLiteMetadata *RQLiteNodeMetadata `json:"rqlite_metadata,omitempty"`
}
PeerExchangeResponse represents a list of peers to exchange
type PeerExchangeResponseV2 ¶ added in v0.53.2
type PeerExchangeResponseV2 struct {
Peers []PeerInfo `json:"peers"`
RQLiteMetadata *RQLiteNodeMetadata `json:"rqlite_metadata,omitempty"`
}
PeerExchangeResponseV2 extends the original response with RQLite metadata
type RQLiteNodeMetadata ¶ added in v0.53.2
type RQLiteNodeMetadata struct {
NodeID string `json:"node_id"` // RQLite node ID (from config)
RaftAddress string `json:"raft_address"` // Raft port address (e.g., "51.83.128.181:7001")
HTTPAddress string `json:"http_address"` // HTTP API address (e.g., "51.83.128.181:5001")
NodeType string `json:"node_type"` // "bootstrap" or "node"
RaftLogIndex uint64 `json:"raft_log_index"` // Current Raft log index (for data comparison)
LastSeen time.Time `json:"last_seen"` // Updated on every announcement
ClusterVersion string `json:"cluster_version"` // For compatibility checking
}
RQLiteNodeMetadata contains RQLite-specific information announced via LibP2P