summaryrefslogtreecommitdiff
path: root/src/Network/BitTorrent
diff options
context:
space:
mode:
Diffstat (limited to 'src/Network/BitTorrent')
-rw-r--r--src/Network/BitTorrent/DHT.hs14
-rw-r--r--src/Network/BitTorrent/DHT/Server.hs28
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 #-}
2module Network.BitTorrent.DHT
3 (
4 ) where
5
6import Data.ByteString
7import Network
8
9import 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 @@
1module Network.BitTorrent.DHT.Server
2 (
3 ) where
4
5import Control.Monad.Trans.State
6import Data.Kademlia.Routing.Table
7import Data.Kademlia.Common
8
9
10
11type DHT k v = StateT (Table NodeInfo InfoHash) IO
12
13ping :: NodeID -> DHT k v NodeID
14ping nid = do
15-- update nid
16-- gets nodeID
17 undefined
18
19findNode :: NodeID -> DHT k v [NodeInfo]
20findNode = undefined
21
22-- | Bittorrent /get_peers/ RPC is special case of the /find_value/.
23findValue :: NodeID -> DHT k v (Either [NodeID] v)
24findValue = undefined
25
26-- | Bittorrent /announce_peer/ RPC is special case of the /store/.
27store :: NodeID -> (k, v) -> DHT k v NodeID
28store = undefined \ No newline at end of file