twister

Peer-to-peer microblogging

User Tools

Site Tools


development:dht_protocol:apis

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
development:dht_protocol:apis [2014/01/30 13:07]
jpfox created
development:dht_protocol:apis [2014/01/30 13:30] (current)
jpfox
Line 3: Line 3:
 ===== General notes ===== ===== General notes =====
  
-  - Libtorrent’s DHT security extension is enforced, requiring the Node ID to be restricted by the external IP.+  - [[http://​www.libtorrent.org/​dht_sec.html|Libtorrent’s DHT security extension]] is enforced, requiring the Node ID to be restricted by the external IP.
   - Default’s libtorrent’s parameters are used: search_branching (alpha) = 5, bucket_size (k) = 8 and agressive_lookup = true.   - Default’s libtorrent’s parameters are used: search_branching (alpha) = 5, bucket_size (k) = 8 and agressive_lookup = true.
-  - Stored resources meant for persistence in DHT network (like profile, avatar etc) are refreshed every hour. Previous studies have shown (Paper: Profiling a million user dht) that, under some assumptions and configurations,​ long-term data persistence may be achieved by refreshing every couple of hours.+  - Stored resources meant for persistence in DHT network (like profile, avatar etc) are refreshed every hour. Previous studies have shown ([[http://​dl.acm.org/​citation.cfm?​id=1298325|Paper: Profiling a million user dht]]) that, under some assumptions and configurations,​ long-term data persistence may be achieved by refreshing every couple of hours.
   -  Persisted resources are also saved to disk and restored when twister daemon restarts.   -  Persisted resources are also saved to disk and restored when twister daemon restarts.
  
Line 21: Line 21:
  
 <code javascript>​ <code javascript>​
-query = {"​t":"​aa",​ "​z":"​q",​ "​q":"​findNode",​ "​x":​ {"​id":"​abcdefghij0123456789",​ "​target":"​mnopqrstuvwxyz123456"​}}+query = {"​t":"​aa",​ "​z":"​q",​ "​q":"​findNode",​ "​x":​ { 
 +  ​"​id":"​abcdefghij0123456789",​ "​target":"​mnopqrstuvwxyz123456"​}}
  
 response = {"​t":"​aa",​ "​z":"​r",​ "​r":​ {"​id":"​0123456789abcdefghij",​ "​nodes":​ "​def456..."​}} response = {"​t":"​aa",​ "​z":"​r",​ "​r":​ {"​id":"​0123456789abcdefghij",​ "​nodes":​ "​def456..."​}}
Line 31: Line 32:
  
 <code javascript>​ <code javascript>​
-query = {"​t":"​aa",​ "​z":"​q",​ "​q":"​announce_peer",​ "​x":​ {"​id":"​abcdefghij0123456789",​ "​implied_port":​ 1, "​info_hash":"​mnopqrstuvwxyz123456",​ "​port":​ 6881, "​token":​ "​aoeusnth"​}}+query = {"​t":"​aa",​ "​z":"​q",​ "​q":"​announce_peer",​ "​x":​ { 
 +  ​"​id":"​abcdefghij0123456789",​ "​implied_port":​ 1, "​info_hash":"​mnopqrstuvwxyz123456",​ 
 +  ​"​port":​ 6881, "​token":​ "​aoeusnth"​}}
  
 response = {"​t":"​aa",​ "​z":"​r",​ "​r":​ {"​id":"​mnopqrstuvwxyz123456"​}} response = {"​t":"​aa",​ "​z":"​r",​ "​r":​ {"​id":"​mnopqrstuvwxyz123456"​}}
Line 46: Line 49:
   "​id":"​abcdefghij0123456789",​ "​sig_p":"​34fdd3wdw",​ "​sig_user":"​nobody",​ "​token":​ "​aoeusnth",​ "​p":​ {   "​id":"​abcdefghij0123456789",​ "​sig_p":"​34fdd3wdw",​ "​sig_user":"​nobody",​ "​token":​ "​aoeusnth",​ "​p":​ {
     "​v"​ : "​arbitrary-value",​ "​seq"​ : "​10",​ "​time"​ : "​13131321321",​ height : "​1000",​ "​target":​ {     "​v"​ : "​arbitrary-value",​ "​seq"​ : "​10",​ "​time"​ : "​13131321321",​ height : "​1000",​ "​target":​ {
-     "​n":"​name",​ "​r":"​resource",​ "​t":"​m"​ }}} +     "​n":"​name",​ "​r":"​resource",​ "​t":"​m"​ }}}}
-}+
  
 response = {"​t":"​aa",​ "​z":"​r",​ "​r":​ {"​id":"​mnopqrstuvwxyz123456"​}} response = {"​t":"​aa",​ "​z":"​r",​ "​r":​ {"​id":"​mnopqrstuvwxyz123456"​}}
 </​code>​ </​code>​
 +
 +See [[development:​dht_protocol:​structures#​general structure]] for content detail.
  
 Note: target_id is the hash of bencoded ''"​target"''​ field. Note: target_id is the hash of bencoded ''"​target"''​ field.
Line 65: Line 69:
   {"​p":"​data2",​ "​sig_p":"​fg40958ejfdg",​ "​sig_user":"​twister"​ ] }}   {"​p":"​data2",​ "​sig_p":"​fg40958ejfdg",​ "​sig_user":"​twister"​ ] }}
 </​code>​ </​code>​
 +
 +See [[development:​dht_protocol:​structures#​general structure]] for content detail.
  
 Note: target_id is the hash of bencoded ''"​target"''​ field. Note: target_id is the hash of bencoded ''"​target"''​ field.
  
development/dht_protocol/apis.1391083656.txt.gz · Last modified: 2014/01/30 13:07 by jpfox