web3-0.9.0.0: src/Network/Ipfs/Api/Dht.hs
-- |
-- Module : Network.Ipfs.Api.Dht
-- Copyright : Alexander Krupenkin 2016
-- License : BSD3
--
-- Maintainer : mail@akru.me
-- Stability : experimental
-- Portability : unknown
--
-- Api calls with `dht` prefix.
--
module Network.Ipfs.Api.Dht where
import Control.Monad.IO.Class (MonadIO)
import Data.Text (Text)
import Network.Ipfs.Api.Internal.Call (streamCall)
import Network.Ipfs.Api.Internal.Stream (_dhtFindPeer, _dhtFindProvs,
_dhtGet, _dhtProvide,
_dhtQuery)
-- | Find the multiaddresses associated with the given peerId.
findPeer :: MonadIO m => Text -> m ()
findPeer = streamCall . _dhtFindPeer
-- | Find peers that can provide a specific value, given a key.
findProvs :: MonadIO m => Text -> m ()
findProvs = streamCall . _dhtFindProvs
-- | Given a key, query the routing system for its best value.
get :: MonadIO m => Text -> m ()
get cid = streamCall $ _dhtGet cid
-- | Announce to the network that you are providing given values.
provide :: MonadIO m => Text -> m ()
provide = streamCall . _dhtProvide
-- | Find the closest Peer IDs to a given peerID by querying the DHT.
query :: MonadIO m => Text -> m ()
query = streamCall . _dhtQuery