Age | Commit message (Collapse) | Author | |
---|---|---|---|
2014-01-13 | Refactor DHT module | Sam Truzjan | |
2014-01-12 | Unify all iterative queries | Sam Truzjan | |
2014-01-11 | Add documentation to peer store section | Sam Truzjan | |
2014-01-11 | Unify kclosest and kclosestHash functions | Sam Truzjan | |
2014-01-11 | Update module layout note | Sam Truzjan | |
2014-01-11 | Add documentation for routing table operations | Sam Truzjan | |
2014-01-11 | Add options related to data republishing | Sam Truzjan | |
2014-01-11 | Add some good DHT reference | Sam Truzjan | |
2014-01-09 | Rename Node.hs to NodeInfo.hs | Sam Truzjan | |
2014-01-09 | Use K parameter in routing table lookups | Sam Truzjan | |
2014-01-09 | Fix query exception handling | Sam Truzjan | |
2014-01-09 | Add NodeDistance newtype | Sam Truzjan | |
2014-01-08 | Do not block on getNodeId | Sam Truzjan | |
2014-01-08 | Fix some -Wall suggestions | Sam Truzjan | |
2014-01-08 | Prettify instance Show PeerAddr | Sam Truzjan | |
2014-01-08 | Pass query_timeout options to rpc manager | Sam Truzjan | |
2014-01-08 | Use newer krpc package | Sam Truzjan | |
2014-01-07 | Remove logging from queryNode | Sam Truzjan | |
2014-01-07 | Fix port number in DHT announce handler | Sam Truzjan | |
2014-01-07 | Remove logging from DHT handlers | Sam Truzjan | |
2014-01-05 | Make Torrent(tAnnounce) field optional | Sam Truzjan | |
2014-01-05 | Use proper address family when creating Socket from (PeerAddr IP) | Daniel Gröber | |
2014-01-04 | Move mutable state in Connection to single field and make a MonadState ↵ | Daniel Gröber | |
instance for (Connected IO a) ..also add lenses | |||
2014-01-04 | Add type 'Cached a' for caching the binary represntation of bencodable ↵ | Daniel Gröber | |
datastructures | |||
2014-01-03 | Add getMetadata function | Sam Truzjan | |
2014-01-03 | Add skeleton for gettorrent example | Sam Truzjan | |
2014-01-02 | Implement DHT lookup operation | Sam Truzjan | |
2014-01-02 | Stop bootstrapping when table is full | Sam Truzjan | |
2014-01-02 | Add bucket count option | Sam Truzjan | |
2014-01-02 | Fix query timeouts | Sam Truzjan | |
2014-01-02 | Remove useless insertNode call | Sam Truzjan | |
2014-01-02 | Add non operator version of (<@>) | Sam Truzjan | |
2014-01-02 | Use optTimeout option in each rpc call | Sam Truzjan | |
2014-01-02 | Use K parameter in DHT session | Sam Truzjan | |
2014-01-02 | Add DHT options | Sam Truzjan | |
2014-01-02 | Add documentation to the root DHT module | Sam Truzjan | |
2014-01-02 | Add documentation to Routing | Sam Truzjan | |
2013-12-31 | Add default instance for NodeAddr | Sam Truzjan | |
2013-12-30 | Add module header to DHT Messages | Sam Truzjan | |
2013-12-30 | Add documentation to Token module | Sam Truzjan | |
2013-12-29 | Fix typo | Sam Truzjan | |
2013-12-29 | Enable all query handlers by default | Sam Truzjan | |
2013-12-29 | Add hashable instances for all address types | Sam Truzjan | |
2013-12-29 | Fix instance Alternative Routing | Sam Truzjan | |
2013-12-29 | Keep routing table in MVar. | Sam Truzjan | |
Since table updates is not atomic operations and may perform IO we should be able to gain /exclusive/ access to the table. Consider insertNode function: 1) Thread A read table_1; 2) Thread B read table_1; 3) Thread B ping node Z and it does not respond and get removed; 4) Thread B remove node Z from table_1 and get table_2; 5) Thread B put table_2; 6) Thread A insert a new node and get table_3; 4) Thread A put table_3; The problem is that final table_3 do have the removed node. At the moment, exclusive access solves this problem. | |||
2013-12-28 | Add instance Alternative Routing | Sam Truzjan | |
2013-12-28 | Simplify Routing monad | Sam Truzjan | |
2013-12-28 | Add routing table shape | Sam Truzjan | |
2013-12-28 | Drop old node if it is not responding | Sam Truzjan | |
2013-12-28 | Add logging to DHT | Sam Truzjan | |