Showing posts with label Ants p2p. Show all posts
Showing posts with label Ants p2p. Show all posts

Wednesday, August 13, 2008

Facts About Dargens p2p


Facts About Dargens p2p

First of all I'll explain how ANt p2p works (notes taken from notes on MUTE a very similar network). Then I'll explain some of the differences between ANts p2p and Dargens p2p.

How ANts p2p Routes Messages

In a network, we have messages that need to travel from a sender to a recipient. Since ANts p2p users are anonymous, none of the nodes in the network know exactly where to find a particular recipient (or, more precisely, which computer a particular recipient is using). Like ants that are unaware of the overall environment layout, ANts p2p messages must be directed through the network using only local clues.

Each ANts p2p node maintains connections to several "neighbors" in the network, and these neighboring connections are used for message passing. Suppose that ANts p2p node X receives a message from Alice to Bob through node Y, one of its neighbors. X may have no information clues about where Bob is in the network. However, upon receiving this message, node X learns something about Alice: it learns that messages from Alice come through node Y. In the future, if node X ever receives a message to Alice, it can send it back through node Y using this clue.

Regardless of what X learns about Alice, it still has no information about Bob. The best strategy here, using ants as inspiration, is to "send ants in all directions", or to send a copy of the message on to each one of X's neighbors (what we will call "broadcasting" the message). One of the neighbors may have more information about which direction Bob is in. If none of the nodes in the network have clues about Bob's location, they will all broadcast the message to their neighbors. If Bob exists in the network, this technique will eventually find him.

Notice that throughout the search for Bob, the message has been leaving a trail of clues about Alice. If the message reaches Bob, and then Bob sends back a response, the response can follow these clues on a rather direct path back to Alice.

As the response is routed to Alice, it leaves a trail of clues that can be used to route future messages from Alice back to Bob. Other nodes can make use of these clues too. For example, if the owner of node X sends a message to Bob, the message will travel on a rather direct route using the existing clues.

We can see that ANts p2p's routing mechanism is quite similar to the technique of "Painting Arrows in the Forest". Each node can be thought of as a tree, and each neighbor connection can be thought of as a path between neighboring trees. Each node maintains a collection of arrows, and each arrow says something like "To get to Bob, use this path." In these diagrams, we follow the blue arrows backward to find Bob.

We can also think of each message leaving a "scent" as it travels through the network. Messages from Alice leave Alice's scent, and we can follow this scent when sending messages to Alice. The darker arrows in these diagrams represent messages, while the faded arrows can be thought of as the scent left by messages.

Routing Clues and Privacy

In terms of anonymity, the notion of "clues about Alice" sounds scary. Keep in mind that all of these "clues" are just local hints that will not enable anyone to directly pinpoint Alice in the network. A node's routing clue essentially tells it, "my neighbor knows more about Alice than I do." Of course, none of the nodes have a good measure of how much they know about Alice, so the fact that a particular neighbor knows more gives a node little extra information. For example, none of the nodes along a path between Alice and Bob know enough to conclude that "my neighbor is Alice."
Additionally Ants Features
  • Open Source Java implementation (GNU-GPL license)
  • Multiple sources download
  • Swarming from partial files
  • Automatic resume and sources research over the net
  • Search by hash, string and structured query
  • Completely Object-Oriented routing protocol
  • Point to Point secured comunication: DH(512)-AES(128)
  • EndPoint to EndPoint secured comunication: DH(512)-AES(128)
  • Serverless GWebCache-based peer dicovery procedure
  • IRC based peer discovery system
  • IRC embeded chat system
  • Full text search of indexed documents (pdf, html, txt, doc etc) -> QUERY REFERENCE.
  • Distributed/Decentralized Search engine
  • HTTP tunneling
  • ANts allow P2P communications through any kind of HTTP Proxy
  • ANts allow P2P communications through any kind of NAT or traffic filtering system




ANts vs Dargens

Users join ANts by boot-strapping from irc this results in a network with a random topology. Although this has the a short path length between any two nodes it is very difficult to find that path even with DHT so it does not scale well.

Dargens p2p (kerjodando) is based on ANts p2p except users join the network by connecting to either their friends or users that they share an interest with. This is a social network, a type of small world network. This also has a short path between peers but this path is much easier to find either with DHT, greeedy routing or ANt routing.

So Dargens p2p scales far better than ANts and is much faster.

To allow users to connect and form social networks, the Dargens tracker maintains a record of users' friends, that it shares with new users who connect.

Although the network information is kept on the site no information about who is sharing what files is kept on the site of communicated directly with any outside party by ANts.

As the system is web based it is very easy to configure.

There are several different level of security available.


Security Example

A user could be either public (general public can connect to him) or private (only invited friends can connect).

Uses can also publish files to the website in much the same way as done with bit torrent on a tracker.

The biggest drawback of the system is ANts because it uses Java which confuses many inexperienced web users.

Also it can take up to 2 minutes to download the client and connect even on fast dsl/cable networks.



Goals of Dargens


The aim of the system is to spread information to those who find it difficult to access information freely.

It has been designed (STUNT and SSL spoofing) to penetrate national censorship system such as the great fire wall of China.

However, it is not meant to circumvent national laws but to give privacy to responsible adult users which is a right we take for granted in the physical world but which is diminishing in the virtual world.

Sorry for my poor communication in the past but I suffer from a mild form of Aspergers Syndrome which affects every part of my life.

I am a lot more social than I use to be.

BTW it would be good to hear from any other sufferers.

We are all connected, if not directly then via friends of friends of friends etc. It has been prooved both theoretically and experimentally that everyone in Europe and North America are connected by a maximum of six steps.

This is how Dargens p2p works all nodes are connected but not randomly. They are connected like a social network a society. So path lengths are short and everybody can download and upload from everybody else.

And as it is ANts p2p (only change is network topology) it is anonymous.

And as to the single point of failure. I agree there is a single point of failure but it is open source (including the website) so it is like bit torrent. Sure they can kill a few trackers but they will never kill them all.

Lastly by being web based allows the featured files to be quality checked. So now you can download quality files anonymously. Of course you still have the ability to search and download like limwire etc again anonymously.

Nothing is 100% anonymous; this is safe enough to prevent snoopers from knowing what you're downloading without slowing downloads.

Go on download a file.

www.Dargens.com

or join my private network:
http://www.dargens.com/invitefrom/f5...9da0597233f80a



Friday, May 30, 2008

New Version


Dargens anonymous p2p updated still a mod of Ants p2p.

Wednesday, April 23, 2008

Dargens Now Compatible with ANts p2p 160


Dargens is now fully compatible with ANts p2p 1.60

Saturday, April 19, 2008

New Dargens Screen Shots






http://www.dargens.com

Friend to friend anonymous p2p file sharing
Search other nets for interests:
To share files with more friends, pls click "my network" to join more networks and to find and add more new friends sharing interests.


What are you intersted in?

Enter any email address: Choose password:

Getting started:
1. JOIN and you will automatically download a java p2p client then you're ready to start
2. Search, Download and keep, Use downloaded files when and how you want
3. Friends network so totally private only your friends know you're connected.
1a. Java p2p application downloading
1b. Accept verified certificate

How it works:

Dargens protects your privacy by avoiding direct connections with your sharing partners in the network.
Instead you download and upload via your friends or those that share an interest.
Most other file sharing programs use direct connections to download or upload, making your identity available to spies from commerce and other organizations.

Also, if your friends, that you invited to join network, click on your Google ads you earn money (see explanation on My Net page)
BENEFITS:
  • ANONYMOUS P2P file sahring
  • Hides identity when sharing
  • Download incognito from internet
  • SAFE file sharing
  • FREE legal unlimited downloads*
  • Search, download , play
  • Millions of files available*
  • No spyware, no adware and no spoofing
  • Find rare music* for your ipod, TV* & Movies* for your PC, homework answers, pdf's*, eBooks* files for your education
  • Search your friends shared files
  • Download, keep and open files when and where YOU like
  • YOUR identity while downloading and sharing is kept PRIVATE
  • Simple to join and FREE to use
  • Earn a monthly income by INVITING YOUR friends to join

Saturday, March 15, 2008

New Dargens


New Logo and new application for dargens:

The mock-ups look great (based on twitter).

Saturday, January 19, 2008

New Version of Dargens -Better Web Gui


New version now up.
1. Now can add share directories from Dargens search webpage.
2. Better navigation feature - Logo is home and link to connected search page.
3. More content

Monday, December 31, 2007

How to Use Dargens Music Downloads

  1. Click a picture on TV to INSTALL JAVA plugin.



  2. Search for MP3, AVI or other types of files.



  3. Click to download and play music, video or other types of files.

Saturday, December 08, 2007

Saturday, October 27, 2007

New Update - Darknet Functions Improved


The following have been done:


2007-10-23

make the upnp device send out info about kerj not ANTs p2p and gwren.


So modified UPnPDescriptor.java


2007-10-23

remove ants branding replace with branding from http://www.kerjodando.com/ website


So replaced all antsp2p.sourceforge.net


2007-10-23

Remove the warning of new version detected


So modified ConnectionAntPanel.java


2007-10-23

An exception on startup of the application


So modified this_componentResized() in FrameAnt.java


2007-10-24

Make STUNT work better.


STUNT A_ST2 timeout problem modified STUNT.jar


2007-10-23

Make STUNT work better.


A STUNT doesn't work problem modified Ant.java, no port conversion for STUNT URI


2007-10-18

For a logined user who has two swarms, must update its trusted peers in two swarms,must add peer ips to ipfilter.dat


So modified a lot, using session to control users' action


2007-10-16

For registered user, two swarms but only need one kerjo insteady of two kerjoes


So added five lines to jnlp_controller.rb, so that no two kerjos will be running.if count == 1 thenflash[:notice]="joined the swarm."redirect_to :backreturnend


2007-10-16

Logined users can not get a connection to other host


So modified jnlp_controller.rb,for logined users, the identity is wrongly set.replace_str <


2007-10-10

Not working with all version of Java


I'v spending many time to find the cause. Finally the jnlp is modified:1.jnlp is downloaded as random filenames2.set the $$href to empty.(Which will prohibit the new JWSes from downloading jnlp twice)


2007-10-10

Make STUNT work better.


STUNT has an unhandled timeout for state A_ST1 Add timeout and retry mechanism to A_ST1


2007-10-9

STUNT souce code is uploaded to google code


Will make reference to Dargens.com and Digiworld Ltd who paid for the work as well as Casper. Will put link on kerjodando development site.


2007-10-8

Make work with all versions of Java


The ObjectInputStream handshaking problem, this problem may exist in jre1.6.03The problem is stated at http://forum.java.sun.com/thread.jspa?threadID=649207&messageID=3820132 add keyAgreementOutStream.flush() to SecureServerSocketThread.java and SecureClientSocketThread.java


2007-10-8

Java problem


Jre 1.6.0_03 concerning problem1.setup environment, all peers should use the new java version


2007-10-8

Don't forget that this is also for week one:Try one connection method until connected.Only try to connect if not connected and then try internal, direct and stunt in that order. Also, make sure STUNT is working correctly by investigating error messages.


Added ConnectionThreadManager.java to solve this problem. Now, if one site is connecting, no more retries until the connecting process is finished.

Saturday, October 06, 2007

Test Anonymous Network for New Unsigned bands


New URL www.Dargens.com

Now has STUNT working firewall tunnelling and Upnp.

Sorry still only windows - working on mac and Linux compatibility.

Need folks to help testing.

A long way from finishing but making good steady progress.

Developer will be working full time from 8th October 2007.

Also, issue that JRE 1.60_02 and JRE 1.60_3 only work when jar is first downloaded.

JRE 1.60_01 and previous JRE versions work perfectly.

Friday, September 28, 2007

itsDargens Social Network P2P File Sharing (Testing)


Hi,

Ready to test (Sat 29th September 2007 Michaelmas).

Goto http://www.itsdargens.com/

Click on top left picture in TV.

(no need to login or register)


On next page, Click on START button where it says, "click here to start kerjodando:"

(IF YOU don't see START button but something else the download and install java from here.)

To get music you need to install the p2p thing by answering yes to install questions.

Then search for mp3* and right click to download music.

Then tell me if it works.

Thanks

(What's new is that it should now connect through firewalls).

Ez

Friday, August 31, 2007

Nearly There with File Galaxy


STUNT is not working, Casper has had to rewrite a huge amount of code to get it working but we are nearly there.

Next steps are:

  1. Clean data on site
  2. Get site certificate to stop warning message when downloading client
  3. Finish explanation on how to use client on the site.
  4. Fix bug that stops client working with JRE 1.6_02 (works with 1.6_02)

Tuesday, August 21, 2007

Michel Bauwens Anonymous P2P Peer Production

I found this very interesting.

In the end users will make their own networks (friend to friend). These networks will be private and free.


Monday, August 13, 2007

Audio Galaxy


1. Testing has stopped on TCP NAT traversal due to Casper having to move City. Looking to re-start soon. A real pity as we were very close to completing project. C'est la vie - Suppose there is more to life than hacking code.

2. Web Gui to have three parts:

  • Search form (done)
  • Search results page and link to queue item for download (partly done)
  • Download queue page with progress indicator and link to open downloaded file
As Vincent has quit the project due to lack of free time I am looking for a new person to do this.

3. The completed kerjodando p2p will closely resemble the old Audiogalaxy website:
  • Web based interface
  • Queue files for later delivery and
  • Full parsing of mp3 meta data.

Monday, August 06, 2007

TCP NAT Traversal Testing for Anonymous File Sharing


Firewall hole punching implemented.

Now testing step by step.

So sometimes the test group http://www.itsdargens.com/swarm/show_one/86d1cca8104f981648eb1b1d0f0f3a39
might produce unexpected results.

Please try it we need more testers.

Tuesday, July 31, 2007

Bootstrapping to Anonymous P2P Networks


Even P2P overlays need some way to bootstrap in disconnected networks.

While DNS typically bootstraps with hardcoded IP addresses of the 13
root servers.

Ants p2p (version 2) kerjodando bootstraps using the itsdargens.com website.

Any user website can be set-up and used for this purpose.

Basically, all code is open source so that users can set-up own bootstrapping website.

The website replaces the current ANts p2p bootstrapping methods:
  1. irc (why use this method when a website is much more friendly)
  2. Gwebcache (this openly displays your ip address to strangers) and
  3. Random walk accross the ad-hoc network. This allows users who you are not connected to (and don't know) to find out who else is connected.

The itsdargens.com Ruby on Rails bootstrapping website will provides the following functions:
  1. Bootstrapping to a friend to friend group
  2. TCP NAT traversal

Monday, July 30, 2007

STUNT P2P TCP NAT Traversal on a Ad-hoc Overlay Network


I've been thinking about this TCP NAT Traversal (TCP hole punching a method that allows everyone to connect quickly without port forwarding).

I think the following changes are needed to kerjodando to make it work.

  1. Trusted Peers list (and itsDargens User database table) need to include two extra hidden fields, User ID (prob already in itsDargens database) and "use STUNT" flag. For example, if 100 users on a LAN connect to one group they will all have different user IDs although they have the same ip+port. Then when a user wants to connect to another user (after trying direct connection) they connect to STUNT using their user ID and signal (using SIPS) to another users ID. STUNT then tell them what ip+port to use to connect to that user ID. Also STUNT would set the "use STUNT flag" to yes.
  2. ItsDargens user database to change to include "use STUNT" flag
  3. Trusted peer file needs to download and use the included user IDs and "use STUNT" flag as well as ip+port.
The other thing I realised is that for signaling, users will have to maintain a connection to the STUNT server as long as they have a user (user ID) in their trusted peers list that they are not connected to.

However, once they have connected to all their trusted peers they can disconnect form the STUNT server.

Also, probably there will be some users that you can't connect to even with STUNT, maybe these should be marked as such in "use STUNT" flag and counted as connected when deciding if should disconnect form STUNT server.

To me a STUNT server consists of the following processes:
  1. Maintaing TCP user connections with many users (User IDs)
  2. Recording user (user ID) ip+port for at least two test connections from the user
  3. Calculating predicted ip+port for a user (User ID)
  4. Reply to a request to connect to a User ID with predicted ip+port
  5. Telling other User to also make a request etc
  6. Recording "STUNT flag" in user database table so that it can be included in downloaded trusted peers
  7. Recording if STUNT does not work


More About STUNT:

Found STUNT ( Simple Traversal of UDP Through NATs and TCP too) library in java:

http://nutss.gforge.cis.cornell.edu//jstunt-faq.php


What does the stunt.jar library provide?

It provides a way to establish unproxied TCP connections between two end-points, both of which can be behind a NAT. It returns a SocketChannel that can be used for blocking or non-blocking IO as the application desires.


How does one write a server-client or peer-to-peer applications with the library?

We have provided a simple server-client application consisting of an EchoServer ( http://nutss.gforge.cis.cornell.edu//EchoServer.java ) that accepts inbound connections from one or more EchoClient ( http://nutss.gforge.cis.cornell.edu//EchoClient.java ) applications.



Does the library require some infrastructure?

Yes. The library requires a rendezvous server (much like a directory server) where applications with one URI can find the application with another URI and coordinate to establish a connection. The library also requires some STUNT servers that help applications find out their external IP address and port for establishing the real connection.


Does the rendezvous server proxy data?

No. The rendezvous server only helps set up the connection. After that, all data is exchanged directly between the end-points and does not go through the rendezvous server.


Who provides the rendezvous and STUNT service? Who can use them?

We at Cornell University are providing a rendezvous and STUNT service for developers and researchers to use. However, if you wish to deploy your own application that uses the library, we ask that you set up rendezvous and STUNT servers only for your own applications such that you do not overburden the Cornell service (which is for research and development purposes) and so that outages and changes in the Cornell service doesn't affect your application. The rendezvous server ( https://gforge.cis.cornell.edu/frs/?group_id=15 )and STUNT server ( https://gforge.cis.cornell.edu/frs/?group_id=15 )code is freely available.


Is this library under active development? Will you implement feature X?

The library is a proof of concept that TCP NAT Traversal is possible and is intended to be a starting-poing for application developers who want to use it in a real-world deployable project. At the same time, it is a library that can be used more-or-less unmodified for research and quicky-development and prototyping of applications. Time permitting, I would like to implement various features that are requested; but I cannot promise that all features will be implemented in a timely fashion. I will do my best to make the library more suited to its primary goal -- show how the NAT TCP problem can be solved easily by applications.


I want to implement TCP NAT traversal in my application but don't want to use your library?

The TCP NAT traversal code is contained in the file STUNTCont.java ( https://gforge.cis.cornell.edu/plugins/scmcvs/cvsweb.php/old/stunt_java/src/net/nutss/stunt/STUNCont.java?cvsroot=cvsroot%2Fnutss ). It includes extensive documentation. Feel free to adapt the code to your application. The rendezvous service and the STUNT service are modular and may be replaced by your own implementations if you wish to use the rest of the library.



Also see http://en.wikipedia.org/wiki/STUN

Aslo see:

see STUNT

http://nutss.gforge.cis.cornell.edu/stunt.php

and

http://www1.ietf.org/mail-archive/web/p2prg/current/msg00789.html

and

http://en.wikipedia.org/wiki/NAT_traversal

and

http://reports-archive.adm.cs.cmu.edu/anon/isri2005/CMU-ISRI-05-104.pdf

and

http://emu.freenetproject.org/pipermail/tech/2005-September/011611.html

Saturday, July 21, 2007

kerjodando p2p - Your Own Private Internet


Hi

Now testing kerjodando p2p, your own private internet.

Search, download, enjoy.

  1. Goto test page here http://www.itsdargens.com/swarm/show_one/86d1cca8104f981648eb1b1d0f0f3a39
  2. Click START to open torrent file to download and install kerjodando p2p client
  3. Click RUN to accept kerjodando digital signature.
  4. When kerjodando opens wait for connection (3 minutes)
  5. Search
  6. Download by right-clicking on file and selecting download
Currently beta testing so email me back with comments.

Thanks

Thursday, July 19, 2007

TCP NAT TRAVERSAL and WEB GUI


I'm really excited at the moment.

Development is moving forward very quickly as my two developers and me are now working on ANts p2p everyday and they seem to be very enthused.

Once we have finished some house-keeping on the SVN and sorted out connections using trusted peers only we have two big things to work on.

They are working on are:

TCP NAT traversal and

Web Gui.

Both are very important for kerjodando as it is meant to be user friendly (web gui) and should be easy for small groups to use (TCP NAT traversal).

One big reason why ANts p2p version 1 does not work that well is because of human nature.

People in general (including me) are stupid and lazy.

So most people do not 'port forward' - so can only connect to those select few who do - this creates VERY BIG BOTTLE NECKS and security weaknesses.

Do you know how many people are connected to Ts**a and one or two others only - whereas Ts**a and one or two others have 20 connections!

Secondly, most people (even me ) can't be bothered to put their correct ip address in connections page - this stops them from being used by the random walk function, looking for peers with free slots, as it will show only user's internal ip address.

This leads to a very fragmented network with bottle necks.

Where there are no NAT issues for example on a LAN ANts version 1 works fine but put a NAT in and it doesn't for the reasons I mentioned earlier.

Well anyway TCP NAT traversal will make it possible for anyone to connect to anyone else this will mean that all peers will use up their maximum connections and so there WILL BE NO BOTTLENECKS ;-)

And the web gui will mean that ANYONE (who can code a web page) will be able to design a new GUI and that our GUI will be as EASY AS YOUTUBE or SEEQPOD to use ;-)

As for the new version of ANts p2p I am not convinced - it is either better or worse it can't be no change!

Monday, July 16, 2007

Firewall Tunnelling and Quicker User Connection


Tne next project is ensure that users connect quickly and easily to kerjodando. It has two parts:

1. Ensure that users connect quickly and easily to trusted peers ONLY (except for users using Upnp to connect to other LAN users)

Currently "Ants" has several methods of connecting these need to be removed leaving only trusted peers and Upnp.

There might be more than this but here are the methods I know:

  1. irc - REMOVED
  2. gwebcache - REMOVED
  3. peers - previous connections - LEAVE
  4. random walk across the network from peer to peer recording peers with free slots - TO BE REMOVED
  5. manual connect in advance tab - LEAVE
  6. trusted peers - IMPROVE SO THAT IT KEEPS TRYING UNTIL CONNECTION MADE WITHOUT ANY BANDWIDTH TESTING
  7. Upnp - LEAVE
This is important as with fewer users in each group quick connection is very important.


2. Using the itsDargens website as an intermediary develop a simple process to allow two peers with un-forwarded ports to connect.

I must admit that I don't fully understand the TCP/IP protocol but I would prefer if the solution involved a client connecting to website and then the website updating the trusted peers file to reflect the external port that was used. (This could be total rubbish on my part) The solution must be SIMPLE.

This is important as with fewer users in each group quick connection is very important and there is a high probability that both users may not have kerj ports forwarded.

Both jobs are urgent as the point of the application is to CONNECT and DOWNLOAD and currently about 50% of users can't connect!



The full list of things added and removed are:

Needed:
Own folder, separate from Ants - JAVA - OUTSTANDING
Client minimize to systems tray on opening - JAVA- OUTSTANDING
try to connect to trusted peers - JAVA- OUTSTANDING
itsdargens itermediate connection help where two users behind a firewall - RAILS - OUTSTANDING
ipfilter.dat - RAILS - OUTSTANDING
irc applet to website - RAILS- OUTSTANDING
email invite from google and IM on website - RAILS - OUTSTANDING


Not Needed:
Help page not needed as it is no help! - JAVA - DONE
Browser location setting no longer needed - JAVA - DONE
Monitor clip board for ed2k and ants links - JAVA - DONE
Random walk for new peers with free slots (must use trusted peers) - JAVA - OUTSTANDING
irc - JAVA - DONE
http tunnel - JAVA - DONE
ed2k hashes - JAVA - DONE
Search for peers on Gwebcache - JAVA - DONE
publish ip on gwebcache - JAVA - DONE
any restriction on peers connected to e.g. bandwidth - JAVA - OUTSTANDING