haskoin-node-0.3.0: Implementation of a Bitoin node.

Safe HaskellNone
LanguageHaskell98

Network.Haskoin.Node.Peer

Synopsis

Documentation

startPeer :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerHost -> NodeT m () Source

startReconnectPeer :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerHost -> NodeT m () Source

startPeerPid :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> NodeT m () Source

decodeMessage :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> Sink ByteString (StateT (Maybe (MerkleBlock, MerkleTxs)) (NodeT m)) () Source

Decode messages sent from the remote host and send them to the peers main message queue for processing. If we receive invalid messages, this function will also notify the PeerManager about a misbehaving remote host.

processMessage :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> Message -> StateT (Maybe (MerkleBlock, MerkleTxs)) (NodeT m) () Source

processInvMessage :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> Inv -> NodeT m () Source

encodeMessage :: MonadLoggerIO m => Conduit Message (NodeT m) ByteString Source

Encode message that are being sent to the remote host.

peerPing :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> NodeT m () Source

peerHandshake :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> TBMChan Message -> NodeT m () Source

disconnectPeer :: MonadLoggerIO m => PeerId -> PeerHost -> NodeT m () Source

sendBloomFilter :: BloomFilter -> Int -> NodeT STM () Source

sendMessage :: PeerId -> Message -> NodeT STM () Source

sendMessageAll :: Message -> NodeT STM () Source

misbehaving :: MonadLoggerIO m => PeerId -> PeerHost -> (PeerHostScore -> PeerHostScore) -> String -> NodeT m () Source

raceTimeout Source

Arguments

:: (MonadIO m, MonadBaseControl IO m) 
=> Int

Timeout value in seconds

-> m a

Action to run if the main action times out

-> m b

Action to run until the time runs out

-> m (Either a b)