go-p2pool/types.go

80 lines
3 KiB
Go

package main
import (
"git.gammaspectra.live/P2Pool/consensus/v3/p2pool/sidechain"
"git.gammaspectra.live/P2Pool/consensus/v3/types"
)
type P2PoolSideChainStateResult struct {
TipHeight uint64 `json:"tip_height"`
TipId types.Hash `json:"tip_id"`
Chain []P2PoolBinaryBlockResult `json:"chain"`
Uncles []P2PoolBinaryBlockResult `json:"uncles"`
}
type P2PoolBinaryBlockResult struct {
Version int `json:"version"`
Blob types.Bytes `json:"blob"`
Metadata sidechain.PoolBlockReceptionMetadata `json:"metadata,omitempty"`
Error string `json:"error,omitempty"`
}
type P2PoolSpecialBinaryBlockResult struct {
Version int `json:"version"`
Blob types.Bytes `json:"blob"`
Error string `json:"error,omitempty"`
}
type P2PoolSideChainStatusResult struct {
Synchronized bool `json:"synchronized"`
Height uint64 `json:"tip_height"`
Id types.Hash `json:"tip_id"`
Difficulty types.Difficulty `json:"difficulty"`
CumulativeDifficulty types.Difficulty `json:"cumulative_difficulty"`
Blocks int `json:"blocks"`
}
type P2PoolServerStatusResult struct {
PeerId uint64 `json:"peer_id"`
SoftwareId string `json:"software_id"`
SoftwareVersion string `json:"software_version"`
ProtocolVersion string `json:"protocol_version"`
ListenPort uint16 `json:"listen_port"`
}
type P2PoolServerPeerResult struct {
PeerId uint64 `json:"peer_id"`
Incoming bool `json:"incoming"`
Address string `json:"address"`
SoftwareId string `json:"software_id"`
SoftwareVersion string `json:"software_version"`
ProtocolVersion string `json:"protocol_version"`
ConnectionTime uint64 `json:"connection_time"`
ListenPort uint32 `json:"listen_port"`
Latency uint64 `json:"latency"`
}
type P2PoolConnectionCheckInformation[TipType any] struct {
Address string `json:"address"`
Port uint16 `json:"port"`
ListenPort uint16 `json:"listen_port"`
PeerId uint64 `json:"peer_id"`
SoftwareId string `json:"software_id"`
SoftwareVersion string `json:"software_version"`
ProtocolVersion string `json:"protocol_version"`
ConnectionTime uint64 `json:"connection_time"`
Latency uint64 `json:"latency"`
LastActive uint64 `json:"last_active"`
Incoming bool `json:"incoming"`
BroadcastTime uint64 `json:"broadcast_time"`
BroadcastHeight uint64 `json:"broadcast_height"`
// Tip is a sidechain.PoolBlock
Tip TipType `json:"tip,omitempty"`
Closed bool `json:"closed"`
AlreadyConnected bool `json:"already_connected"`
HandshakeComplete bool `json:"handshake_complete"`
Banned bool `json:"banned"`
Error string `json:"error,omitempty"`
BanError string `json:"ban_error,omitempty"`
}