Documentation ¶
Index ¶
- Constants
- type AuthenticationChallenge
- type ErrorMessage
- type GobbedEntry
- type MiningClient
- func (c *MiningClient) Connect() error
- func (c *MiningClient) ConnectionLost(err error)
- func (c *MiningClient) Forwarder()
- func (c *MiningClient) Listen(cancel context.CancelFunc)
- func (c *MiningClient) Listeners() (common.IMonitor, opr.IGrader, mining.IOPRMaker)
- func (c *MiningClient) NewEntryForwarder() *mining.EntryForwarder
- type MiningServer
- func (s *MiningServer) Accept(c *TCPClient)
- func (s *MiningServer) Fields() log.Fields
- func (c *MiningServer) ForwardMonitorEvents()
- func (s *MiningServer) GetAuthenticationChallenge(c *TCPClient) AuthenticationChallenge
- func (s *MiningServer) Listen()
- func (n *MiningServer) SendToClients(message *NetworkMessage, logger *log.Entry)
- func (s *MiningServer) WriteEntry(entry *factom.Entry) error
- type NetworkMessage
- type TCPClient
- type TCPServer
- type Tag
Constants ¶
const ( Ping Pong FactomEvent GraderEvent ConstructedOPR FactomEntry MiningStatistics AddTag SecretChallenge RejectedConnection // Sever rejected client CoordinatorError )
const (
FactomdEventForward
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthenticationChallenge ¶
AuthenticationChallenge is used for request + response
type ErrorMessage ¶
type ErrorMessage struct {
Error string
}
ErrorMessage allows us to send w/e errors we want to a client
type GobbedEntry ¶
type GobbedEntry struct { ChainID string `json:"chainid"` ExtIDs [][]byte `json:"extids"` Content []byte `json:"content"` }
Idk why the factom.entry does not work
type MiningClient ¶
type MiningClient struct { Host string // Coordinator Location FactomDigitalID string Monitor *common.FakeMonitor Grader *opr.FakeGrader OPRMaker *mining.BlockingOPRMaker UpstreamStats chan *mining.GroupMinerStats // contains filtered or unexported fields }
MiningClient talks to a coordinator. It receives events and trys to maintain a connection
func NewMiningClient ¶
func NewMiningClient(config *config.Config) *MiningClient
func (*MiningClient) Connect ¶
func (c *MiningClient) Connect() error
func (*MiningClient) ConnectionLost ¶
func (c *MiningClient) ConnectionLost(err error)
ConnectionLost will put us into a holding pattern to reconnect
func (*MiningClient) Forwarder ¶
func (c *MiningClient) Forwarder()
Forwarder will forward our channels to the coordinator
func (*MiningClient) Listen ¶
func (c *MiningClient) Listen(cancel context.CancelFunc)
Listen for server events
func (*MiningClient) NewEntryForwarder ¶
func (c *MiningClient) NewEntryForwarder() *mining.EntryForwarder
type MiningServer ¶
type MiningServer struct { FactomMonitor common.IMonitor OPRGrader opr.IGrader Host string Server *TCPServer EC *factom.ECAddress Stats *mining.GlobalStatTracker // contains filtered or unexported fields }
MiningServer is the coordinator to emit events to anyone listening
func NewMiningServer ¶
func NewMiningServer(config *config.Config, monitor common.IMonitor, grader opr.IGrader, stats *mining.GlobalStatTracker) *MiningServer
func (*MiningServer) Accept ¶
func (s *MiningServer) Accept(c *TCPClient)
func (*MiningServer) Fields ¶
func (s *MiningServer) Fields() log.Fields
func (*MiningServer) ForwardMonitorEvents ¶
func (c *MiningServer) ForwardMonitorEvents()
ForwardMonitorEvents will forward all the events we get to anyone listening
func (*MiningServer) GetAuthenticationChallenge ¶
func (s *MiningServer) GetAuthenticationChallenge(c *TCPClient) AuthenticationChallenge
func (*MiningServer) Listen ¶
func (s *MiningServer) Listen()
func (*MiningServer) SendToClients ¶
func (n *MiningServer) SendToClients(message *NetworkMessage, logger *log.Entry)
func (*MiningServer) WriteEntry ¶
func (s *MiningServer) WriteEntry(entry *factom.Entry) error
type NetworkMessage ¶
func NewNetworkMessage ¶
func NewNetworkMessage(cmd int, data interface{}) *NetworkMessage
type TCPClient ¶
type TCPClient struct { Server *TCPServer // contains filtered or unexported fields }
func (*TCPClient) SendNetworkCommand ¶
func (c *TCPClient) SendNetworkCommand(message *NetworkMessage) error
SendNetworkCommand text message to client
type TCPServer ¶
type TCPServer struct { Host string // contains filtered or unexported fields }
TCPServer is heavily inspired by https://github.com/firstrow/tcp_server
func (*TCPServer) OnClientConnectionClosed ¶
Called right after connection closed
func (*TCPServer) OnNewClient ¶
Called right after server starts listening new client
func (*TCPServer) OnNewMessage ¶
func (s *TCPServer) OnNewMessage(callback func(c *TCPClient, message *NetworkMessage))
Called when Client receives new message