Copyright | No rights reserved |
---|---|
License | MIT |
Maintainer | [email protected] |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
Haskoin.Network.Message
Contents
Description
Peer-to-peer network message serialization.
Synopsis
- data Message
- = MVersion !Version
- | MVerAck
- | MAddr !Addr
- | MInv !Inv
- | MGetData !GetData
- | MNotFound !NotFound
- | MGetBlocks !GetBlocks
- | MGetHeaders !GetHeaders
- | MTx !Tx
- | MBlock !Block
- | MMerkleBlock !MerkleBlock
- | MHeaders !Headers
- | MGetAddr
- | MFilterLoad !FilterLoad
- | MFilterAdd !FilterAdd
- | MFilterClear
- | MPing !Ping
- | MPong !Pong
- | MAlert !Alert
- | MMempool
- | MReject !Reject
- | MSendHeaders
- | MOther !ByteString !ByteString
- data MessageHeader = MessageHeader {
- magic :: !Word32
- cmd :: !MessageCommand
- size :: !Word32
- checksum :: !CheckSum32
- msgType :: Message -> MessageCommand
- putMessage :: MonadPut m => Network -> Message -> m ()
- getMessage :: MonadGet m => Network -> m Message
Network Message
The Message
type is used to identify all the valid messages that can be
sent between bitcoin peers. Only values of type Message
will be accepted
by other bitcoin peers as bitcoin protocol messages need to be correctly
serialized with message headers. Serializing a Message
value will
include the MessageHeader
with the correct checksum value automatically.
No need to add the MessageHeader
separately.
Constructors
Instances
data MessageHeader Source #
Data type representing the header of a Message
. All messages sent between
nodes contain a message header.
Constructors
MessageHeader | |
Fields
|
Instances
Binary MessageHeader Source # | |||||
Defined in Haskoin.Network.Message | |||||
Serial MessageHeader Source # | |||||
Defined in Haskoin.Network.Message Methods serialize :: MonadPut m => MessageHeader -> m () # deserialize :: MonadGet m => m MessageHeader # | |||||
Serialize MessageHeader Source # | |||||
Defined in Haskoin.Network.Message | |||||
NFData MessageHeader Source # | |||||
Defined in Haskoin.Network.Message Methods rnf :: MessageHeader -> () # | |||||
Generic MessageHeader Source # | |||||
Defined in Haskoin.Network.Message Associated Types
| |||||
Show MessageHeader Source # | |||||
Defined in Haskoin.Network.Message Methods showsPrec :: Int -> MessageHeader -> ShowS # show :: MessageHeader -> String # showList :: [MessageHeader] -> ShowS # | |||||
Eq MessageHeader Source # | |||||
Defined in Haskoin.Network.Message Methods (==) :: MessageHeader -> MessageHeader -> Bool # (/=) :: MessageHeader -> MessageHeader -> Bool # | |||||
type Rep MessageHeader Source # | |||||
Defined in Haskoin.Network.Message type Rep MessageHeader = D1 ('MetaData "MessageHeader" "Haskoin.Network.Message" "haskoin-core-1.2.2-7BgSuBjmW70D9Dx36RFkXY" 'False) (C1 ('MetaCons "MessageHeader" 'PrefixI 'True) ((S1 ('MetaSel ('Just "magic") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "cmd") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 MessageCommand)) :*: (S1 ('MetaSel ('Just "size") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "checksum") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CheckSum32)))) |
msgType :: Message -> MessageCommand Source #
Get MessageCommand
assocated with a message.