freenet logo

Il progetto Freenet

freenet symbol

--- ricablare Internet ---

navigatore
donazioni
grazie a...
Ospitato da:
SourceForge
&
Dominio donato da:
Edward Alfert
Mousetracker.com

• Questo documento è disponibile in una versione più aggiornata in inglese qui.

Inglese

Questo documento si riferisce alla versione 0.2 di Freenet.

Indice

  • 1. Distribuzione

  • 2. Requisiti

  • 3. Installazione

  • 4. I componenti di Freenet

  • 5. Utilizzare Freenet

  • 6. Risoluzione problemi

    1. Distribuzione

    Dato che Freenet è in una fase di pre-beta, non c'è una distribuzione formale. Si può scaricare l' immagine del CVS che contiene tutti i componenti di Freenet attualmente disponibili. La distribuzione è un singolo file compresso tar. Se lavori su un sistema basato su Windows avrai probabilmente bisogno di un software come WinZip per decomprimere il file.

    2. Requisiti

    2.1. Requisiti Software

    In base a quali componenti decidi di utilizzare, avrai bisogno di uno o più dei seguenti programmi installati e configurati sul tuo sistema:

    • Java Development Kit 1.1 o superiore, o un' implementazione compatibile (disponibile presso http://java.sun.com/) se vuoi usare il server, i client Java a linea di comando, o fproxy.

    • Swing Components (inclusi con il JDK 1.2 e successivi) se vuoi usare il client GUI

    • Perl versione 5.001 o superiore (disponibile su http://www.cpan.org) se vuoi utilizzare il client Liberator o FCRC

    2.2. Requisiti per il funzionamento di un Server Freenet

    I seguenti requisiti hanno valore solo se vuoi utilizzare un vero e proprio Freenet server. Non sono invece necessari se intendi usare uno dei client o per testare/sviluppare su server locali di prova (vedi sezione 5.1).

    • Una connessione permanente ad Internet

    • Un indirizzo IP statico

    • Nessun Firewall o Proxy tra la tua macchina ed Internet

    Una nota sugli IP statici e sulle connessioni permanenti: Puoi costituire un nodo anche se non hai una connessione permanente e/o un IP statico, ma ricorda che un nodo che non sia raggiungibile per la maggior parte del tempo non è di alcuna utilità per Freenet, quindi dovresti configurare un nodo solo se sei connesso per la maggior parte del giorno ed il tuo indirizzo IP non cambia troppo spesso (molti modem via cavo possono essere configurati in questo modo, per esempio). Dato che i nodi archiviano informazioni, i dati memorizzati nel tuo nodo non saranno disponibili se tu non sei connesso.

    2.3. Requisiti per il funzionamento di un Client Freenet

    Anche se Freenet al momento è ancora in una fase di sviluppo e non ci sono molti contenuti disponibili, potresti essere interessato al semplice utilizzo di un client in alternativa ad Internet. Fare questo è possibile senza una connessione permanente o un IP statico, ma il fatto di utilizzare un firewall può porre un problema dato che devi essere in grado di accettare connessioni verso l' interno e verso l' esterno su almeno due porte.

    3. Installazione

    Prima di tutto, devi decomprimere l' immagine del CVS in una directory temporanea/di servizio. Controlla che siano preservati la struttura della directory e i nomi dei file. Di conseguenza, darò per scontato che tu abbia decompattato il tutto in /tmp/Freenet o c:\temp\Freenet, rispettivamente.

    Ora, si devono costruire il server e i client Java. Ci sono degli script sia per ambienti Unix/Linux che per Windows, che utilizzano il compilatore javac.

    In questa terza fase, si devono installare i file .class nella loro destinazione finale.

    Infine, potresti dover modificare il file .freenetrc per realizzare delle modifiche (vedi sezione 4.1 )

    3.1. Installazione in ambiente Unix/Linux

    Decomprimi il file in una directory temporanea:

    cd /tmp
    tar xvzf Freenet-2000xxxx.tgz

    Costruisci il server e la console del client Java (il path per javac deve essere correttamente indicato):

    cd /tmp/Freenet/scripts
    ./build.sh

    Se stai utilizzando kaffe, dovresti invece usare questo script:

    ./kbuild.sh

    Vedi anche: 6.1. Note sull' utilizzo di Freenet con Kaffe

    Se vuoi il client GUI, dovrai costruirlo separatamente:

    cd ..
    export CLASSPATH=/tmp
    make GUI

    Adesso lancia lo script di installazione, che sposta i file .class verso la loro destinazione (ad es. /usr/local/; se non sei il root, potresti dover scegliere un' altra directory) e genera i piccoli script e i le icone dei link con freenet_server e freenet_client.

    cd scripts
    ./install.sh

    Dopo che l'installazione del client GUI è stata fatta da install.sh, devi copiare i file .class separatamente.

    cd ../client
    cp *.class /usr/local/freenet/Freenet/client/

    3.2. Installazione in ambiente Windows

    Decompatta il file in una directory temporanea con WinZip, quindi costruisci i file .class:

    cd c:\temp\freenet\scripts
    build.bat

    Se lo desideri, costruisci a parte il client GUI:

    cd c:\Temp\Freenet\client
    set CLASSPATH=C:\temp
    javac GUI

    Installa i file .class:

    cd c:\Temp\Freenet\scripts
    install.bat

    Ancora, il client GUI dev' essere installato separatamente:

    cd c:\Temp\Freenet\client
    copy *.class c:\freenet\client

    4. I Componenti di Freenet

    4.1. Il Server Freenet

    I server, chiamati anche nodi, sono la parte principale di Freenet. Freenet può esistere solo se ci sono abbastanza persone che mettono in linea un server, quindi noi vogliamo assolutamente incoraggiarti a farlo se ne hai la possibilità. La configurazione del server è contenuta nel file .freenetrc, che contiene vari parametri da settare. Questi settaggi sono illustrati nel file .freenetrc. Inoltre, puoi escludere i parametri di .freenetrc specificandone di diversi all' avvio (es. freenet_server -listenPort 12345)

    Puoi avviare il server con freenet_server (o fserve.bat se lavori sotto Windows). Con Unix/Linux devi terminare il server manualmente se lo vuoi chiudere. Se è l' unico processo java attivo puoi utilizzare il comando killall java; in alternativa dorai controllare l' ID del processo utilizzando ps.

    4.2. Il Client Java

    Il client java è un normale client scritto per il debugging. Per inserire dati, devi specificare la key sotto cui memorizzarlo e il nome del file che contiene i dati (o la dimensione dei dati se sono letti da stdin). Per richiamare i dati devi specificare la key che richiedi e (opzionalmente) il nome del file sotto cui memorizzare i dati richiesti (altrimenti stdout).

    C' è un altro parametro opzionale che è quello degli hops-to-live. Fondamentalmente si tratta del numero dei nodi che la tua operazione attraverserà: per le richieste, il numero dei nodi in cui cercare per ottenere i dati desiderati; per gli inserimenti, il numero di nodi necessari per memorizzare i propri dati. Il valore di default è 5, ma può dipendere dalla tua pazienza e dalle dimensioni del network. http://freenet.sourceforge.net/inform.php ti darà un' idea dell' attuale dimensione del network. A causa della natura rizomatica di Freenet, generalmente avrai solamente bisogno di un HTL che è una piccola frazione del numero totale dei nodi.

    Su piattaforme Unix/Linux, puoi lanciare il client con freenet_insert o freenet_request, rispettivamente. Questi comandi saranno finsert e frequest per gli utenti Windows. Scrivi i comandi senza ulteriori parametri per ottenere le informazioni di utilizzo.

    4.3. Il Client GUI

    Il client GUI non è ancora stato ultimato, ma puoi averne un' anteprima. Per gli utentiUnix/Linux:

    java Freenet.client.GUI (dalla directory /usr/local/freenet)

    Per gli utenti Windows java -classpath c:\temp\freenet Freenet.client.GUI

    4.4. Liberator

    Liberator è un client Freenet scritto in Perl. Nella distribuzione, lo puoi trovare nella directory contrib/Liberator. I suoi parametri sono più o meno gli stessi del client Java.
    Puoi lanciare Liberator digitando perl liberator.pl nella directory Liberator.

    4.5. FCRC

    FCRC è un gateway Freenet->HTTP. Nella distribuzione si trova in contrib/FCRC. Copia semplicemente fcrc.pl nella tua directory cgi-bin ed avrai il tuo gateway pronto. Potresti dover modificare qualche settaggio nel programma fcrc.pl per adattarlo alla configurazione del tuo server web.

    4.5. fproxy

    fproxy è un altro gateway Freenet->HTTP che utilizza un proxy server al posto di un CGI -- utile se non stai utilizzando un server web o non hai accesso a cgi-bin. Nella distribuzione si trova in contrib/fproxy. Vedi il file README per le istruzioni.

    5. Utilizzare Freenet

    Adesso che l' installazione è stata fatta, sei pronto ad entrare nell' Internet del 21mo secolo! Nella sezione che segue, ti fornirò degli esempi che ti mostreranno come sfruttarlo. Se qualcosa non funziona, vai alla sezione risoluzione problemi.

    5.1. Configurazione locale

    La configurazione locale è intesa per tutte le persone che non dispongono di una connessione permanente ad Internet, nè di una tariffa *flat*, ma che sono comunque interessati a testare/sviluppare Freenet . C' è uno script, test5.sh, contenuto nella distribuzione, che aprirà 5 server sulla macchina locale. Nota che in test5.sh, i server Freenet sono caricati con i parametri informRead no -informWrite no. Questi parametri dicono ai server Freenet di non comunicare la loro esistenza a http://freenet.sourceforge.net/inform.php, in cui molti server permanenti sono elencati durante questa fase test di Freenet. Per essere sicuro che i tuoi server Freenet locali si riconoscono l' un l' altro, dovresti copiare il file nodes.config nella tua directory di lavoro prima di caricare i server.

    Quando i server locali sono attivi, puoi controllare se tutto funziona. Crea un file test.txt nella tua directory di lavoro. Inseriremo adesso quel file nel Nodo #1:

    freenet_insert -serverAddress tcp/localhost:10001 -htl 3 my_test_key test.txt

    Se tutto ha funzionato bene, dovresti vedere un output come Data insert -> tcp/127.0.0.1:10001. Adesso testiamo se possiamo riottenere i dati dal nostro nodo Freenet #3:

    freenet_request -serverAddress tcp/localhost:10003 -htl 3 my_test_key result.txt

    Controlla la tua directory di lavoro: adesso dovresti avere un file chiamato result.txt che contiene i dati richiesti.

    Qualcosa non funziona? Consulta la sezione risoluzione problemi.

    5.2. Configurazione in Internet

    Puoi, ovviamente, utilizzare Freenet quando hai una connessione ad Internet (in effetti, Freenet è stata progettata per questo :-)) In questa sezione, do per scontato che tu abbia configurato un nodo locale sulla porta 19114 e che tu l' abbia registrato (-informURL http://freenet.sourceforge.net/inform.php -informWrite yes -informRead yes).

    Adesso inseriremo i dati nel tuo nodo Freenet locale. Crea il file test.txt nella tua directory locale. Adesso possiamo inserire quel file:

    freenet_insert my_test_key test.txt

    Se ti appare una scritta come DataInsert -> tcp/127.0.0.1:10001, allora va tutto bene. Comunque, non ti preoccupare se ti appare invece qualcosa come Key collision, insert again under different key. Molto probabilmente, hai tentato di inserire una key che già esiste in Freenet. Se accade ciò, dovresti usare un' altra key, forse qualcosa come Freenet/{metti qui il tuo nome}/test_key_1.)

    Se hai inserito i dati correttamente, potremo ora verificare se possono ottenuti da altri nodi. Prima dobbiamo determinare l' indirizzo di un server Freenet esistente. Per farlo ci sono due modi diversi. In primo luogo, puoi controllare l' output del tuo nodo locale e forse così potrai ottenere da qui gli indirizzi dei nodi con cui il tuo nodo si è collegato. L' altra possibilità è di consultare la pagina inform.php con un browser web.

    Supponiamo ora che tu abbia ottenuto l' indirizzo e la porta dell' altro server Freenet:

    freenet_request -serverAddress tcp/{indirizzo_nodo_remoto}:{porta_nodo_remoto} my_test_key

    Se è tutto ok, dovresti vedere visualizzato qualcosa come DataReply <- tcp/127.0.0.1:10001. Quindi i dati potranno essere mostrati su schermo o salvati in un file specificato alla linea di comando. Se non riesci a raggiungere il nodo remoto, prova a sceglierne un altro (le informazioni in inform.php non sono sempre aggiornate). Se viene visualizzato un messaggio tipo The key you requested could not be found within HTL hops, devi forse aumentare il valore degli hops-to-live. Forse è una buona idea anche controllare quello che hai digitato per eventuali errori di battitura. Se ancora il problema non è risolto, dovresti leggere la sezione risoluzione problemi.

    6. Risoluzione problemi

    Le hai provate tutte, ma Freenet ancora non funziona? Sei incappato in un errore senza avere la minima idea del perchè? Non ti preoccupare, non è qualcosa di infrequente se si sta lavorando con un progetto ancora in fase embrionale. Ma ci sono delle ottime possibilità che per il tuo problema ci sia una soluzione rapida. In questa sezione, ti darò qualche dritta su come ottenere una soluzione ai tuoi problemi.

    Innanzitutto, LEGGI LE FAQ!. Ci sono alcuni problemi comuni che lì sono trattati. Se questo non basta, dovresti dare un' occhiata agli archivi delle mailing list freenet-chat e freenet-dev. Per vostra comodità, ho zippato gli archivi, li trovate su http://www.i-drive.com/evilchris. Sono sicuro che la maggior parte dei possibili problemi sia già stata discussa in queste liste. Se hai letto tutte le mailing list, e ancora sei senza soluzione, puoi anche postare la tua domanda su freenet-chat. Ma per favore ricorda che la maggior parte delle persone che partecipano alla lista molto occupati con lo sviluppo di Freenet, e non ci sono molte risorse perchè la mailing list funzioni come un *servizio clienti*. Quindi per favore chiedi solo se tutto il resto è stato inutile.

    6.1. Note sull' utilizzo di Freenet con Kaffe

    L' attuale versione alpha di Freenet è compatibile con Kaffe, un' eccellente implementazione Free di una Java virtual machine e delle class libraries. Ci sono comunque dei piccoli problemi che speriamo vengano risolti prima possibile:

    • Kaffe al momento ha dei problemi a leggere e scrivere gli indirizzi dei nodi nella pagina web utilizzata per inizializzare le informazioni degli altri nodi del network. Questa funzione è solo una procedura temporanea utilizzata come semplice bootstrap o IV finchè il network è ancora piccolo, ed è opzionale. Puoi disabilitarla settando informRead=no e informWrite=no nel .freenetrc file o da linea di comando.

      Dato che non può ottenere nessun indirizzo di nodi se non il linea, dovrai inizializzare il tuo nodo manualmente con l' indirizzo di almeno un altro nodo. Per fare ciò, usa l' indirizzo di qualcuno che sai avere un nodo sempre attivo, o copia gli indirizzi presenti al momento su questa pagina, e ponili in un file chiamato nodes.config nella directory di lavoro del tuo nodo.

    • Kaffe ha anche dei problemi a leggere la cache memorizzata su disco quando viene riavviato. Questo significa che dovrai reinizializzare il nodo con la suddetta procedura ogni volta che lo si lancia. (Nota anche che Kaffe andrà in crash se proverà a leggere la cache salvata da un' altra java VM, quindi se stai passando da java a Kaffe, pulisci la tua .freenet/ subdirectory.)

Il materiale contenuto in questo sito è distribuito sotto la Gnu Documentation License , disponibile anche qui in italiano.