<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=Tulip_Overlay</id>
	<title>Tulip Overlay - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=Tulip_Overlay"/>
	<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=Tulip_Overlay&amp;action=history"/>
	<updated>2026-05-15T15:15:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>http://en.zaoniao.it/index.php?title=Tulip_Overlay&amp;diff=7287&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;'''Tulip''' is a distributed, decentralized, P2P network intended for routing, searching and publish-lookup information sharing. It is a structured P2P networ...&quot;</title>
		<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=Tulip_Overlay&amp;diff=7287&amp;oldid=prev"/>
		<updated>2019-07-30T13:46:38Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Tulip&amp;#039;&amp;#039;&amp;#039; is a distributed, decentralized, &lt;a href=&quot;/Peer-to-peer&quot; title=&quot;Peer-to-peer&quot;&gt;P2P&lt;/a&gt; network intended for routing, searching and publish-lookup information sharing. It is a structured P2P networ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Tulip''' is a distributed, decentralized, [[Peer-to-peer|P2P]] network intended for routing, searching and publish-lookup information sharing. It is a structured P2P network very much like [[Chord project|Chord]], [[Pastry (DHT)|Pastry]], [[Tapestry (DHT)|Tapestry]] and [[Content Addressable Network|CAN]].&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
In Tulip protocol, a network with &amp;amp;lt;math&amp;amp;gt;n&amp;amp;lt;/math&amp;amp;gt; nodes uses &amp;amp;lt;math&amp;amp;gt;O(\sqrt{n}log n)&amp;amp;lt;/math&amp;amp;gt; space per node. Tulip guarantees a 2-hop optimal routing with a stretch of 2 over optimal routing, based on the assumption of the [[triangle inequality]].&lt;br /&gt;
&lt;br /&gt;
===Tulip Construction===&lt;br /&gt;
&lt;br /&gt;
Tulip defines the vicinity of each node as the set of &amp;amp;lt;math&amp;amp;gt;\sqrt{n}log n&amp;amp;lt;/math&amp;amp;gt; nodes that are closest to the current node in terms of physical proximity. Tulip's construction partitions the nodes into &amp;amp;lt;math&amp;amp;gt;\sqrt{n}&amp;amp;lt;/math&amp;amp;gt; color-sets such that:&lt;br /&gt;
# Every color-set has at most &amp;amp;lt;math&amp;amp;gt;2\sqrt{n}&amp;amp;lt;/math&amp;amp;gt; nodes.&lt;br /&gt;
# Every node has in its vicinity at least one node from every other color-set.&lt;br /&gt;
&lt;br /&gt;
Colors are assigned to Nodes based on the hash value of the node's id. [[Hash functions]] such as [[SHA-1]] are used to ensure that the size of each group is about &amp;amp;lt;math&amp;amp;gt;\sqrt{n}&amp;amp;lt;/math&amp;amp;gt; and is under &amp;amp;lt;math&amp;amp;gt;\sqrt{n}log n&amp;amp;lt;/math&amp;amp;gt; with high probability.&lt;br /&gt;
&lt;br /&gt;
Each node &amp;amp;lt;math&amp;amp;gt;u&amp;amp;lt;/math&amp;amp;gt; in the network maintains data in the form of two lists to capture routing information:&lt;br /&gt;
# Vicinity List: It is the list of information about all &amp;amp;lt;math&amp;amp;gt;log n&amp;amp;lt;/math&amp;amp;gt; closest neighbors of &amp;amp;lt;math&amp;amp;gt;u&amp;amp;lt;/math&amp;amp;gt; from each color.&lt;br /&gt;
# Color List: It is the list of information about all nodes belonging to the same color group as node &amp;amp;lt;math&amp;amp;gt;u&amp;amp;lt;/math&amp;amp;gt;.&lt;br /&gt;
In other words, node &amp;amp;lt;math&amp;amp;gt;u&amp;amp;lt;/math&amp;amp;gt; knows all the nodes in its color group as well &amp;amp;lt;math&amp;amp;gt;log n&amp;amp;lt;/math&amp;amp;gt; additional nodes for every other color.&lt;br /&gt;
&lt;br /&gt;
===Key Lookup and Object Lookup===&lt;br /&gt;
&lt;br /&gt;
Key lookup in Tulip has a guaranteed stretch of 2 over optimal lookup with up to 2 lookup hops. If a source node &amp;amp;lt;math&amp;amp;gt;s&amp;amp;lt;/math&amp;amp;gt; wants to access an object at another node &amp;amp;lt;math&amp;amp;gt;t&amp;amp;lt;/math&amp;amp;gt; then, if both belong to the same color group node &amp;amp;lt;math&amp;amp;gt;s&amp;amp;lt;/math&amp;amp;gt; directly communicates with node &amp;amp;lt;math&amp;amp;gt;t&amp;amp;lt;/math&amp;amp;gt; in one hop or else if the nodes &amp;amp;lt;math&amp;amp;gt;s&amp;amp;lt;/math&amp;amp;gt; and &amp;amp;lt;math&amp;amp;gt;t&amp;amp;lt;/math&amp;amp;gt; are in different color groups, then, node &amp;amp;lt;math&amp;amp;gt;s&amp;amp;lt;/math&amp;amp;gt; communicates with its closest neighbor &amp;amp;lt;math&amp;amp;gt;w&amp;amp;lt;/math&amp;amp;gt; which is in the same color group as &amp;amp;lt;math&amp;amp;gt;t&amp;amp;lt;/math&amp;amp;gt; and reaches &amp;amp;lt;math&amp;amp;gt;t&amp;amp;lt;/math&amp;amp;gt; in 2-hops via the node &amp;amp;lt;math&amp;amp;gt;w&amp;amp;lt;/math&amp;amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Objects are also given a color based on the hash value of their id. There is no correlation between the color of a node and the color of the objects it stores. Moreover, a single object may also be stored in multiple nodes. Hence, in order to enable object lookup, i.e. to find the nearest node having a copy of the object, all the nodes in Tulip maintain object pointers. If a node &amp;amp;lt;math&amp;amp;gt;x&amp;amp;lt;/math&amp;amp;gt; stores an object &amp;amp;lt;math&amp;amp;gt;o&amp;amp;lt;/math&amp;amp;gt;, then a pointer indicating the same is stored by all nodes having the node &amp;amp;lt;math&amp;amp;gt;x&amp;amp;lt;/math&amp;amp;gt; in their vicinity list. Also, all the nodes in the same color group as an object &amp;amp;lt;math&amp;amp;gt;o&amp;amp;lt;/math&amp;amp;gt; will store a pointer to the closest node having the object &amp;amp;lt;math&amp;amp;gt;o&amp;amp;lt;/math&amp;amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consider a node &amp;amp;lt;math&amp;amp;gt;s&amp;amp;lt;/math&amp;amp;gt; which is searching for the nearest node storing an object &amp;amp;lt;math&amp;amp;gt;o&amp;amp;lt;/math&amp;amp;gt;. If both &amp;amp;lt;math&amp;amp;gt;s&amp;amp;lt;/math&amp;amp;gt; and &amp;amp;lt;math&amp;amp;gt;o&amp;amp;lt;/math&amp;amp;gt; belong to the same color group then node &amp;amp;lt;math&amp;amp;gt;s&amp;amp;lt;/math&amp;amp;gt; has a pointer to the closest node storing &amp;amp;lt;math&amp;amp;gt;o&amp;amp;lt;/math&amp;amp;gt;. Otherwise, it communicates with another node &amp;amp;lt;math&amp;amp;gt;w&amp;amp;lt;/math&amp;amp;gt; which has the same color as &amp;amp;lt;math&amp;amp;gt;o&amp;amp;lt;/math&amp;amp;gt; and finds a node &amp;amp;lt;math&amp;amp;gt;t&amp;amp;lt;/math&amp;amp;gt; nearest to &amp;amp;lt;math&amp;amp;gt;w&amp;amp;lt;/math&amp;amp;gt; storing &amp;amp;lt;math&amp;amp;gt;o&amp;amp;lt;/math&amp;amp;gt;. The triangular inequality ensures a stretch of up to 4 over optimal object lookup.&lt;br /&gt;
&lt;br /&gt;
Tulip provides separate protocols to maintain locality under churn. This includes protocols for node joining, node deletion, refresh mechanisms and multi-hop query routing. Tulip has been implemented in C++ and has already been deployed over the nodes in [[PlanetLab]]. Tulip has been shown to provide locality awareness and fault tolerance.&lt;br /&gt;
&lt;br /&gt;
==Developers==&lt;br /&gt;
Ittai Abraham, Ankur Badola, Danny Bickson, Dahlia Malkhi, Sharad Maloo, Saar Ron&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://iptps05.cs.cornell.edu/PDFs/CameraReady_230.pdf Paper proposing Tulip: &amp;quot;Practical Locality-Awareness for Large Scale Information Sharing]&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
&lt;br /&gt;
[http://wikipedia.org/ http://wikipedia.org/]&lt;br /&gt;
[[Category:Decentralized network]]&lt;br /&gt;
[[Category:Cryptographic algorithms]]&lt;br /&gt;
[[Category:People of the industry]]&lt;br /&gt;
==See Also on BitcoinWiki==&lt;br /&gt;
* [[Biometric voter registration]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>