Distributed Computing so far

I gave a half-hour presentation on my research at the admitted students weekend earlier.  I think I was able to convey some sense of the opportunities that Mudd offers for research, and presented a reasonable face of what it could look like.
The talk was an explanation of the concepts behind distributed hash tables, and an [...]

Read more...


§534 · April 11, 2010 · DistributedComputing · Comments Off · Tags: , ,

on p2p in the browser

The final project I want to accomplish this semester in my distributed computing independent study, is to come up with a way to access p2p capabilities from within the browser. I was originally hoping to do this with JavaScript API that relied behind the scenes on the new flash p2p protocol, rtmfp. The [...]

Read more...


§482 · March 27, 2010 · DistributedComputing · Comments Off · Tags: , ,

Torrent Auditor

I have now migrated the python torrent client that I’ve been working on to a google code project.
It lives at torrentauditor and now has basic support for actually downloading torrent files.
I researched the bittorrent extension protocols this week, but was somewhat frustrated by what I found. Most of the interesting ones are implemented on [...]

Read more...


§416 · March 1, 2010 · DistributedComputing · Comments Off · Tags: , ,

Downloading Torrents

I extended the work from last week in order to actually get data from a swarm. The main change is that new sockets are now allocated for each connection, state is remembered, and the client can actually get so far as to download data from the other peers.
What needs to happen still is that [...]

Read more...


§399 · February 22, 2010 · DistributedComputing · Comments Off · Tags: , ,

Auditing Bit torrent

One of the strengths of bit torrent is that the primary data transfer protocol is entirely separate from the advertisement protocol. This also has created a strain both in discovering other users who have data, and keeping accurate reports of data that was transfered.
The first issue is one that has been developed for extensively, [...]

Read more...


§378 · February 15, 2010 · DistributedComputing · Comments Off · Tags: , ,

Talking to Kad

# Standalone Mainline Kad Client
#
import socket
import time
import sys
import getopt
import random
import benc
import binascii
import select

client = "AZ"+str(0×05)+"31";
UDPSocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM);
targetID = "".join(chr(random.randrange(0, 256)) for i in xrange(20));
myID = "".join(chr(random.randrange(0, 256)) for i in xrange(20));
reqs = 0;
knownHosts={};
knownPorts={};

def sendData(data,host,port):
global UDPSocket,reqs;
reqs += 1;
#print ‘messaged %s:%d’%(host,port);
UDPSocket.sendto(data,0,(host,port));

def sendPing(myID,host, port):
data = {‘q’:'ping’,'a’:{‘id’:myID},’v':client,’y':’q',’t':0×05+0×05};
sendData(benc.bencode(data),host,port);

def GetPeersReq(myID,ih,host,port):
data = {‘q’:'get_peers’,'a’:{‘id’:myID,’info_hash’:ih},’v':client,’y':’q',’t':str(0×05)+str(0×05)};
sendData(benc.bencode(data),host,port);

def FindNodeReq(myID,target,host,port):
data = {‘q’:'find_node’,'a’:{‘id’:myID,’target’:target,’want’:['n4']},’v':client,’y':’q',’t':str(0×05)+str(0×05)};
sendData(benc.bencode(data),host,port);

def GetPeersReq(myID,ih,host,port):
data = {‘q’:'get_peers’,'a’:{‘id’:myID,’info_hash’:ih},’v':client,’y':’q',’t':str(0×05)+str(0×05)};
sendData(benc.bencode(data),host,port);

def AnnouncePeer(myID,key,token,lp,host,port):
data = {‘q’:'announce_peer’,'a’:{‘id’:myID,’info_hash’:key,’token’:token,’port’:lp},’v':client,’y':’q',’t':str(0×05)+str(0×05)};
sendData(benc.bencode(data),host,port);

def [...]

Read more...


§359 · February 8, 2010 · DistributedComputing · Comments Off · Tags: , ,

The “Mainline Kademlia” protocol

Kademlia is a description of the network interactions and rpc calls that can form a distributed hash table. Today, these kad based DHTs are one of the most common forms of distributed storage. However, since kademlia does not specify the application level protocol to make calls, it is instead implemented on top of [...]

Read more...


§337 · February 7, 2010 · DistributedComputing · Comments Off · Tags: ,

Distributed Computing and Me

The moniker distributed computing has become a broad catchall term that has been applied to everything from parallel computation to the auto configuration of ad-hoc networks. In order explore the technical problems in this field it is necessary to clearly define what exactly the field is, and to this end I want to elaborate [...]

Read more...


§317 · January 24, 2010 · DistributedComputing · 1 comment · Tags: ,