Safe Haskell | None |
---|---|
Language | Haskell98 |
- startSPVNode :: (MonadLoggerIO m, MonadBaseControl IO m) => [PeerHost] -> BloomFilter -> Int -> NodeT m ()
- txSource :: (MonadLoggerIO m, MonadBaseControl IO m) => Source (NodeT m) Tx
- handleGetData :: (MonadLoggerIO m, MonadBaseControl IO m) => (TxHash -> m (Maybe Tx)) -> NodeT m ()
- broadcastTxs :: (MonadLoggerIO m, MonadBaseControl IO m) => [TxHash] -> NodeT m ()
- rescanTs :: Timestamp -> NodeT STM ()
- rescanHeight :: BlockHeight -> NodeT STM ()
- merkleDownload :: (MonadLoggerIO m, MonadBaseControl IO m) => BlockHash -> Word32 -> NodeT m (BlockChainAction, Source (NodeT m) (Either (MerkleBlock, MerkleTxs) Tx))
- merkleSyncedActions :: (MonadLoggerIO m, MonadBaseControl IO m) => BlockHash -> NodeT m ()
- waitHeight :: BlockHeight -> NodeT STM ()
- waitFastCatchup :: Timestamp -> NodeT STM ()
- waitNewBlock :: BlockHash -> NodeT STM ()
- tryMerkleDwnHeight :: (MonadLoggerIO m, MonadBaseControl IO m) => NodeBlock -> Word32 -> NodeT m (Maybe (BlockChainAction, Source (NodeT m) (Either (MerkleBlock, MerkleTxs) Tx)))
- tryMerkleDwnTimestamp :: (MonadLoggerIO m, MonadBaseControl IO m) => Timestamp -> Word32 -> NodeT m (Maybe (BlockChainAction, Source (NodeT m) (Either (MerkleBlock, MerkleTxs) Tx)))
- tryMerkleDwnBlock :: (MonadLoggerIO m, MonadBaseControl IO m) => NodeBlock -> Word32 -> NodeT m (Maybe (BlockChainAction, Source (NodeT m) (Either (MerkleBlock, MerkleTxs) Tx)))
- peerMerkleDownload :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> BlockChainAction -> Source (NodeT m) (Either (MerkleBlock, MerkleTxs) Tx)
- processTickles :: (MonadLoggerIO m, MonadBaseControl IO m) => NodeT m ()
- waitTickle :: NodeT STM (PeerId, PeerHost, BlockHash)
- syncedHeight :: MonadIO m => NodeT m (Bool, Word32)
- headerSync :: (MonadLoggerIO m, MonadBaseControl IO m) => NodeT m ()
- peerHeaderSyncLimit :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> Int -> NodeT m Bool
- peerHeaderSyncFull :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> NodeT m ()
- areBlocksSynced :: BlockHash -> NodeT STM Bool
- areHeadersSynced :: NodeT STM Bool
- peerHeaderSync :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> Maybe BlockChainAction -> NodeT m (Maybe BlockChainAction)
- nodeStatus :: NodeT STM NodeStatus
- peerStatus :: (PeerId, PeerSession) -> NodeT STM PeerStatus
Documentation
startSPVNode :: (MonadLoggerIO m, MonadBaseControl IO m) => [PeerHost] -> BloomFilter -> Int -> NodeT m () Source #
txSource :: (MonadLoggerIO m, MonadBaseControl IO m) => Source (NodeT m) Tx Source #
handleGetData :: (MonadLoggerIO m, MonadBaseControl IO m) => (TxHash -> m (Maybe Tx)) -> NodeT m () Source #
broadcastTxs :: (MonadLoggerIO m, MonadBaseControl IO m) => [TxHash] -> NodeT m () Source #
rescanHeight :: BlockHeight -> NodeT STM () Source #
merkleDownload :: (MonadLoggerIO m, MonadBaseControl IO m) => BlockHash -> Word32 -> NodeT m (BlockChainAction, Source (NodeT m) (Either (MerkleBlock, MerkleTxs) Tx)) Source #
:: (MonadLoggerIO m, MonadBaseControl IO m) | |
=> BlockHash | Wallet best block |
-> NodeT m () |
Perform some actions only when headers have been synced.
waitHeight :: BlockHeight -> NodeT STM () Source #
tryMerkleDwnHeight :: (MonadLoggerIO m, MonadBaseControl IO m) => NodeBlock -> Word32 -> NodeT m (Maybe (BlockChainAction, Source (NodeT m) (Either (MerkleBlock, MerkleTxs) Tx))) Source #
tryMerkleDwnTimestamp :: (MonadLoggerIO m, MonadBaseControl IO m) => Timestamp -> Word32 -> NodeT m (Maybe (BlockChainAction, Source (NodeT m) (Either (MerkleBlock, MerkleTxs) Tx))) Source #
tryMerkleDwnBlock :: (MonadLoggerIO m, MonadBaseControl IO m) => NodeBlock -> Word32 -> NodeT m (Maybe (BlockChainAction, Source (NodeT m) (Either (MerkleBlock, MerkleTxs) Tx))) Source #
peerMerkleDownload :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> BlockChainAction -> Source (NodeT m) (Either (MerkleBlock, MerkleTxs) Tx) Source #
processTickles :: (MonadLoggerIO m, MonadBaseControl IO m) => NodeT m () Source #
headerSync :: (MonadLoggerIO m, MonadBaseControl IO m) => NodeT m () Source #
peerHeaderSyncLimit :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> Int -> NodeT m Bool Source #
peerHeaderSyncFull :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> NodeT m () Source #
peerHeaderSync :: (MonadLoggerIO m, MonadBaseControl IO m) => PeerId -> PeerHost -> Maybe BlockChainAction -> NodeT m (Maybe BlockChainAction) Source #
Sync one batch of headers from the given peer. Accept the result of a previous peerHeaderSync to correctly compute block locators in the presence of side chains.
peerStatus :: (PeerId, PeerSession) -> NodeT STM PeerStatus Source #