diff options
Diffstat (limited to 'src/Network/BitTorrent')
-rw-r--r-- | src/Network/BitTorrent/DHT.hs | 14 | ||||
-rw-r--r-- | src/Network/BitTorrent/DHT/Server.hs | 28 |
2 files changed, 42 insertions, 0 deletions
diff --git a/src/Network/BitTorrent/DHT.hs b/src/Network/BitTorrent/DHT.hs new file mode 100644 index 00000000..2d2073f0 --- /dev/null +++ b/src/Network/BitTorrent/DHT.hs | |||
@@ -0,0 +1,14 @@ | |||
1 | {-# LANGUAGE OverloadedStrings #-} | ||
2 | module Network.BitTorrent.DHT | ||
3 | ( | ||
4 | ) where | ||
5 | |||
6 | import Data.ByteString | ||
7 | import Network | ||
8 | |||
9 | import Data.Kademlia.Routing.Table | ||
10 | |||
11 | --type DHT k v = StateT (Table k v) IO | ||
12 | |||
13 | --findNode :: NodeID -> DHT k v [NodeInfo] | ||
14 | --findNode = undefined \ No newline at end of file | ||
diff --git a/src/Network/BitTorrent/DHT/Server.hs b/src/Network/BitTorrent/DHT/Server.hs new file mode 100644 index 00000000..1f73af8a --- /dev/null +++ b/src/Network/BitTorrent/DHT/Server.hs | |||
@@ -0,0 +1,28 @@ | |||
1 | module Network.BitTorrent.DHT.Server | ||
2 | ( | ||
3 | ) where | ||
4 | |||
5 | import Control.Monad.Trans.State | ||
6 | import Data.Kademlia.Routing.Table | ||
7 | import Data.Kademlia.Common | ||
8 | |||
9 | |||
10 | |||
11 | type DHT k v = StateT (Table NodeInfo InfoHash) IO | ||
12 | |||
13 | ping :: NodeID -> DHT k v NodeID | ||
14 | ping nid = do | ||
15 | -- update nid | ||
16 | -- gets nodeID | ||
17 | undefined | ||
18 | |||
19 | findNode :: NodeID -> DHT k v [NodeInfo] | ||
20 | findNode = undefined | ||
21 | |||
22 | -- | Bittorrent /get_peers/ RPC is special case of the /find_value/. | ||
23 | findValue :: NodeID -> DHT k v (Either [NodeID] v) | ||
24 | findValue = undefined | ||
25 | |||
26 | -- | Bittorrent /announce_peer/ RPC is special case of the /store/. | ||
27 | store :: NodeID -> (k, v) -> DHT k v NodeID | ||
28 | store = undefined \ No newline at end of file | ||