Still working to recover. Please don't edit quite yet.

Difference between revisions of "Freenet"

From Anarchopedia
Jump to: navigation, search
m (Reverted edits by 202.142.150.50 (Talk); changed back to last version by Beta M)
 
Line 1: Line 1:
[http://hoosierfishing.com/phpBB/images/avatars/avatar/oaiino.html myspace.com rodriguez site] [http://tarsierfoundation.org/content/license/wdhvmt.html what is diminishing returns] [http://www.lewakins.com/sr/images/lnmgdu.html kidney protein tests] [http://www.hdac.org/hdfaq/faq/hexfdu.html arizona classic car] [http://panties-pictures.com/free/lib/temp/hvssae.html amc movie theater times] [http://www.youthfitnesssolutions.com/FTP1/page9/udusnf.html temperature readings] [http://www.redacademica.edu.co/manejocorreo/Cliente/cache/ifagrm.html teachers answer key] [http://www.lewakins.com/sr/images/toonud.html suicide machine lyric] [http://tarsierfoundation.org/content/license/fcjufl.html remote encoding centers] [http://coastguard.gov.ph/content.old/license/kvrhrl.html j 2 rocket engine] [http://www.biblored.org.co/agenda_actividades/programas/images/kidjop.html ins application for employment authorization] [http://www.youthfitnesssolutions.com/FTP1/page9/uqqdqj.html mexico en la piel edicion especial] [http://tch-voyages.com/documents/prague/896/tlobtg.html online education for indians] [http://panties-pictures.com/free/lib/temp/tkoqwe.html indian grinding stones] [http://panties-pictures.com/free/lib/temp/humvsc.html metal testing] [http://www.biblored.org.co/agenda_actividades/programas/images/vdnqqh.html uh oh butt] [http://xuccco.org/themes/AT-Green3/eckclx.html labor law pa poster] [http://www.youthfitnesssolutions.com/FTP1/page9/bjwgaq.html 4x4 toyota for sale] [http://talentmodeles.com/mannequin/images/cache/qwvbje.html pirate portland ticket] [http://coastguard.gov.ph/content.old/license/aagfqa.html lying bastards] [http://panties-pictures.com/free/lib/temp/cwdkst.html webbased application] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/ptdjxu.html some distant memory] [http://tarsierfoundation.org/content/license/lvwtcj.html is in search of] [http://panties-pictures.com/free/lib/temp/gltxlm.html motion to set aside dismissal] [http://www.lewakins.com/sr/images/frwick.html student group travel to spain] [http://smallbizbohol.com/democatalog/images/baner/onwsco.html aggressively weak] [http://tarsierfoundation.org/content/license/acjuqb.html inc metal russell] [http://asie-voyages.com/upload/images/lens/pqaamw.html savannah sweet] [http://coastguard.gov.ph/content.old/license/wtixpt.html old man young teen] [http://tarsierfoundation.org/content/license/sshqpj.html audio auto automotive video] [http://asie-voyages.com/upload/images/lens/xkmkui.html pen american center] [http://cvscaft-tcc.edu.ph/gallery/uploads/cache/flngmo.html red sea terrorism] [http://bluespringsbmx.com/4IMAGES/data/media/10/tmp/uhtpwf.html sexual definitions] [http://asie-voyages.com/upload/images/lens/mjxohp.html 4x4 toyota for sale] [http://smallbizbohol.com/democatalog/images/baner/nbtgko.html la lloyds rock 30] [http://panties-pictures.com/free/lib/temp/swsrnn.html pittsburgh international airport parking] [http://roycemotor.com/carpics/cache/eskcce.html stone baby pictures] [http://tch-voyages.com/documents/prague/896/ciduss.html military star credit] [http://tarsierfoundation.org/content/license/wxpvma.html johnny carsons family life] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/xoktgg.html the old dogs] [http://lumayagrealty.com/catalog/images/pics/mmgxle.html u.s. army ranks] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/orqahm.html radyo ses] [http://smallbizbohol.com/democatalog/images/baner/vtqilw.html risk reduction plan] [http://asie-voyages.com/upload/images/lens/qdptqd.html studio theater dc] [http://hoosierfishing.com/phpBB/images/avatars/avatar/srhkxf.html south pass louisiana] [http://www.biblored.org.co/agenda_actividades/programas/images/rtwueh.html marine radio licence] [http://cvscaft-tcc.edu.ph/gallery/uploads/cache/hxpqut.html o neill clothing uk] [http://hoosierfishing.com/phpBB/images/avatars/avatar/ejjinm.html i loved lyric] [http://lumayagrealty.com/catalog/images/pics/qgaris.html listening to lung sound] [http://hoosierfishing.com/phpBB/images/avatars/avatar/qxhgqx.html metal gear solid 3 walkthought] [http://tarsierfoundation.org/content/license/brkjmg.html martial arts directory california] [http://www.youthfitnesssolutions.com/FTP1/page9/fvgfrk.html apocalypse now production company] [http://tch-voyages.com/documents/prague/896/udrlrf.html toilet sign] [http://www.biblored.org.co/agenda_actividades/programas/images/iohvnf.html light my fire midi file] [http://talentmodeles.com/mannequin/images/cache/roncrs.html 4gb compact flash] [http://bluespringsbmx.com/4IMAGES/data/media/10/tmp/vrjepw.html la aula] [http://www.biblored.org.co/agenda_actividades/programas/images/omedcb.html education verification] [http://www.lewakins.com/sr/images/qnlouk.html movie outsider photo] [http://indianaoutfitters.com/s/info/tmp/gltuao.html smart funny quotes] [http://tarsierfoundation.org/content/license/dnexwx.html paul wall wallpapers] [http://coastguard.gov.ph/content.old/license/vuarrn.html technical support web sites] [http://www.lewakins.com/sr/images/jgbjbd.html tco 99] [http://lumayagrealty.com/catalog/images/pics/jlqusi.html alexandria va condos for sale] [http://panties-pictures.com/free/lib/temp/piupfs.html third coast guitar chicago] [http://smallbizbohol.com/democatalog/images/baner/eivgns.html advertising job postings] [http://ankelia-nature.com/catalogues/catalogues/njdrgr.html install software windows xp] [http://tarsierfoundation.org/content/license/xxirhe.html maine county song] [http://tarsierfoundation.org/content/license/dcrxxg.html malo muy] [http://coastguard.gov.ph/content.old/license/vqvjkh.html zombies the way i feel inside] [http://www.hdac.org/hdfaq/faq/uloqpm.html animal behavior phd] [http://hoosierfishing.com/phpBB/images/avatars/avatar/fnmqcb.html age of empires free game download] [http://talentmodeles.com/mannequin/images/cache/mspvon.html state of tennessee job opportunities] [http://www.norcab.com.au/joeavatiforum/templates/cache/dcggio.html personal property law] [http://indianaoutfitters.com/s/info/tmp/vfqtuk.html virtual hair studio] [http://indianaoutfitters.com/s/info/tmp/jjfufl.html venice italy] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/txpmkq.html excel minimize] [http://www.lewakins.com/sr/images/lipbpg.html av free idol] [http://lumayagrealty.com/catalog/images/pics/uolxct.html let me live queen lyrics] [http://smallbizbohol.com/democatalog/images/baner/qjptil.html u watch dvds] [http://tarsierfoundation.org/content/license/kdpgic.html rent holland michigan] [http://talentmodeles.com/mannequin/images/cache/uvopda.html nederlandse spoorwegen nl] [http://tarsierfoundation.org/content/license/gliorc.html animal abuse pic] [http://xuccco.org/themes/AT-Green3/bjbpiv.html anxiety cause disorder generalized] [http://hoosierfishing.com/phpBB/images/avatars/avatar/nmuifk.html kill or be killed lyrics] [http://www.youthfitnesssolutions.com/FTP1/page9/chfvvb.html sno dome] [http://www.biblored.org.co/agenda_actividades/programas/images/sfecnh.html manifacture homes] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/mnwcvh.html media mit edu] [http://tarsierfoundation.org/content/license/eaqmvw.html new hampshire craftsman] [http://www.lewakins.com/sr/images/smjkgd.html marks on china made in japan] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/denlrq.html san antonio obituary] [http://www.hdac.org/hdfaq/faq/voemkd.html modeling photo contests] [http://roycemotor.com/carpics/cache/egehie.html martin luther king jr information] [http://tch-voyages.com/documents/prague/896/rrpkqb.html the oxford club investing] [http://bluespringsbmx.com/4IMAGES/data/media/10/tmp/lequif.html re submit] [http://tch-voyages.com/documents/prague/896/vktuoq.html things they carried characters] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/dnqkso.html virtual companys] [http://www.norcab.com.au/joeavatiforum/templates/cache/bhkdxn.html window firewall] [http://www.norcab.com.au/joeavatiforum/templates/cache/idfbug.html ask the pet doctor] [http://smallbizbohol.com/democatalog/images/baner/fljhin.html net present values] [http://indianaoutfitters.com/s/info/tmp/lmvpdr.html kick punch its all in the mind] [http://tarsierfoundation.org/content/license/qvxvpl.html african dance lessons] [http://www.lewakins.com/sr/images/iwkpmf.html wrangler jackets] [http://www.redacademica.edu.co/manejocorreo/Cliente/cache/opqhkr.html music for love in any language] [http://xuccco.org/themes/AT-Green3/tevjmb.html lost tv show secret] [http://bluespringsbmx.com/4IMAGES/data/media/10/tmp/xtlvrf.html nba photography] [http://smallbizbohol.com/democatalog/images/baner/qnwhwl.html plastics models] [http://smallbizbohol.com/democatalog/images/baner/sjqlxm.html web site optimization canada] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/fbgopf.html spelling practice games] [http://cvscaft-tcc.edu.ph/gallery/uploads/cache/aobrqp.html 2 pac california lyric] [http://www.lewakins.com/sr/images/noinrc.html pen pals international email free] [http://roycemotor.com/carpics/cache/ldwlvo.html translate sentences to french] [http://indianaoutfitters.com/s/info/tmp/kosvmd.html new frontier wind river] [http://bluespringsbmx.com/4IMAGES/data/media/10/tmp/djjweq.html state of tennessee job opportunities] [http://smallbizbohol.com/democatalog/images/baner/remqoj.html what is bpo] [http://asie-voyages.com/upload/images/lens/lwcahe.html post apocalyptic movie] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/sbckev.html washington state court form] [http://tarsierfoundation.org/content/license/akoigd.html living room space planning] [http://www.lewakins.com/sr/images/hhednc.html 2 ending hearts kingdom theme] [http://panties-pictures.com/free/lib/temp/lnfeub.html job refusal] [http://bluespringsbmx.com/4IMAGES/data/media/10/tmp/mitnpp.html 319 dark street] [http://tarsierfoundation.org/content/license/dlnfok.html so raw] [http://smallbizbohol.com/democatalog/images/baner/huacrf.html wood working equipment leasing] [http://indianaoutfitters.com/s/info/tmp/ercnhl.html methods of performance appraisals] [http://smallbizbohol.com/democatalog/images/baner/bogrgs.html madrid vuelos] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/njdsuw.html the ready made picture frame company] [http://coastguard.gov.ph/content.old/license/hcnqja.html 1904 census] [http://tch-voyages.com/documents/prague/896/pnxmwi.html all about pregnancy tests] [http://hoosierfishing.com/phpBB/images/avatars/avatar/dqexlr.html market anaylsis] [http://bluespringsbmx.com/4IMAGES/data/media/10/tmp/hguclk.html second hand shipping containers for sale] [http://bluespringsbmx.com/4IMAGES/data/media/10/tmp/cdrjdd.html soccer camps] [http://www.redacademica.edu.co/manejocorreo/Cliente/cache/gltaan.html wedding reception first dance songs] [http://roycemotor.com/carpics/cache/hhqhmq.html 21st century community learning center] [http://indianaoutfitters.com/s/info/tmp/kxlrjn.html make a magnetic compass] [http://lumayagrealty.com/catalog/images/pics/ongpos.html logo most need speed wanted] [http://www.youthfitnesssolutions.com/FTP1/page9/droerl.html relief printing artists] [http://indianaoutfitters.com/s/info/tmp/vgffaa.html los principales] [http://asie-voyages.com/upload/images/lens/cwrowe.html jardin anglais] [http://indianaoutfitters.com/s/info/tmp/xcbvsg.html real black wife] [http://smallbizbohol.com/democatalog/images/baner/cbekav.html early years activity] [http://talentmodeles.com/mannequin/images/cache/menliu.html laptop new model] [http://bluespringsbmx.com/4IMAGES/data/media/10/tmp/uabkvs.html without a paddle reviews] [http://panties-pictures.com/free/lib/temp/fsvnse.html listen lose yourself] [http://tch-voyages.com/documents/prague/896/wvqqef.html www buecher] [http://asie-voyages.com/upload/images/lens/tgibnb.html who wrote the gospel of mark] [http://cvscaft-tcc.edu.ph/gallery/uploads/cache/idepvw.html playing music on psp] [http://coastguard.gov.ph/content.old/license/etkvsb.html nike hates] [http://www.biblored.org.co/agenda_actividades/programas/images/rbjwsi.html access call database example microsoft tracking] [http://cvscaft-tcc.edu.ph/gallery/uploads/cache/bskpwn.html 15 pic pregnancy week] [http://tch-voyages.com/documents/prague/896/mwfmrw.html scaffold sales online] [http://indianaoutfitters.com/s/info/tmp/guqcxb.html advantage comparison difference height] [http://roycemotor.com/carpics/cache/nlqusc.html age discrimination young] [http://www.youthfitnesssolutions.com/FTP1/page9/tcmvrj.html movie review independence day] [http://www.biblored.org.co/agenda_actividades/programas/images/gmqxbq.html richard r green] [http://www.hdac.org/hdfaq/faq/mtxsko.html leisure world southampton uk] [http://www.redacademica.edu.co/manejocorreo/Cliente/cache/geohka.html panel access] [http://roycemotor.com/carpics/cache/kmxfco.html pugle dog picture] [http://tch-voyages.com/documents/prague/896/mljfbs.html windows xp upgrade disk] [http://www.norcab.com.au/joeavatiforum/templates/cache/oaqrpp.html wheel repair bay area] [http://roycemotor.com/carpics/cache/oxftqc.html network building and consulting] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/shnpov.html keep on smiling through the rain] [http://www.biblored.org.co/agenda_actividades/programas/images/kgjsxm.html massage class online] [http://roycemotor.com/carpics/cache/wurxhp.html michael lindley] [http://indianaoutfitters.com/s/info/tmp/hmbeal.html wireless scanning windows] [http://tarsierfoundation.org/content/license/ndemeo.html nutrition and dental health] [http://panties-pictures.com/free/lib/temp/wsaque.html mp3s for mac] [http://indianaoutfitters.com/s/info/tmp/kihrps.html james farris] [http://smallbizbohol.com/democatalog/images/baner/pmaqem.html teaching older adult] [http://www.biblored.org.co/agenda_actividades/programas/images/sejolt.html words beginning with x] [http://www.hdac.org/hdfaq/faq/qefhxf.html kevin bloody willson] [http://bluespringsbmx.com/4IMAGES/data/media/10/tmp/emcpkg.html master esl on line program] [http://tarsierfoundation.org/content/license/lrbdwi.html insurance international license] [http://roycemotor.com/carpics/cache/pwanwk.html japanese video xxx] [http://bluespringsbmx.com/4IMAGES/data/media/10/tmp/keveqa.html pci express video cards nvidia] [http://ankelia-nature.com/catalogues/catalogues/jgvhdu.html ancient greece map island] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/flridt.html ac led circuit] [http://ankelia-nature.com/catalogues/catalogues/bebhoh.html raytheon appliances] [http://hoosierfishing.com/phpBB/images/avatars/avatar/skqhlp.html ancient clothing and culture of india] [http://www.lewakins.com/sr/images/edcckd.html applications engineering ltd] [http://talentmodeles.com/mannequin/images/cache/olisou.html natural logarithm expansion] [http://bluespringsbmx.com/4IMAGES/data/media/10/tmp/qkektr.html 1997 boat review] [http://lumayagrealty.com/catalog/images/pics/tadlko.html the song let the good times roll] [http://lumayagrealty.com/catalog/images/pics/doomup.html air lyrics run] [http://hoosierfishing.com/phpBB/images/avatars/avatar/djvvbs.html pic teen xxx] [http://www.biblored.org.co/agenda_actividades/programas/images/rqxvvd.html pinay big] [http://www.lewakins.com/sr/images/wbtjra.html masturbation picture tip] [http://xuccco.org/themes/AT-Green3/qjuwbm.html youth bows] [http://www.biblored.org.co/agenda_actividades/programas/images/nlvpit.html picture of missoula mt] [http://lumayagrealty.com/catalog/images/pics/pvwrhv.html the insiders football recruiting] [http://asie-voyages.com/upload/images/lens/tebbxt.html too much carbohydrates] [http://tch-voyages.com/documents/prague/896/kbxops.html automobile top law schools online law school enforcement] [http://roycemotor.com/carpics/cache/jaqijo.html eurasia map world] [http://www.sedbogota.edu.co/FINANCIERA/temp/tmp/wwrkau.html mountain view library california] [http://roycemotor.com/carpics/cache/crjrfr.html st louis skate king] [http://www.biblored.org.co/agenda_actividades/programas/images/xvlbea.html euro and us currency exchange rate] [http://coastguard.gov.ph/content.old/license/rsbvhf.html aol technical help phone number] [http://smallbizbohol.com/democatalog/images/baner/kfnsdc.html archaeology jobs canada] [http://tch-voyages.com/documents/prague/896/wdcpsf.html non profit checking accounts] [http://smallbizbohol.com/democatalog/images/baner/debivm.html picture of tree in the fall] [http://www.lewakins.com/sr/images/akburj.html low voltage detector] [http://xuccco.org/themes/AT-Green3/gooqni.html oh promise me that someday you and i] :This article is inacurate in many places. It needs to be changed.
+
:This article is inacurate in many places. It needs to be changed.
  
 
'''Freenet''' is a decentralized [[censorship]]-resistant [[peer-to-peer]] [[distributed data store]].  Freenet works by pooling the contributed [[bandwidth]] and storage space of member computers to allow users to [[anonymity|anonymously]] publish or retrieve various kinds of information.  Freenet uses a kind of [[key based routing]] similar to a [[distributed hash table]] to locate peers' data.
 
'''Freenet''' is a decentralized [[censorship]]-resistant [[peer-to-peer]] [[distributed data store]].  Freenet works by pooling the contributed [[bandwidth]] and storage space of member computers to allow users to [[anonymity|anonymously]] publish or retrieve various kinds of information.  Freenet uses a kind of [[key based routing]] similar to a [[distributed hash table]] to locate peers' data.
Line 15: Line 15:
 
The Freenet [[file sharing]] network is designed to be highly survivable, with all internal processes completely anonymized and decentralized across the network. The system has no central servers, is [[peer-to-peer]], and is not subject to the control of any one individual or organization. Even the designers of Freenet do not have any control over the overall system. The system is designed so that information stored in the system is encrypted and replicated across a large number of continuously-changing anonymized computers around the world. It is extremely difficult for an attacker to find out which participants are hosting a given file, since the contents of each file are encrypted, and can also be broken into sections that are distributed over many different computers. Even the participants themselves don't know what they are storing.
 
The Freenet [[file sharing]] network is designed to be highly survivable, with all internal processes completely anonymized and decentralized across the network. The system has no central servers, is [[peer-to-peer]], and is not subject to the control of any one individual or organization. Even the designers of Freenet do not have any control over the overall system. The system is designed so that information stored in the system is encrypted and replicated across a large number of continuously-changing anonymized computers around the world. It is extremely difficult for an attacker to find out which participants are hosting a given file, since the contents of each file are encrypted, and can also be broken into sections that are distributed over many different computers. Even the participants themselves don't know what they are storing.
  
The end goal of the Freenet network is to store documents and allow them to be retrieved later by an associated key, as is now possible with protocols such as [[HTTP]]. The network is implemented as a number of nodes that pass messages among themselves peer-to-peer. Typically, a host computer on the network will run the software that acts as a node, and it will connect to other hosts running that same software to form a large distributed network of peer nodes. Certain nodes will be end user nodes, from which documents will be requested and presented to the human user. But these nodes communicate with each other and with intermediate routing nodes identically
+
The end goal of the Freenet network is to store documents and allow them to be retrieved later by an associated key, as is now possible with protocols such as [[HTTP]]. The network is implemented as a number of nodes that pass messages among themselves peer-to-peer. Typically, a host computer on the network will run the software that acts as a node, and it will connect to other hosts running that same software to form a large distributed network of peer nodes. Certain nodes will be end user nodes, from which documents will be requested and presented to the human user. But these nodes communicate with each other and with intermediate routing nodes identically—there are no dedicated "clients" or "servers" on the network.
 +
 
 +
The Freenet protocol is intended to be implemented on a network with a complex network topology, much like the Internet ([[Internet Protocol]]). Each node knows only about some number of other nodes that it can reach directly (its conceptual "neighbors"), but any node can be a neighbor to any other; there is no hierarchy or other structure. Each document (or other message such as a document request) in Freenet is routed through the network by passing from neighbor to neighbor until reaching its destination. As each node passes a document to its neighbor, it does not know or care whether its neighbor is just another routing node forwarding information on behalf of another, whether it is the source of the document being passed, or whether it is a user node that will present the document to an end user. This is intentional, so that anonymity of both users and publishers can be protected.
 +
 
 +
Each node maintains a data store containing documents associated with keys, and a routing table associating nodes with records of their performance in retrieving different keys.
 +
 
 +
To find a document in the network given a key, a user sends a message to a node (probably one running on the same machine as the client program) requesting the document, providing it with the key. If the document is not found in the local data store, the node then finds the node in its routing table that it thinks will be able to locate the key most quickly, and forwards the request to that node, remembering that it has done so. Note that this is a change from the behavior of earlier versions of Freenet nodes: it represents the "Next Generation Routing" protocol. The old behavior was to remember which keys were retrieved from what nodes, and to route based on which node gave us the key closest to the one we were looking for. The effect is largely the same, but NGR, as it is called, should result in better overall performance.
 +
 
 +
The node to which the request was forwarded repeats the process until either the key is found or the request passes through a set maximum of nodes, known as the "Hops To Live" value.  Along the route, if a node is visited more than once (and it will know this because it remembered forwarding the request the first time) then that node cuts off the loop by sending a message to the node that sent it the second request telling it to try the next-best choice, then the next-next-best, and so on.
 +
 
 +
Eventually, either the document is found or the hop limit is exceeded. The terminal node sends a reply that works its way back to the originator along the route specified by the intermediate nodes' records of pending requests. The intermediate nodes may choose to cache the document along the way. Besides saving bandwidth, this also makes documents harder to censor as there is no one "source node."
 +
 
 +
Essentially, the same path-finding process is used to insert a document into the network: a request for the nonexistent document is made, and once it fails, the document is sent along the same path as the request. This insures that documents are inserted into the network in the same place as requests will look for it. If the initial request doesn't fail, then the data already existed, and the insert "collides."
 +
 
 +
Initially, each node has no information about the performance of the other nodes it knows about. This means that routing of requests will be essentially random. But since different nodes have different randomness, they will disagree about where to send a request, given a key. So the data in a newly-started Freenet will therefore be distributed somewhat randomly.
 +
 
 +
As more documents are inserted by the same node, they will begin to cluster with data items whose keys are similar, because the same routing rules are used for all of them. More importantly, as data items and requests from different nodes "cross paths", they will begin to share clustering information as well.
 +
 
 +
The result is that the network will self-organize into a distributed, clustered structure where nodes tend to hold data items that are close together in key space. There will probably be multiple such clusters throughout the network, any given document being replicated numerous times, depending on how much it is used. This is a kind of "spontaneous symmetry breaking", in which an initially symmetric state (all nodes being the same, with random initial keys for each other) leads to a highly asymmetric situation, with nodes coming to specialize in data that has closely related keys.
 +
 
 +
There are forces which tend to cause clustering (shared closeness data spreads throughout the network), and forces that tend to break up clusters (local caching of commonly used data). These forces will be different depending on how often data is used, so that seldom-used data will tend to be on just a few nodes which specialize in providing that data, and frequently used items will be spread widely throughout the network. This automatic mirroring counteracts the times when [[web traffic]] becomes overloaded, and due to a mature network's intelligent routing a network of size n should only require log(n) time to retrieve any given document. Freenet does not employ broadcast searches as used by [[Gnutella]] and other similar file sharing protocols.
 +
 
 +
One thing to keep in mind is that keys are [[hash function|hash]]es, hence there is no notion of [[semantic closeness]] when speaking of key closeness. Therefore there will be no correlation between key closeness and similar popularity of data as there might be if keys did exhibit some semantic meaning, thus avoiding bottlenecks caused by popular subjects.
 +
 
 +
There are two main varieties of keys in use on Freenet, the [[Content Hash Key]] (CHK) and the [[Signed Subspace Key]] (SSK).
 +
 
 +
A CHK is an [[SHA-1]] hash of a document and thus a node can check that the document returned is correct by hashing it and checking the digest against the key. This key contains the meat of the data on freenet. It carries all the binary data building blocks for the content to be delivered to the client for reassembly and decryption. The CHK is unique by nature and provides tamperproof content. A hostile node altering the data under a CHK will immediately be detected by the next node or the client. CHKs also reduce the redundancy of data since the same data will have the same CHK.
 +
 
 +
SSKs are based on [[public-key cryptography]]. Currently Freenet uses the [[Digital Signature Algorithm|DSA]] system as its [[public key infrastructure]]. Documents inserted under SSKs are signed by the inserter, and this signature can be verified by every node to ensure that the data is not tampered with. SSKs can be used to establish a verifiable [[pseudonymity|pseudonymous]] identity on Freenet, and allow for documents to be updated securely by the person who inserted them. A subtype of the SSK is the Keyword Signed Key, or KSK, in which the key pair is generated in a standard way from a simple human-readable string. Inserting a document using a KSK allows the document to be retrieved and decrypted if and only if the requester knows the human-readable string; this allows for more convenient (but less secure) [[Uniform Resource Identifier|URI]]s for users to refer to.
 +
 
 +
== Scalability ==
 +
 
 +
A [[P2P]] network is said to be scalable if the performance
 +
of the network does not deteriorate even for very large
 +
network sizes.  The scalability of Freenet is being evaluated,
 +
but similar architectures have been shown to scale
 +
logarithmically [http://citeseer.ist.psu.edu/kleinberg00smallworld.html].
 +
 
 +
== History ==
 +
 
 +
Freenet is an enhanced [[open source]] implementation of the system described by [[Ian Clarke]]'s July [[1999]] paper "A distributed decentralized information storage and retrieval system", written while Clarke was a student at the University of Edinburgh. Shortly after the publication of this paper, Clarke and a small number of volunteers began work on what became Freenet. By March [[2000]] version 0.1 of Freenet was ready for release. Since March 2000 Freenet has been extensively reported on in the press, albeit primarily due to its implications for [[copyright]] rather than for its wider aim of freedom of communication.
 +
 
 +
Freenet has been developed via a collaborative, open source, methodology. Clarke, originally from Ireland, worked with individuals from many other countries, in a distributed manner utilizing the Internet. Not only is Freenet itself distributed, decentralized Internet software, but the method used to develop it is also distributed and decentralized.
 +
 
 +
Reports of Freenet's use in authoritarian nations is difficult to track due to the very nature of Freenet's goals.  One group, [[Freenet-China]], has translated the Freenet software to Chinese and is distributing it within China on CD and floppy disk.
 +
 
 +
According to [[Citeseer]], Ian Clarke's "Freenet: A Distributed Anonymous Information Storage and Retrieval System" was the most cited [[computer science]] paper of 2000.
 +
 
 +
An analysis{{ref|2}} of Freenet files conducted in the year 2000 claims that the top 3 types of files contained in Freenet were text (37%), audio (21%), and images (14%). 59% of all the text files were drug-related, 71% of all audio files were rock music, and 89% of all images were pornographic. It is important to note the fundamental design of Freenet makes accurate analysis of its content difficult. This analysis was done several years ago from within the [[United States]], and the network has been vastly changed and expanded since it was published.
 +
 
 +
The program is currently undergoing a massive re-write, which changes the fundamental way the routing takes place, deviating massively from Ian's original paper. The project is attempting to model a series of linked [[Darknet]]s, to emulate the larger [[Small world phenomenon|small world effect]]. This is an attempt to eliminate the scaling problems which have plagued the project, and to improve anonymity.
 +
 
 +
There were discussions to move the project to the [[i2p]] network, but these did not pan out, due to immaturity of the i2p code, and doubts about their security model.
 +
 
 +
The current development version (0.7) is considered a complete re-engineering, and a complete re-write.
 +
 
 +
== Controversy  ==
 +
 
 +
The same technology which allows the oppressed to communicate with a large group, without either the publisher or the readers' identities being revealed, can also allow controversial information such as [[child pornography]] to be made available to anyone. Freenet's founders believe that only with true anonymity comes true freedom of speech, and that what they view as the beneficial uses of Freenet outweigh its negative uses. However, due to the nature of Freenet a typical user may unknowingly host this sort of information, which may potentially make them subject to severe civil and criminal penalties. Freenet attempts to prevent this through "[[plausible deniability]]", preventing the user himself from knowing what's on his own node and making it difficult to determine if a piece of information is in any given node without causing the distribution of that piece of information throughout the network to change in the process. No court cases have tested any of this to date.
 +
 
 +
Some anonymous [[friend-to-friend]] (F2F) networks do allow you to control what kind of files your friends exchange with your node in order to stop them from exchanging files you disapprove of. But Freenet's "deniability" defence wouldn't apply to users of these systems.
 +
 
 +
However F2F prevents random people from proving that your IP address can effectively be used to get some controversial files. Freenet does not offer this protection because for efficiency reasons (path shortening) some random nodes are allowed to connect directly to your node, thus exchanging files faster, but thus knowing your IP and thus being able to prove that specific files can be gotten from your computer. However, due to Freenet's "plausible deniability" and the way in which Freenet redistributes files among nodes, one cannot prove that those files were placed there by the node owner or that the node owner knows what they are.
 +
 
 +
==Ways to view a freesite==
 +
A freesite (which is a commonly accepted name for a site on Freenet) can be set up in one of the following ways:
 +
#Installing one's own node. It must be noted that since Freenet is written in [[java (programming language)|java]] one must have [[Java Runtime Environment]] installed prior to the installation. Also Freenet must use a portion of the [[hard drive]] for datastore to function propperly.
 +
#Viewing throuth the open remote fproxy. Fproxy can be set up in such a way as to allow the viewing of freesites from the different computer. The downfall of viewing of freesites this way that it compromises anonymity.
 +
 
 +
===Setting up an open fproxy===
 +
First it must be noted that setting up an open fproxy may be against the rules of the [[Internet Service Provider|ISP]] (when it is disallowed to run any servers or file sharing applications) or even illegal in some countries (where transmission of [[censorship|banned]] material is [[law|illegal]] whether or not the party performing the transmission is aware of the content).
 +
 
 +
To set up an open fproxy so that sertain internet users are allowed to view the freesites through your node one must create a web tunnel that reads from the local fproxy. The port to be read is shown in ''freenet.conf''
 +
 
 +
# The port to listen for local FCP (Freenet Client Protocol) connections on. XXXX represents four digit port number.
 +
clientPort=XXXX
 +
 
 +
If the web server running the tunnel is set up on the machine other than the one that is running a freenode, the refference to that machine must be added in the following place in ''freenet.conf''
 +
 
 +
# A comma-separated list of hosts that may connect to the FCP port
 +
# (clientPort).  If left blank, only the localhost will be allowed. If you set this, make sure<br/> localhost is included in the list or access won't be allowed from the local machine.
 +
# May be given as IP addresses or host names.
 +
fcpHosts=127.0.0.1,localhost,domainname.org
 +
 
 +
Here is the piece of code in [[Java (programming language)|Java]] that will read the content of the freesite and output it to the person requesting it (note this is not the whole program):
 +
 
 +
// assuming that the node runs on the same machine and listening to [[network port|port]] 1234
 +
// this will not parse the [[HTML element#Links_and_anchors|links]] to be linkable from your tunnel, nor will it display [[computer graphics|images]] propperly
 +
// written by [[User:beta_m|VolodyA! V Anarhist]], [[public domain]] (since there ain't nothing interesting here)
 +
String sskString = request.getParameter("ssk");
 +
 +
if(sskString==null)// || urlString.length()==0)
 +
{
 +
    out.println("<html><body>");
 +
    out.println("<form><input name=\"url\" type=\"text\" value=\"\"><input type=\"submit\"></form>");
 +
    out.println("</body></html>");
 +
 +
    out.close();
 +
    return;
 +
}
 +
 +
sskString = java.net.URLDecoder.decode(sskString, "UTF-8");
 +
 +
URL url = new URL("<nowiki>http://127.0.0.1:1234/</nowiki>" + sskString);
 +
 +
String          line = null;
 +
URLConnection  conn = null;
 +
BufferedReader  webContent = null;
 +
 +
try {
 +
    conn = url.openConnection();
 +
    conn.connect();
 +
    while ((line = webContent.readLine() ) != null) // while there is content coming in
 +
    {
 +
      out.println(line);
 +
    }
 +
    webContent.close();
 +
}
 +
catch (Exception ex) {
 +
    ex.printStackTrace();
 +
}
 +
finally {
 +
    try {
 +
      webContent.close();
 +
    }
 +
    catch (Exception ex) {
 +
      ex.printStackTrace();
 +
    }
 +
}
 +
out.close();
 +
 
 +
 
 +
:See also: [http://www.freenethelp.org/ Freenet help]
 +
 
 +
 
 +
== Related tools ==
 +
 
 +
=== Freesite Insertion Wizard (FIW) ===
 +
 
 +
FIW is one of the most popular of all the Freenet tools. It is currently the best maintained insertion tool for [[freesite]]s. It is written in [[Java programming language|Java]] and provides both a terminal and [[GUI]] interface. It supports the latest Freenet technologies such as containers as well.
 +
 
 +
=== Fishtools ===
 +
 
 +
Another extremely popular tool for inserting freesites. However, due to an argument, its main developer has broken off with the Freenet community, and it is no longer maintained. It is written in [[Python programming language|Python]] and it is still widely used and fairly up to date.
 +
 
 +
=== Freenet Utility for Queued Inserts and Downloads (FUQID) ===
 +
 
 +
This is a [[Microsoft Windows|Windows]]-only tool, typically used to retrieve large splitfiles and to insert non-Freesite content such as binaries, audio, and archives. It is written in [[Delphi_programming_language|Delphi]], and it is maintained sporadically. It is generally regarded as an excellent complement to either FIW or Fishtools.
 +
 
 +
=== FCPTools ===
 +
 
 +
The [http://freenetproject.org/index.php?page=fcptools FCPTools] are command-line driven programs for inserting and retrieving files with Freenet. Included separately is FCPLib, the Freenet Client Protocol Library. The FCPTools are linked against FCPLib and serve as nice examples for using the library in Freenet client programs.
 +
 
 +
[http://freenetproject.org/index.php?page=FCPlib FCPLib] (Freenet Client Protocol Library) aims to be a [[Cross-platform|platform independent]] but natively [[Compiler|compiled]] set of [[C programming language|C]]-based functions for storing and retrieving information to and from Freenet. There are routines for storing documents to Freenet from the local disk, and other routines for moving data in memory to and from Freenet.
 +
 
 +
Everything is released under the [[GNU]] [[General Public License]].
 +
 
 +
FCPLib is now routinely compiled on the following platforms: [[Microsoft Windows]] (NT/2K/XP), [[Debian]]  [[GNU/Linux]], [[BSD]], [[Solaris Operating Environment|Solaris]], and [[Mac OS X]].
 +
 
 +
=== Freenet Tools ===
 +
 
 +
The Freenet Tools perform roughly the same tasks as FCPTools, however it does not include a client library for use in other projects. It is written in [[ANSI C]], and only runs under [[Unix-like|*nix]] currently.
 +
 
 +
=== Frost ===
 +
: Main article: [[Frost]]
 +
[http://jtcfrost.sourceforge.net Frost] is a well-maintained and popular message board system for Freenet. It uses a [[web of trust]] concept as well as public and private keys to prevent excess [[Spam (electronic)|spam]]. It is very popular in the area of [[file sharing]] and is the most widely used Freenet messaging application. For a long time many people preferred Freenet Message Board (FMB) but it has fallen into disuse. It is written in [[Java programming language|Java]] and therefore works on any platform where a [[Java virtual machine|JVM]] is available, such as [[Microsoft Windows|Windows]], [[Mac OS X]], [[Linux]] and other [[operating systems]].
 +
 
 +
=== Freenet Message Board (FMB) ===
 +
 
 +
The Freenet Message Board is the most branched message board software for Freenet ever coded. It is written in [[Java programming language|Java]], and the original author does not maintain it. However, the community continues to provide several branches which are generally up to date. It works on both [[Unix-like|*nix]] and [[Microsoft Windows|Windows]].
 +
 
 +
==See also==
 +
* [[ANts_P2P]]
 +
* [[Crypto-anarchism]]
 +
* [[Cypherpunk]]
 +
* [[Anonymous P2P]]
 +
* [[Friend-to-friend]] networks
 +
* [[Entropy (anonymous data store)|Entropy]]
 +
 
 +
==External links==
 +
 
 +
* http://freenetproject.org/
 +
* http://www.freenethelp.org/
 +
* http://freenet-china.org/
 +
* [http://wikiuniverse.com/freenet/ wiki devoted to freenet, suitable for technical discussions/content]
 +
* [http://locut.us/~ian/blog/ The blog of Ian Clarke, the founder of Freenet]
 +
* [http://www.openp2p.com/pub/a/p2p/2000/11/21/freenetcontent.html An analysis of the types of files contained in Freenet]
 +
* [http://news.com.com/2010-1027_3-1023325.html?tag=fd_nc_1 An online debate between Ian Clarke, Freenet's creator, and Matt Oppenheim, the RIAA's senior vice president of business and legal affairs]
 +
 
 +
{{anonymity}}
 +
 
 +
<!-- categories -->
 +
[[Category:Free software]]
 +
[[Category:File sharing networks]]
 +
[[Category:Cryptographic software]]
 +
[[Category:Anonymous networks]]
 +
[[Category:Freenet|*]]

Latest revision as of 08:49, 10 November 2007

This article is inacurate in many places. It needs to be changed.

Freenet is a decentralized censorship-resistant peer-to-peer distributed data store. Freenet works by pooling the contributed bandwidth and storage space of member computers to allow users to anonymously publish or retrieve various kinds of information. Freenet uses a kind of key based routing similar to a distributed hash table to locate peers' data.

Freenet is currently under development, and a version 1.0 has not yet been released. Freenet is considered by many to be fundamentally different from other peer-to-peer networks; it is more difficult to use, slower, and does not have integrated search functionality. According to the Freenet Project group, such tradeoffs are expected since Freenet's primary goals are neither ease-of-use, nor performance. Unlike other peer-to-peer networks, Freenet is primarily intended to combat censorship and allow people to communicate with near-total anonymity.

Purpose

Although many nations censor communications to different extents, they all share one commonality in that a body must decide what information to censor and what information to allow. What may be acceptable to one group of people may be considered offensive or even dangerous to another. Freenet is a network which, putatively, removes the possibility of any group imposing their beliefs or values on any other. In essence nobody is allowed to decide what is acceptable for anybody else. Tolerance for each others' values is encouraged and failing that, the user is asked to turn a blind eye to content which opposes his or her views.

Technical design

The type of network routing method Freenet uses is key based routing. While the idea emerged independently, Freenet's routing algorithm is similar to that employed by distributed hash tables (DHTs). The main differences are that Freenet nodes do not have fixed specialisations, and the routing algorithm is heuristic in nature. Therefore, it does not guarantee that it will find a given piece of data. Freenet can also be viewed as a small world network.

The Freenet file sharing network is designed to be highly survivable, with all internal processes completely anonymized and decentralized across the network. The system has no central servers, is peer-to-peer, and is not subject to the control of any one individual or organization. Even the designers of Freenet do not have any control over the overall system. The system is designed so that information stored in the system is encrypted and replicated across a large number of continuously-changing anonymized computers around the world. It is extremely difficult for an attacker to find out which participants are hosting a given file, since the contents of each file are encrypted, and can also be broken into sections that are distributed over many different computers. Even the participants themselves don't know what they are storing.

The end goal of the Freenet network is to store documents and allow them to be retrieved later by an associated key, as is now possible with protocols such as HTTP. The network is implemented as a number of nodes that pass messages among themselves peer-to-peer. Typically, a host computer on the network will run the software that acts as a node, and it will connect to other hosts running that same software to form a large distributed network of peer nodes. Certain nodes will be end user nodes, from which documents will be requested and presented to the human user. But these nodes communicate with each other and with intermediate routing nodes identically—there are no dedicated "clients" or "servers" on the network.

The Freenet protocol is intended to be implemented on a network with a complex network topology, much like the Internet (Internet Protocol). Each node knows only about some number of other nodes that it can reach directly (its conceptual "neighbors"), but any node can be a neighbor to any other; there is no hierarchy or other structure. Each document (or other message such as a document request) in Freenet is routed through the network by passing from neighbor to neighbor until reaching its destination. As each node passes a document to its neighbor, it does not know or care whether its neighbor is just another routing node forwarding information on behalf of another, whether it is the source of the document being passed, or whether it is a user node that will present the document to an end user. This is intentional, so that anonymity of both users and publishers can be protected.

Each node maintains a data store containing documents associated with keys, and a routing table associating nodes with records of their performance in retrieving different keys.

To find a document in the network given a key, a user sends a message to a node (probably one running on the same machine as the client program) requesting the document, providing it with the key. If the document is not found in the local data store, the node then finds the node in its routing table that it thinks will be able to locate the key most quickly, and forwards the request to that node, remembering that it has done so. Note that this is a change from the behavior of earlier versions of Freenet nodes: it represents the "Next Generation Routing" protocol. The old behavior was to remember which keys were retrieved from what nodes, and to route based on which node gave us the key closest to the one we were looking for. The effect is largely the same, but NGR, as it is called, should result in better overall performance.

The node to which the request was forwarded repeats the process until either the key is found or the request passes through a set maximum of nodes, known as the "Hops To Live" value. Along the route, if a node is visited more than once (and it will know this because it remembered forwarding the request the first time) then that node cuts off the loop by sending a message to the node that sent it the second request telling it to try the next-best choice, then the next-next-best, and so on.

Eventually, either the document is found or the hop limit is exceeded. The terminal node sends a reply that works its way back to the originator along the route specified by the intermediate nodes' records of pending requests. The intermediate nodes may choose to cache the document along the way. Besides saving bandwidth, this also makes documents harder to censor as there is no one "source node."

Essentially, the same path-finding process is used to insert a document into the network: a request for the nonexistent document is made, and once it fails, the document is sent along the same path as the request. This insures that documents are inserted into the network in the same place as requests will look for it. If the initial request doesn't fail, then the data already existed, and the insert "collides."

Initially, each node has no information about the performance of the other nodes it knows about. This means that routing of requests will be essentially random. But since different nodes have different randomness, they will disagree about where to send a request, given a key. So the data in a newly-started Freenet will therefore be distributed somewhat randomly.

As more documents are inserted by the same node, they will begin to cluster with data items whose keys are similar, because the same routing rules are used for all of them. More importantly, as data items and requests from different nodes "cross paths", they will begin to share clustering information as well.

The result is that the network will self-organize into a distributed, clustered structure where nodes tend to hold data items that are close together in key space. There will probably be multiple such clusters throughout the network, any given document being replicated numerous times, depending on how much it is used. This is a kind of "spontaneous symmetry breaking", in which an initially symmetric state (all nodes being the same, with random initial keys for each other) leads to a highly asymmetric situation, with nodes coming to specialize in data that has closely related keys.

There are forces which tend to cause clustering (shared closeness data spreads throughout the network), and forces that tend to break up clusters (local caching of commonly used data). These forces will be different depending on how often data is used, so that seldom-used data will tend to be on just a few nodes which specialize in providing that data, and frequently used items will be spread widely throughout the network. This automatic mirroring counteracts the times when web traffic becomes overloaded, and due to a mature network's intelligent routing a network of size n should only require log(n) time to retrieve any given document. Freenet does not employ broadcast searches as used by Gnutella and other similar file sharing protocols.

One thing to keep in mind is that keys are hashes, hence there is no notion of semantic closeness when speaking of key closeness. Therefore there will be no correlation between key closeness and similar popularity of data as there might be if keys did exhibit some semantic meaning, thus avoiding bottlenecks caused by popular subjects.

There are two main varieties of keys in use on Freenet, the Content Hash Key (CHK) and the Signed Subspace Key (SSK).

A CHK is an SHA-1 hash of a document and thus a node can check that the document returned is correct by hashing it and checking the digest against the key. This key contains the meat of the data on freenet. It carries all the binary data building blocks for the content to be delivered to the client for reassembly and decryption. The CHK is unique by nature and provides tamperproof content. A hostile node altering the data under a CHK will immediately be detected by the next node or the client. CHKs also reduce the redundancy of data since the same data will have the same CHK.

SSKs are based on public-key cryptography. Currently Freenet uses the DSA system as its public key infrastructure. Documents inserted under SSKs are signed by the inserter, and this signature can be verified by every node to ensure that the data is not tampered with. SSKs can be used to establish a verifiable pseudonymous identity on Freenet, and allow for documents to be updated securely by the person who inserted them. A subtype of the SSK is the Keyword Signed Key, or KSK, in which the key pair is generated in a standard way from a simple human-readable string. Inserting a document using a KSK allows the document to be retrieved and decrypted if and only if the requester knows the human-readable string; this allows for more convenient (but less secure) URIs for users to refer to.

Scalability

A P2P network is said to be scalable if the performance of the network does not deteriorate even for very large network sizes. The scalability of Freenet is being evaluated, but similar architectures have been shown to scale logarithmically [1].

History

Freenet is an enhanced open source implementation of the system described by Ian Clarke's July 1999 paper "A distributed decentralized information storage and retrieval system", written while Clarke was a student at the University of Edinburgh. Shortly after the publication of this paper, Clarke and a small number of volunteers began work on what became Freenet. By March 2000 version 0.1 of Freenet was ready for release. Since March 2000 Freenet has been extensively reported on in the press, albeit primarily due to its implications for copyright rather than for its wider aim of freedom of communication.

Freenet has been developed via a collaborative, open source, methodology. Clarke, originally from Ireland, worked with individuals from many other countries, in a distributed manner utilizing the Internet. Not only is Freenet itself distributed, decentralized Internet software, but the method used to develop it is also distributed and decentralized.

Reports of Freenet's use in authoritarian nations is difficult to track due to the very nature of Freenet's goals. One group, Freenet-China, has translated the Freenet software to Chinese and is distributing it within China on CD and floppy disk.

According to Citeseer, Ian Clarke's "Freenet: A Distributed Anonymous Information Storage and Retrieval System" was the most cited computer science paper of 2000.

An analysis[2] of Freenet files conducted in the year 2000 claims that the top 3 types of files contained in Freenet were text (37%), audio (21%), and images (14%). 59% of all the text files were drug-related, 71% of all audio files were rock music, and 89% of all images were pornographic. It is important to note the fundamental design of Freenet makes accurate analysis of its content difficult. This analysis was done several years ago from within the United States, and the network has been vastly changed and expanded since it was published.

The program is currently undergoing a massive re-write, which changes the fundamental way the routing takes place, deviating massively from Ian's original paper. The project is attempting to model a series of linked Darknets, to emulate the larger small world effect. This is an attempt to eliminate the scaling problems which have plagued the project, and to improve anonymity.

There were discussions to move the project to the i2p network, but these did not pan out, due to immaturity of the i2p code, and doubts about their security model.

The current development version (0.7) is considered a complete re-engineering, and a complete re-write.

Controversy

The same technology which allows the oppressed to communicate with a large group, without either the publisher or the readers' identities being revealed, can also allow controversial information such as child pornography to be made available to anyone. Freenet's founders believe that only with true anonymity comes true freedom of speech, and that what they view as the beneficial uses of Freenet outweigh its negative uses. However, due to the nature of Freenet a typical user may unknowingly host this sort of information, which may potentially make them subject to severe civil and criminal penalties. Freenet attempts to prevent this through "plausible deniability", preventing the user himself from knowing what's on his own node and making it difficult to determine if a piece of information is in any given node without causing the distribution of that piece of information throughout the network to change in the process. No court cases have tested any of this to date.

Some anonymous friend-to-friend (F2F) networks do allow you to control what kind of files your friends exchange with your node in order to stop them from exchanging files you disapprove of. But Freenet's "deniability" defence wouldn't apply to users of these systems.

However F2F prevents random people from proving that your IP address can effectively be used to get some controversial files. Freenet does not offer this protection because for efficiency reasons (path shortening) some random nodes are allowed to connect directly to your node, thus exchanging files faster, but thus knowing your IP and thus being able to prove that specific files can be gotten from your computer. However, due to Freenet's "plausible deniability" and the way in which Freenet redistributes files among nodes, one cannot prove that those files were placed there by the node owner or that the node owner knows what they are.

Ways to view a freesite

A freesite (which is a commonly accepted name for a site on Freenet) can be set up in one of the following ways:

  1. Installing one's own node. It must be noted that since Freenet is written in java one must have Java Runtime Environment installed prior to the installation. Also Freenet must use a portion of the hard drive for datastore to function propperly.
  2. Viewing throuth the open remote fproxy. Fproxy can be set up in such a way as to allow the viewing of freesites from the different computer. The downfall of viewing of freesites this way that it compromises anonymity.

Setting up an open fproxy

First it must be noted that setting up an open fproxy may be against the rules of the ISP (when it is disallowed to run any servers or file sharing applications) or even illegal in some countries (where transmission of banned material is illegal whether or not the party performing the transmission is aware of the content).

To set up an open fproxy so that sertain internet users are allowed to view the freesites through your node one must create a web tunnel that reads from the local fproxy. The port to be read is shown in freenet.conf

# The port to listen for local FCP (Freenet Client Protocol) connections on. XXXX represents four digit port number.
clientPort=XXXX

If the web server running the tunnel is set up on the machine other than the one that is running a freenode, the refference to that machine must be added in the following place in freenet.conf

# A comma-separated list of hosts that may connect to the FCP port
# (clientPort).  If left blank, only the localhost will be allowed. If you set this, make sure
localhost is included in the list or access won't be allowed from the local machine. # May be given as IP addresses or host names. fcpHosts=127.0.0.1,localhost,domainname.org

Here is the piece of code in Java that will read the content of the freesite and output it to the person requesting it (note this is not the whole program):

// assuming that the node runs on the same machine and listening to port 1234
// this will not parse the links to be linkable from your tunnel, nor will it display images propperly
// written by VolodyA! V Anarhist, public domain (since there ain't nothing interesting here)
String sskString = request.getParameter("ssk");

if(sskString==null)// || urlString.length()==0)
{
   out.println("<html><body>");
   out.println("<form><input name=\"url\" type=\"text\" value=\"\"><input type=\"submit\"></form>");
   out.println("</body></html>");

   out.close();
   return;
}

sskString = java.net.URLDecoder.decode(sskString, "UTF-8");

URL url = new URL("http://127.0.0.1:1234/" + sskString);

String          line = null;
URLConnection   conn = null;
BufferedReader  webContent = null;

try {
   conn = url.openConnection();
   conn.connect();
   while ((line = webContent.readLine() ) != null) // while there is content coming in
   {
      out.println(line);
   }
   webContent.close();
}
catch (Exception ex) {
   ex.printStackTrace();
}
finally {
   try {
      webContent.close();
   }
   catch (Exception ex) {
      ex.printStackTrace();
   }
}
out.close();


See also: Freenet help


Related tools

Freesite Insertion Wizard (FIW)

FIW is one of the most popular of all the Freenet tools. It is currently the best maintained insertion tool for freesites. It is written in Java and provides both a terminal and GUI interface. It supports the latest Freenet technologies such as containers as well.

Fishtools

Another extremely popular tool for inserting freesites. However, due to an argument, its main developer has broken off with the Freenet community, and it is no longer maintained. It is written in Python and it is still widely used and fairly up to date.

Freenet Utility for Queued Inserts and Downloads (FUQID)

This is a Windows-only tool, typically used to retrieve large splitfiles and to insert non-Freesite content such as binaries, audio, and archives. It is written in Delphi, and it is maintained sporadically. It is generally regarded as an excellent complement to either FIW or Fishtools.

FCPTools

The FCPTools are command-line driven programs for inserting and retrieving files with Freenet. Included separately is FCPLib, the Freenet Client Protocol Library. The FCPTools are linked against FCPLib and serve as nice examples for using the library in Freenet client programs.

FCPLib (Freenet Client Protocol Library) aims to be a platform independent but natively compiled set of C-based functions for storing and retrieving information to and from Freenet. There are routines for storing documents to Freenet from the local disk, and other routines for moving data in memory to and from Freenet.

Everything is released under the GNU General Public License.

FCPLib is now routinely compiled on the following platforms: Microsoft Windows (NT/2K/XP), Debian GNU/Linux, BSD, Solaris, and Mac OS X.

Freenet Tools

The Freenet Tools perform roughly the same tasks as FCPTools, however it does not include a client library for use in other projects. It is written in ANSI C, and only runs under *nix currently.

Frost

Main article: Frost

Frost is a well-maintained and popular message board system for Freenet. It uses a web of trust concept as well as public and private keys to prevent excess spam. It is very popular in the area of file sharing and is the most widely used Freenet messaging application. For a long time many people preferred Freenet Message Board (FMB) but it has fallen into disuse. It is written in Java and therefore works on any platform where a JVM is available, such as Windows, Mac OS X, Linux and other operating systems.

Freenet Message Board (FMB)

The Freenet Message Board is the most branched message board software for Freenet ever coded. It is written in Java, and the original author does not maintain it. However, the community continues to provide several branches which are generally up to date. It works on both *nix and Windows.

See also

External links

anonymity
anonymity | anonymous web surfing | anonymous e-mail | anonymous usenet posting | proxy server
Anonymous networks: Freenet | I2P | Tor | Entropy | garlic routing | onion routing
Related subjects: outing