git.gammaspectra.live/P2Pool/consensus@v0.0.0-20240403173234-a039820b20c9/p2pool/types/api.go (about)

     1  package types
     2  
     3  import (
     4  	"git.gammaspectra.live/P2Pool/consensus/types"
     5  )
     6  
     7  type P2PoolSideChainStateResult struct {
     8  	TipHeight uint64                    `json:"tip_height"`
     9  	TipId     types.Hash                `json:"tip_id"`
    10  	Chain     []P2PoolBinaryBlockResult `json:"chain"`
    11  	Uncles    []P2PoolBinaryBlockResult `json:"uncles"`
    12  }
    13  
    14  type P2PoolBinaryBlockResult struct {
    15  	Version int         `json:"version"`
    16  	Blob    types.Bytes `json:"blob"`
    17  	Error   string      `json:"error,omitempty"`
    18  }
    19  
    20  type P2PoolSpecialBinaryBlockResult struct {
    21  	Version int         `json:"version"`
    22  	Blob    types.Bytes `json:"blob"`
    23  	Error   string      `json:"error,omitempty"`
    24  }
    25  
    26  type P2PoolSideChainStatusResult struct {
    27  	Synchronized         bool             `json:"synchronized"`
    28  	Height               uint64           `json:"tip_height"`
    29  	Id                   types.Hash       `json:"tip_id"`
    30  	Difficulty           types.Difficulty `json:"difficulty"`
    31  	CumulativeDifficulty types.Difficulty `json:"cumulative_difficulty"`
    32  	Blocks               int              `json:"blocks"`
    33  }
    34  
    35  type P2PoolServerStatusResult struct {
    36  	PeerId          uint64 `json:"peer_id"`
    37  	SoftwareId      string `json:"software_id"`
    38  	SoftwareVersion string `json:"software_version"`
    39  	ProtocolVersion string `json:"protocol_version"`
    40  	ListenPort      uint16 `json:"listen_port"`
    41  }
    42  
    43  type P2PoolServerPeerResult struct {
    44  	PeerId          uint64 `json:"peer_id"`
    45  	Incoming        bool   `json:"incoming"`
    46  	Address         string `json:"address"`
    47  	SoftwareId      string `json:"software_id"`
    48  	SoftwareVersion string `json:"software_version"`
    49  	ProtocolVersion string `json:"protocol_version"`
    50  	ConnectionTime  uint64 `json:"connection_time"`
    51  	ListenPort      uint32 `json:"listen_port"`
    52  	Latency         uint64 `json:"latency"`
    53  }
    54  
    55  type P2PoolConnectionCheckInformation[TipType any] struct {
    56  	Address         string `json:"address"`
    57  	Port            uint16 `json:"port"`
    58  	ListenPort      uint16 `json:"listen_port"`
    59  	PeerId          uint64 `json:"peer_id"`
    60  	SoftwareId      string `json:"software_id"`
    61  	SoftwareVersion string `json:"software_version"`
    62  	ProtocolVersion string `json:"protocol_version"`
    63  	ConnectionTime  uint64 `json:"connection_time"`
    64  	Latency         uint64 `json:"latency"`
    65  	LastActive      uint64 `json:"last_active"`
    66  	Incoming        bool   `json:"incoming"`
    67  	BroadcastTime   uint64 `json:"broadcast_time"`
    68  	BroadcastHeight uint64 `json:"broadcast_height"`
    69  	// Tip is a sidechain.PoolBlock
    70  	Tip               TipType `json:"tip,omitempty"`
    71  	Closed            bool    `json:"closed"`
    72  	AlreadyConnected  bool    `json:"already_connected"`
    73  	HandshakeComplete bool    `json:"handshake_complete"`
    74  	Banned            bool    `json:"banned"`
    75  	Error             string  `json:"error,omitempty"`
    76  	BanError          string  `json:"ban_error,omitempty"`
    77  }