|
Questo documento si riferisce alla versione 0.2 di Freenet.
Indice
-
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
oc:\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.tgzCostruisci il server e la console del client Java (il path per
javac
deve essere correttamente indicato):cd /tmp/Freenet/scripts
./build.shSe 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 GUIAdesso 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 confreenet_server
efreenet_client
.cd scripts
./install.shDopo 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.batSe lo desideri, costruisci a parte il client GUI:
cd c:\Temp\Freenet\client
set CLASSPATH=C:\temp
javac GUIInstalla i file
.class
:cd c:\Temp\Freenet\scripts
install.batAncora, il client GUI dev' essere installato separatamente:
cd c:\Temp\Freenet\client
copy *.class c:\freenet\client4. 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
(ofserve.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 comandokillall java
; in alternativa dorai controllare l' ID del processo utilizzandops
.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
ofreenet_request
, rispettivamente. Questi comandi sarannofinsert
efrequest
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 digitandoperl liberator.pl
nella directory Liberator.4.5. FCRC
FCRC è un gateway Freenet->HTTP. Nella distribuzione si trova in
contrib/FCRC
. Copia semplicementefcrc.pl
nella tua directorycgi-bin
ed avrai il tuo gateway pronto. Potresti dover modificare qualche settaggio nel programmafcrc.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 incontrib/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 intest5.sh
, i server Freenet sono caricati con i parametriinformRead no -informWrite no
. Questi parametri dicono ai server Freenet di non comunicare la loro esistenza ahttp://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 filenodes.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 comeKey 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 comeFreenet/{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 tipoThe 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
einformWrite=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.)