diff --git a/internal/protocol/constants.go b/internal/protocol/constants.go new file mode 100644 index 0000000..015853c --- /dev/null +++ b/internal/protocol/constants.go @@ -0,0 +1,31 @@ +package protocol + +// MessageType represents the type of protocol message +type MessageType byte + +const ( + ChallengeRequestType MessageType = 0x01 + SolutionRequestType MessageType = 0x03 + // Response types (for responses.go) + ChallengeResponseType MessageType = 0x02 + QuoteResponseType MessageType = 0x04 + ErrorResponseType MessageType = 0x05 +) + +// Error codes as defined in protocol specification +const ( + ErrMalformedMessage = "MALFORMED_MESSAGE" + ErrInvalidChallenge = "INVALID_CHALLENGE" + ErrInvalidSolution = "INVALID_SOLUTION" + ErrExpiredChallenge = "EXPIRED_CHALLENGE" + ErrRateLimited = "RATE_LIMITED" + ErrServerError = "SERVER_ERROR" + ErrTooManyConnections = "TOO_MANY_CONNECTIONS" + ErrDifficultyTooHigh = "DIFFICULTY_TOO_HIGH" +) + +// Protocol constants +const ( + MaxPayloadSize = 8 * 1024 // 8KB maximum payload size + HeaderSize = 5 // 1 byte type + 4 bytes length +)