Documentation
¶
Overview ¶
Package sub is a short message publication/subscription library that uses UDP transport, Reed Solomon erasure coding, ed25519 EC signatures for tamper-resistance, for allowing clients to subscribe to updates from a server for time-sensitive messaging, written to implement a low latency work delivery system for Parallelcoin miners.
To prevent retransmits for messages up to 3kb in size, data sent in a burst as 9 packets containing a 9/3 Reed Solomon encoding such that any 3 packets received guarantee retransmit-less delivery, covering the worst case for packet loss and corruption over a network
Payload can be encrypted via AES-256 encryption using a pre-shared key known by both ends to function as both access control and security against eavesdropping and spoofing attacks.
Authentication of data is done using an ED25119 EC key for which each known endpoint has shared the public key as part of the subscription request
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EncodeAddrToBytes ¶
EncodeAddrToBytes takes a string in the format xxx.xxx.xxx.xxx:xxxxx and converts it to the encoded bytes format
func EncodedAddrToString ¶
EncodedAddrToString takes a string from bytes on the prefix containing an IPv4 address (it is passed around as a string for easy comparison) and returns the format used by net.Dial
Types ¶
type Base ¶
type Base struct {
// contains filtered or unexported fields
}
type BaseInterface ¶
type BaseInterface interface {
SetupListener()
}
type Confirmation ¶
type Confirmation struct {
// contains filtered or unexported fields
}
type Subscription ¶
type Subscription struct {
// contains filtered or unexported fields
}