<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Anomos is Freedom.</title>
	<atom:link href="http://anomos.info/wp/feed/" rel="self" type="application/rss+xml" />
	<link>http://anomos.info/wp</link>
	<description>The Anomos: Pseudonymous and Encrypted BitTorrent protocol</description>
	<pubDate>Thu, 09 Oct 2008 03:33:46 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Free Culture 2008!</title>
		<link>http://anomos.info/wp/2008/10/08/free-culture-2008/</link>
		<comments>http://anomos.info/wp/2008/10/08/free-culture-2008/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 03:23:27 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[Anomos]]></category>

		<category><![CDATA[conference]]></category>

		<category><![CDATA[free culture]]></category>

		<guid isPermaLink="false">http://anomos.info/wp/?p=129</guid>
		<description><![CDATA[
Hey all! Rich here.
I&#8217;m going to be going to the Free Culture 2008 conference in Berkeley, California this weekend and hopefully giving a quick talk about our project! If anybody is going to be there, you should stop by and meet me and we&#8217;ll hang out and have fun!
Just letting you all know, we are [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://anomos.info/wp/wp-content/uploads/2008/10/fc_title_trans.png"><img class="aligncenter size-medium wp-image-130" src="http://anomos.info/wp/wp-content/uploads/2008/10/fc_title_trans-300x43.png" alt="" width="300" height="43" /></a></p>
<p>Hey all! Rich here.</p>
<p>I&#8217;m going to be going to the <a title="Free Culture 2008" href="http://conference.freeculture.org" target="_blank">Free Culture 2008</a> conference in Berkeley, California this weekend and hopefully giving a quick talk about our project! If anybody is going to be there, you should stop by and meet me and we&#8217;ll hang out and have fun!</p>
<p>Just letting you all know, we are progressing along quite well. We have now done successful intercontinental test downloads from multiple anonymous sources! Anonarchy is nigh!</p>
<p>And our most exciting announcement is just around the corner!..</p>
<p>Richout</p>
]]></content:encoded>
			<wfw:commentRss>http://anomos.info/wp/2008/10/08/free-culture-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Getting closer</title>
		<link>http://anomos.info/wp/2008/08/30/getting-closer/</link>
		<comments>http://anomos.info/wp/2008/08/30/getting-closer/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 07:57:40 +0000</pubDate>
		<dc:creator>John</dc:creator>
		
		<category><![CDATA[Anomos]]></category>

		<guid isPermaLink="false">http://anomos.info/wp/?p=124</guid>
		<description><![CDATA[I just got relayers working! We can now successfully send an anonymized, encrypted download over any number of intermediate connections. The code&#8217;s still not quite ready for the alpha release (not that you can&#8217;t play with it if you want), but we&#8217;re getting very close.
Anyway, it&#8217;s 4 am. Sleep now, More updates later.
-John
]]></description>
			<content:encoded><![CDATA[<p>I just got relayers working! We can now successfully send an anonymized, encrypted download over any number of intermediate connections. The code&#8217;s still not quite ready for the alpha release (not that you can&#8217;t play with it if you want), but we&#8217;re getting very close.</p>
<p>Anyway, it&#8217;s 4 am. Sleep now, More updates later.<br />
-John</p>
]]></content:encoded>
			<wfw:commentRss>http://anomos.info/wp/2008/08/30/getting-closer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Intense GUI Action</title>
		<link>http://anomos.info/wp/2008/08/29/intense-gui-action/</link>
		<comments>http://anomos.info/wp/2008/08/29/intense-gui-action/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 01:13:59 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[Anomos]]></category>

		<guid isPermaLink="false">http://anomos.info/wp/?p=121</guid>
		<description><![CDATA[So far all of the posts have shown scary command-line shots. Well, now I can show that Anomos does use the GUI properly as well!


How about that!
The GUI can only run one instance at a time, hence the seeder still being command line, but that&#8217;s nothing to worry about right now. Soon we&#8217;ll have the [...]]]></description>
			<content:encoded><![CDATA[<p>So far all of the posts have shown scary command-line shots. Well, now I can show that Anomos does use the GUI properly as well!</p>
<div class="mceTemp mceIEcenter">
<div id="attachment_122" class="wp-caption aligncenter" style="width: 510px"><a href="http://anomos.info/wp/wp-content/uploads/2008/08/anomosgui.jpg"><img class="size-full wp-image-122" src="http://anomos.info/wp/wp-content/uploads/2008/08/anomosgui.jpg" alt="Anomos, with GUI!" width="500" height="288" /></a><p class="wp-caption-text">Anomos, with GUI!</p></div>
</div>
<p>How about that!</p>
<p>The GUI can only run one instance at a time, hence the seeder still being command line, but that&#8217;s nothing to worry about right now. Soon we&#8217;ll have the resources for a dedicated test platform so we won&#8217;t have to fiddle around trying to get multiple clients and trackers all on the same box.</p>
<p>Rich</p>
]]></content:encoded>
			<wfw:commentRss>http://anomos.info/wp/2008/08/29/intense-gui-action/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Progress</title>
		<link>http://anomos.info/wp/2008/08/17/progress/</link>
		<comments>http://anomos.info/wp/2008/08/17/progress/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 23:09:57 +0000</pubDate>
		<dc:creator>John</dc:creator>
		
		<category><![CDATA[Anomos]]></category>

		<category><![CDATA[progress]]></category>

		<guid isPermaLink="false">http://anomos.info/wp/?p=101</guid>
		<description><![CDATA[Sorry for the lack of posts recently, I&#8217;ll try to start provide regular updates about our progress from now on. We&#8217;ve finished implementing Neighbor initializations, and have gotten encrypted downloads to work between directly connected peers.


These downloads aren&#8217;t anonymous yet, but all the infrastructure for making them so is there. I expect to get relay [...]]]></description>
			<content:encoded><![CDATA[<p>Sorry for the lack of posts recently, I&#8217;ll try to start provide regular updates about our progress from now on. We&#8217;ve finished implementing Neighbor initializations, and have gotten encrypted downloads to work between directly connected peers.</p>
<p align="center">
<a href="http://anomos.info/wp/wp-content/uploads/2008/08/test11.png"><img src="http://anomos.info/wp/wp-content/uploads/2008/08/test11-300x210.png" alt="" title="Successful download" width="300" height="210" class="alignnone size-medium wp-image-102" /></a></p>
<p>These downloads aren&#8217;t anonymous yet, but all the infrastructure for making them so is there. I expect to get relay nodes working sometime later this week, and after that Rich and I will likely be starting some small scale tests over the internet. </p>
<p>We&#8217;ve also added a bit of content to the <a href="http://wiki.anomos.info">wiki</a>, like the <a href="http://wiki.anomos.info/wiki/Protocol_Specification">protocol specification</a>, but there&#8217;s still a lot to be done there. </p>
<p>As always, feel free to <a href="http://anomos.info/wp/contact/">contact us</a> if you&#8217;re interested in getting involved.</p>
]]></content:encoded>
			<wfw:commentRss>http://anomos.info/wp/2008/08/17/progress/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Grepall &#8212; Simple bash script and Gedit tool</title>
		<link>http://anomos.info/wp/2008/07/29/grepall-simple-bash-script-and-gedit-tool/</link>
		<comments>http://anomos.info/wp/2008/07/29/grepall-simple-bash-script-and-gedit-tool/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 20:50:56 +0000</pubDate>
		<dc:creator>John</dc:creator>
		
		<category><![CDATA[Other Projects]]></category>

		<category><![CDATA[editing]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://anomos.info/wp/?p=66</guid>
		<description><![CDATA[Frequently when I&#8217;m writing code I want to quickly find all references to a particular function/method/class/variable within the entire code base. Many IDEs provide this feature, but most of those programs are too bulky for me, I typically program in Vim or Gedit. So I wrote this bash script which greps all the files in [...]]]></description>
			<content:encoded><![CDATA[<p>Frequently when I&#8217;m writing code I want to quickly find all references to a particular function/method/class/variable within the entire code base. Many IDEs provide this feature, but most of those programs are too bulky for me, I typically program in Vim or Gedit. So I wrote <a href="http://anomos.info/src/grepall">this bash script</a> which greps all the files in the current directory for a specific term and pretty prints the output with filename and line numbers. It lets you limit your search to files with a specific extension with the -e option, or a different directory with the -d option. Anyway, this is all very simple, what I want to talk about is running this straight from Gedit with a single key press and getting sexy output, like this:</p>

<div class="wp_syntax"><div class="code"><pre class="none" style="font-family:monospace;">Running tool: GrepAll
&nbsp;
./Connecter.py:
352:            self.encoder.add_neighbor(self.id, AESKey(key, iv))
356:            self.encoder.add_neighbor(self.id, self.tmp_aes)
&nbsp;
./Encoder.py:
154:    def add_neighbor(self, nid, aeskey):</pre></div></div>

<p>Right there in the bottom pane.<br />
<span id="more-66"></span><br />
So along with Gedit&#8217;s many nice features like tabs, syntax highlighting, and remote file editing come a bunch of very useful plugins. One of which is called <a href="http://live.gnome.org/Gedit/ToolLauncherPlugin">External Tools</a>, and it allows you to setup key bindings for scripts.<br />
To use Grepall in Gedit, go to Edit -&gt; Preferences -&gt; Plugins and check External Tools. A &#8220;Tools&#8221; menu should appear in your menu bar. Then go to Tools -&gt; External Tools, create a new tool and specify a description and key-binding of your choice. Copy and paste the following into the &#8220;Commands&#8221; text box:</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #007800;">search</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">-0</span> <span style="color: #7a0874; font-weight: bold;">echo</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">$HOME</span><span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>grepall <span style="color: #660033;">-e</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$GEDIT_CURRENT_DOCUMENT_NAME</span> | <span style="color: #c20cb9; font-weight: bold;">cut</span> -d. -f2<span style="color: #000000; font-weight: bold;">`</span> <span style="color: #ff0000;">&quot;$search&quot;</span></pre></div></div>

<p>(Make sure you either saved grepall as ~/bin/grepall or changed the part that says &#8220;$HOME/bin/grepall&#8221; in the above code. And don&#8217;t forget to chmod it executable)</p>
<p>Back on the External Tools dialog, for Input select &#8220;Current selection&#8221; and for Output select &#8220;Display in bottom pane&#8221;</p>
<p>That&#8217;s it! Now whenever you highlight some text and hit the key-binding you selected Gedit will show you all instances of the highlighted text in all the files of the current directory with the same extension as the file you&#8217;re editing.</p>
<p>-John</p>
]]></content:encoded>
			<wfw:commentRss>http://anomos.info/wp/2008/07/29/grepall-simple-bash-script-and-gedit-tool/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IDG News Interview</title>
		<link>http://anomos.info/wp/2008/07/24/idg-news-interview/</link>
		<comments>http://anomos.info/wp/2008/07/24/idg-news-interview/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 00:08:21 +0000</pubDate>
		<dc:creator>John</dc:creator>
		
		<category><![CDATA[Anomos]]></category>

		<category><![CDATA[conference]]></category>

		<category><![CDATA[hope]]></category>

		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://anomos.info/wp/?p=22</guid>
		<description><![CDATA[While at the HOPE conference last weekend, Rich and I were interviewed by IDG News service. The video has just surfaced on the Internet (Big welcome to everyone who found us through the various blogs that picked this up):



Those exciting command line shots in the video are indeed showing some working parts of the protocol, [...]]]></description>
			<content:encoded><![CDATA[<p>While at the <a href="http://www.hope.net">HOPE conference</a> last weekend, Rich and I were interviewed by IDG News service. The video has just surfaced on the Internet (Big welcome to everyone who found us through the <a href="http://p2p-blog.com">various</a> <a href="http://translate.google.com/translate?u=http%3A%2F%2Fwww.numerama.com%2Fmagazine%2F10318-Anomos-l-anarchie-viendra-t-elle-d-un-BitTorrent-securise.html&#038;hl=en&#038;ie=UTF8&#038;sl=fr&#038;tl=en">blogs</a> that picked this up):</p>
<p style="text-align:center;">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="486" height="412" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="flashObj" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="videoId=1683828399&amp;playerId=1243511167&amp;viewerSecureGatewayURL=https://console.brightcove.com/services/amfgateway&amp;servicesURL=http://services.brightcove.com/services&amp;cdnURL=http://admin.brightcove.com&amp;domain=embed&amp;autoStart=false&amp;" /><param name="src" value="http://services.brightcove.com/services/viewer/federated_f8/1243511167" /><embed type="application/x-shockwave-flash" width="486" height="412" src="http://services.brightcove.com/services/viewer/federated_f8/1243511167" flashvars="videoId=1683828399&amp;playerId=1243511167&amp;viewerSecureGatewayURL=https://console.brightcove.com/services/amfgateway&amp;servicesURL=http://services.brightcove.com/services&amp;cdnURL=http://admin.brightcove.com&amp;domain=embed&amp;autoStart=false&amp;" bgcolor="#FFFFFF" name="flashObj"></embed></object></p>
<p>
Those exciting command line shots in the video are indeed showing some working parts of the protocol, such as encrypted tracker requests:</p>
<p style="text-align: center;">
<img src="http://anomos.info/wp/wp-content/uploads/2008/07/anomostracker-encrypted.png" alt="" title="Encrypted Tracker Requests" width="500" height="240" class="aligncenter size-full wp-image-23" /></p>
<p>
We&#8217;re also getting very close to finishing neighbor-to-neighbor connections, so an alpha release can be expected within the next few weeks.</p>
]]></content:encoded>
			<wfw:commentRss>http://anomos.info/wp/2008/07/24/idg-news-interview/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Back from Hope!</title>
		<link>http://anomos.info/wp/2008/07/21/back-from-hope/</link>
		<comments>http://anomos.info/wp/2008/07/21/back-from-hope/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 21:16:06 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[Anomos]]></category>

		<category><![CDATA[conference]]></category>

		<category><![CDATA[statusupdate]]></category>

		<category><![CDATA[tor]]></category>

		<guid isPermaLink="false">http://anomos.info/wp/?p=20</guid>
		<description><![CDATA[Me and John just got back from the Last HOPE conference in NYC. We got to talk to developers from both BitTorrent and Tor (thanks for the shirts and stickers!) who gave us tons of good input and ideas, some of which we&#8217;ve already integrated! Good times were had by all!

Thanks for everybody who came [...]]]></description>
			<content:encoded><![CDATA[<p>Me and John just got back from the Last HOPE conference in NYC. We got to talk to developers from both BitTorrent and Tor (thanks for the shirts and stickers!) who gave us tons of good input and ideas, some of which we&#8217;ve already integrated! Good times were had by all!<br />
<img class="alignright" src="http://www.thenewfreedom.net/wp/wp-content/uploads/2008/07/medium-tombstone.png" alt="hope tomb" width="162" height="245" align="right" /></p>
<p>Thanks for everybody who came to see our demo on the 2nd floor. If you missed it, I&#8217;ve put up a copy of the pdf, which you can download: <a href="http://www.thenewfreedom.net/anomos.pdf"> Anomos.pdf</a></p>
<p>John has been diligently hacking away at the codebase recently and it&#8217;s coming along really nicely. Clients can now securely connect to the tracker and handshake to securely connect with each other. Data encryption up and down is in place, and the Relayers are being worked on so it shouldn&#8217;t be long until a slightly hacky but working alpha is available.</p>
<p>
I set up an <a href="http://wiki.anomos.info">Anomos Wiki</a> which we will be using for documentation and guides at somepoint, but there isn&#8217;t any content there yet. I&#8217;m also thinking about setting up a phpBB forum or a Google Group so we can handle development discussions.</p>
<p>Rich out!</p>
]]></content:encoded>
			<wfw:commentRss>http://anomos.info/wp/2008/07/21/back-from-hope/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tracking Codes Revised</title>
		<link>http://anomos.info/wp/2008/06/19/tracking-codes-revised/</link>
		<comments>http://anomos.info/wp/2008/06/19/tracking-codes-revised/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 07:38:55 +0000</pubDate>
		<dc:creator>John</dc:creator>
		
		<category><![CDATA[Anomos]]></category>

		<category><![CDATA[what is anomos]]></category>

		<guid isPermaLink="false">http://anomos.info/wp/?p=19</guid>
		<description><![CDATA[The previous tracking code model was a major headache. The codes were visible to all members of a circuit, they (potentially) leaked information about the topology of the network, and required that members of the circuit perform multiple decryption attempts for each packet they received. Luckily, there&#8217;s a nice alternative which has been staring us [...]]]></description>
			<content:encoded><![CDATA[<p>The previous tracking code model was a major headache. The codes were visible to all members of a circuit, they (potentially) leaked information about the topology of the network, and required that members of the circuit perform multiple decryption attempts for each packet they received. Luckily, there&#8217;s a nice alternative which has been staring us in the face the whole time. The tracker can wrap each part of the tracking code in layer after layer of public key encryption. In other words, after generating the tracking code &#8220;0:3:2&#8243; the Tracker uses an encryption function <strong>E_peer(</strong><em>c</em><strong>)</strong>, where <em>c</em> is the concatenation of the next tracking code digit and the encryption function corresponding to the next peer. If the tracking code &#8220;0:3:2&#8243; is to pass a message <em>m</em> from peer &#8220;a&#8221; to peer &#8220;d&#8221; through the circuit &#8220;a<strong> -0-&gt; </strong>b<strong> -3-&gt; </strong>c<strong> -2-&gt; </strong>d&#8221; then the expanded encryption function is:</p>
<p style="text-align: center;"><strong>E_a(</strong>0 . <strong>E_b(</strong>3 . <strong>E_c(</strong>2 . <strong>E_d(</strong><em>m</em><strong>))))</strong></p>
<p>Each peer removes a layer of encryption and passes the message along. This is essentially the way in which Onion Routing networks, such as Tor, protect their routing information.</p>
]]></content:encoded>
			<wfw:commentRss>http://anomos.info/wp/2008/06/19/tracking-codes-revised/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What is Anomos?</title>
		<link>http://anomos.info/wp/2008/06/02/what-is-anomos/</link>
		<comments>http://anomos.info/wp/2008/06/02/what-is-anomos/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 22:52:46 +0000</pubDate>
		<dc:creator>John</dc:creator>
		
		<category><![CDATA[Anomos]]></category>

		<category><![CDATA[what is anomos]]></category>

		<guid isPermaLink="false">http://anomos.info/wp/?p=6</guid>
		<description><![CDATA[Anomos is a decentralized peer-to-peer file sharing system derived from BitTorrent which is capable of protecting its user&#8217;s identities by means of an advanced, planned mix network. Its purpose is twofold. In one way it is simply an intellectual exercise; we are computer scientists interested in encryption, the limits of anonymity, and the design of [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Anomos</strong> is a decentralized peer-to-peer file sharing system derived from BitTorrent which is capable of protecting its user&#8217;s identities by means of an advanced, planned mix network. Its purpose is twofold. In one way it is simply an intellectual exercise; we are computer scientists interested in encryption, the limits of anonymity, and the design of networks. In another sense it is a profound demonstration of individual liberty, a demand for freedom, privacy and anonymity on the Internet. Here I will give a brief outline of the technical details of Anomos. As the project is still in the early stages of development some aspects of it are still subject to change.</p>
<p><strong>General Features</strong></p>
<ul>
<li>File transfers through Anomos are anonymous (the degree of this anonymity will be discussed in a future post). After being sent, packets are routed through a number of intermediary nodes before reaching their final destination. These intermediary nodes can only confirm that their neighbors are participating in the network, they cannot confirm that their neighbors are sharing or merely relaying information, nor can they determine what is being shared.</li>
<li>Downloading with Anomos is decentralized &#8212; the downloader receives parts of the requested file from a number of different sources, similar to how BitTorrent functions.</li>
<li>Connections within Anomos are End-To-End encrypted.</li>
<li>Communication with the Tracker is also encrypted.</li>
</ul>
<p><strong>Growing the Network</strong></p>
<p style="padding-left: 30px;">Like many BitTorrent systems Anomos relies on a centralized Tracker server to initiate downloads. However, to provide anonymity, the Anomos Tracker has been almost completely redesigned. When a client connects to the Tracker for the first time, they are assigned a small number of neighbors with whom they will directly communicate. Each neighbor the Tracker assigns to the client is given a locally unique ID (meaning that no two neighbors of the client will have the same ID). Using the the IP addresses provided by the Tracker and the local IDs, the client establishes connections with their neighbors.<br />
<a href="http://anomos.info/wp/wp-content/uploads/2008/06/neighboring.png"></a></p>
<p style="text-align: center;"><img class="size-medium wp-image-9" title="Forming Connections" src="http://anomos.info/wp/wp-content/uploads/2008/06/neighboring-300x300.png" alt="" width="300" height="300" /></p>
<p style="padding-left: 30px;">After the connections have been formed the network may look like this:</p>
<p style="text-align: center;"><img class="aligncenter size-medium wp-image-10" title="Network" src="http://anomos.info/wp/wp-content/uploads/2008/06/network-300x225.png" alt="" width="300" height="225" /></p>
<p><strong>Tracking Codes</strong></p>
<p style="padding-left: 30px;">Much of the power of Anomos comes from its “tracking code” system. The Tracker maintains a weighted undirected <a href="http://en.wikipedia.org/wiki/Graph_(mathematics)">graph</a> modeling the network. The graph&#8217;s vertices (the circles in the above images) represent clients, the edges (the arrowed lines) represent connections, and the weights (not pictured above) allow for fine grained control of how connections are formed (for instance: the tracker may route less traffic through peers who are heavily loaded). When an anonymous connection needs to be formed, the Tracker computes a path between the two peers involved. The path consists of a list of the peers through whom the packets should pass. The tracker then uses the numbered connections between those peers to create a description of the path (called a Tracking Code) which can be given to anyone without compromising the anonymity of the uploader or downloader. For instance if P0 wants to send a request to P9 then the Tracking code for that connection might be &#8220;0:1:2:4:0&#8243;</p>
<p style="text-align: center;"><img class="alignnone size-medium wp-image-13 aligncenter" title="Generating a tracking code" src="http://anomos.info/wp/wp-content/uploads/2008/06/tc2-300x225.png" alt="" width="300" height="225" /></p>
<p style="text-align: left; padding-left: 30px;">When P0 receives the tracking code, she creates the packet which needs to be sent, pops the first number off the tracking code, and sends the packet to her neighbor with that number. The process is repeated until the packet gets to its destination. <span style="text-decoration: line-through;">Astute readers may notice that with this scheme the tracking codes would shrink and thereby reveal the recipient of the message at the second to last node. The actual codes are padded with a pseudorandom number at each node in the circuit to prevent this. You might also notice that with this scheme the recipient of the message doesn&#8217;t immediately know whether to pass the message on or to keep it. In order to resolve this, each peer initially assumes that they are the intended recipient and therefore try to decrypt the message. If the result of the decryption is garbage they pass the message on as per the Tracking Code, otherwise they respond.</span> <span style="color: #0000ff;">We&#8217;ve come up with a <a href="http://anomos.info/wp/2008/06/19/tracking-codes-revised/">much better way to do this.</a><br />
</span></p>
<p style="text-align: left; padding-left: 30px;">
<p><strong>Requesting a file</strong></p>
<p style="padding-left: 30px;">If a client wants to download a file he first requests it from the tracker over secure HTTP. The tracker finds a small number of other users who have the file or parts of it and generates Tracking codes which connect the downloader to each of them. The Tracker also crafts the request data to be sent to each of these peers and encrypts it with each respective peer&#8217;s public key (which the Tracker knows but the downloader does not). This allows us to do end-to-end encryption without the uploader or downloader gleaning information about the network from seeing the same public key multiple times.  The Tracker also generates an AES key for encrypting further communications between uploader and downloader. Here&#8217;s an example of a response the client might receive:</p>
<p style="text-align: center;"><img class="alignnone size-medium wp-image-16" title="Tracker\'s response to file request" src="http://anomos.info/wp/wp-content/uploads/2008/06/response1-300x300.png" alt="" width="300" height="300" /></p>
<p style="padding-left: 30px;">After receiving this, the client will create a packet containing the data in red (which the client himself cannot read), and send it through the network.</p>
<p style="padding-left: 30px;">
<p><strong>Sharing</strong></p>
<p style="padding-left: 30px;">After the initial request, the AES key generated by the Tracker is used to encrypt data between the two sharers. These sharers then pass messages in almost exactly the same way they would have in BitTorrent. The downloader sends a request, the uploader responds with a chunk.</p>
<p><strong>Misc</strong></p>
<p style="padding-left: 30px;"><strong></strong><br />
In BitTorrent share ratios (the ratio of Amount Uploaded / Amount Downloaded) are used to punish peers who take without giving back. This can often be a barrier to entry for peers with few files or files which are not popular. Anomos helps these peers by adding their Amount Relayed to their Upload count, thereby rewarding people who donate their bandwidth to help others share anonymously.</p>
<p>I&#8217;ve presented some of the basics about the Anomos P2P system here, in future posts I will discuss more advanced topics such as how dropped connections are handeled, the level of anonymity the system provides, and perhaps an overview of the BitTorrent protocol.</p>
<p>We&#8217;ll be putting the source code repository online soon. If you&#8217;d like to be informed of major developments or would be interested in testing (several months from now) send us an email at: participate<img src="http://anomos.info/wp/wp-content/uploads/2008/06/at.jpg" title="@" style="vertical-align:bottom">anomos.info</p>
<p>- John</p>
]]></content:encoded>
			<wfw:commentRss>http://anomos.info/wp/2008/06/02/what-is-anomos/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Conway&#8217;s Game of Life</title>
		<link>http://anomos.info/wp/2008/05/18/conways-game-of-life/</link>
		<comments>http://anomos.info/wp/2008/05/18/conways-game-of-life/#comments</comments>
		<pubDate>Mon, 19 May 2008 04:01:54 +0000</pubDate>
		<dc:creator>John</dc:creator>
		
		<category><![CDATA[Other Projects]]></category>

		<category><![CDATA[cellular automata]]></category>

		<category><![CDATA[electronics]]></category>

		<category><![CDATA[game of life]]></category>

		<guid isPermaLink="false">http://anomos.info/wp/?p=5</guid>
		<description><![CDATA[Here&#8217;s an 8&#215;8 LED matrix display that I built and programmed to play out randomly generated boards of Conway&#8217;s Game of Life:




While I was waiting for the parts to arrive I wrote a little python version that should run on just about any computer assuming python and pygame are installed. The program will display a [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s an 8&#215;8 LED matrix display that I built and programmed to play out randomly generated boards of Conway&#8217;s Game of Life:</p>
<div align="center">
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/h3u9PVQEngg&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/h3u9PVQEngg&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>
</div>
<p>
While I was waiting for the parts to arrive I wrote a little <a href="/src/conway.py">python version</a> that should run on just about any computer assuming <a href="http://python.org">python</a> and <a href="http://pygame.org">pygame</a> are installed. The program will display a square 40&#215;40 toroidal game of life board by default, but it can take a command line argument to make it NxN (ex: python conway.py 8). There are <a href="http://golly.sourceforge.net">plenty</a> <a href="http://plife.sourceforge.net">of</a> <a href="http://www.catb.org/~esr/xlife-5.0.tar.gz">other</a> very nice game of life implementations out there, much faster and more featureful than this one, which I highly recommend if you&#8217;re interested in learning about this cellular automata.</p>
<p>Now, about the hardware version.<br />
The <a href="/src/life.zip">source</a> is available, and if you&#8217;re interested in building one there are tons of circuit diagrams online for driving an 8&#215;8 LED Matrix (<a href="http://www.best-microcontroller-projects.com/led-dot-matrix-display.html">like this one</a>). It&#8217;s a fun project and definitely easy enough for beginners (I have virtually no electronics experience, and this is also the first time I&#8217;ve ever programmed a PIC).</p>
]]></content:encoded>
			<wfw:commentRss>http://anomos.info/wp/2008/05/18/conways-game-of-life/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
