Le prime tre parti di questa miniserie su Freenet sono state dedicate ad un’ introduzione tecnico-storica, ad una dettagliata (anche troppo) descrizione dell’installazione ed una puntuale descrizione di Fproxy , l’interfaccia di base per gli utenti Freenet. I 13 non superstiziosi frequentatori di queste puntate, oltre ad aver dato prova di grande pazienza ed interesse, dovrebbero a questo punto aver utilizzato Freenet per qualche navigazione e/o recupero di informazioni; se qualcuno si fosse portato avanti nel programma, potrebbe magari commentare la sua esperienza nell’apposito forum di questo articolo.
Oggi ci occuperemo della più importante operazione “editoriale” che si puo’ compiere su Freenet; la pubblicazione e l’aggiornamento di un sito (in terminologia Freenet un freesite).
Prima pero’ è necessaria una pillola di teoria. Come accennato nella prima puntata, Freenet memorizza le informazioni, eventualmente spezzettando i file più grandi in parti ridondate, in atomi di informazione crittografata chiamati (con infelice omonimia) “Chiavi”. Per mantenere il più possibile il carattere pratico di questa miniserie su Freenet non entrerò volutamente nei dettagli crittografici del funzionamento delle Chiavi, rimandando chi fosse interessato ad approfondire la questione alla consultazione della documentazione sul sito del Progetto Freenet .
Le chiavi Freenet esistono in vari tipi, le chiavi tipo CHK che contengono i dati crittografati, le chiavi KSK che permettono di dare un nome mnemonico alle chiavi CHK (vedetele come un DNS di Freenet), le chiavi SSK che permettono di organizzare una pseudo-struttura di directory nello spazio dei nomi di Freenet, ed infine le chiavi USK, che permettono un aggiornamento (pseudo aggiornamento in realtà – ricordate che su Freenet non si puo’ cancellare niente) delle informazioni come ad esempio i freesite.
Molte di queste Chiavi Freenet posseggono (piu esattamente “sono associate a”) coppie si chiavi (in senso stretto) crittografiche pubblica/privata; in futuro cercherò in maniera consistente di parlare delle Chiavi Freenet usando l’iniziale maiuscola, e di chiavi crittografiche usando l’iniziale minuscola.
Un freesite è un insieme di Chiavi di vari tipologie a cui si accede sempre utilizzando Fproxy tramite una Chiave USK che fa le veci dell’URL della homepage di un normale sito web. Per inserire un freesite si può utilizzare jSite, una delle applicazioni che vi sono già state installate (a meno che non abbiate esplicitamente detto all’installer di non farlo) dall’installer del vostro nodo. Per i vecchi lupi di Freenet sottolineo che la struttura dei freesite da Freenet 0.5 a Freenet 0.7 è completamente diversa e che le applicazione 0.5 come Freenet Insertion Wizard sono ovviamente non utilizzabili.
Come Freenet anche jSite è scritto in Java ed è completamente cross-platform; l’unica differenza tra i vari sistemi operativi è data dal modo di lanciarlo.
Per la solita regola della par condicio oggi tocca a Windows, i cui utenti, dopo aver fatto ovviamente partire il loro nodo Freenet, utilizzeranno la voce del menu Programmi/The Freenet Project chiamata jSite.
Gli utenti GNU/Linux dovranno posizionarsi nella directory Freenet/jSite e dare il comando
java -jar jsite.jar &
per lanciare in background jSite.
Gli utenti MacOSX invece, se vogliono dettagli, dovranno regalarmi un MacBook.
A tutti (viva Java per questo!) si presenterà la finestra di Figura 1, che è l’interfaccia jSite di creazione ed amministrazione dei freesite.
(Figura 1)
Ma non abbiamo dimenticato qualcosa? Ah già, il freesite da inserire!!
Dovete preparare, in una directory che non contenga altro, il vostro primo freesite costituito da un normale sito web statico, cioè senza script od effetti Flash od altro; vanno bene immagini jpeg, file di testo, file HTML, eventualmente organizzati in sottodirectory. Uno dei file nella directory principale dovrà essere la homepage; nel prosieguo ipotizzeremo che si chiami “index.html”.
Un consiglio: non cominciate ad inserire un grosso sito e neppure un sito che si chiami come quello che alla fine vorrete inserire. Armatevi invece di un po’ di pazienza, create o copiate un sito di due paginette, un po’ di testo e due immagini, chiamatelo “prova” ed usate quello per farvi un minimo di esperienza. Inserire un grosso freesite è un processo molto lungo e spesso fallisce per cause non imprevedibili e casuali; ad esempio per l’aggiornamento automatico del software del vostro nodo. Meglio riservare questi sforzi a quando tutto il processo vi sarà familiare.
Bene, per creare un nuovo progetto c’è l’apposito tasto “Add a project” ma jSite ce ne ha già preparato uno dall’originale nome “New Project”; cambiamogli subito nome scrivendo direttamente nella finestrella e stando attenti a non editare o modificare quelle due lunghe sequenze di caratteri apparentemente casuali che compaiono in basso.
Le due sequenze sono (approssimativamente) la coppia di chiavi pubblica e privata che definisce il sito. Per inserirlo o modificarlo sono in-dis-pen-sa-bi-li, quindi alla fine dell’inserimento fatevi una copia del file di configurazione di jSite che le contiene, ed a scanso di equivoci mettetela su un supporto qualsiasi. Ricordate, se perdete la chiave privata di un freesite non sarete più in grado di aggiornarlo.
Inserite nell’apposito campo una breve descrizione del vostro freesite, localizzate con tasto “Browse” la directory che contiene il vostro freesite di prova.
Inserite una stringa che abbia attinenza col nome del sito nel campo “Path”; usate solo lettere e numeri, e niente caratteri speciali o spazi, “prova” andrà benissimo.
La Path è l’ultima parte dell’URI Freenet che svolgerà la funzione di un URL per raggiungere il vostro freesite.
(Figura 2)
A questo punto la maschera dovrebbe apparire simile a quella di Figura 2; un click e vi troverete davanti la maschera di Figura 3, dove in alto trovate l’elenco dei file presenti nella directory del vostro freesite.
(Figura 3)
Se avete seguito le mie raccomandazioni, e non ci sono quindi file estranei nella directory del vostro freesite, vi basterà scorrere la lista, selezionare il file “index.html” e spuntare la casella “Default” per questo file. Cliccate poi su “Insert” ed aspettate il tempo necessario; da un quarto d’ora per un sito di una decina di file fino ad uno-due giorni per un freesite grande, come ad esempio quello del PWS.
Se il processo dovesse fallire, ad esempio perchè la vostra ADSL ha perso qualche colpo, uscite da jSite, rilanciatelo e riprovate; per fortuna tutti i dati del freesite sono a questo punto salvati nel file di configurazione di jSite, e si tratta quindi di una questione di secondi.
In certi casi puo’ essere opportuno riavviare il nodo Freenet ed aspettare qualche minuto per dargli tempo di reinserirsi in Freenet prima di rilanciare jSite.
I più curiosi di voi si chiederanno cosa servano le altre opzioni della maschera di figura 3, in particolare quella dei “MIME Type” e quella marcata “Container”.
La tendina di MIME Type consente di assegnare a mano, file per file, il tipo MIME se questo non fosse rilevato bene automaticamente; normalmente non vi servirà mai.
La tendina “Container” ed i relativi pulsanti attivano invece un’utile caratteristica di Freenet nel caso il vostro freesite sia complesso. Se il vostro sito contiene molti file piccoli e/o comprimibili è possibile definire uno o più file zip, inserirvi dentro alcuni file a vostra scelta, e ridurre così anche di molto il numero totale di Chiavi che costituiscono il vostro sito, velocizzandone inserimento e recupero e migliorandone la sopravvivenza.
Normalmente in un container si inseriscono solo le pagine HTML con eccezione di quella della home (questo per motivi un po’ complessi da spiegare e su cui sorvoliamo). Non è bene che un container sia molto più grande di un centinaio di KB.
Bene, una volta che il vostro freesite sarà stato inserito con successo copiate l’URL relativo nella clipboard con l’apposito tasto di Figura 4 ed incollatelo nella barra degli indirizzi di Fproxy per provare a recuperarlo. Se ne avete la possibilità fatelo anche da un altro nodo, perchè ovviamente il recupero di un freesite dal nodo che l’ha appena inserito è molto più facile che dagli altri nodi di Freenet, e non è quindi un buon indicatore della bontà (chiamata “profondità”) dell’inserimento appena effettuato.
(Figura 4)
Ed infine una dettagliata descrizione delle complesse operazioni necessarie per aggiornare il vostro Freesite
1) modificate i file che formano il freesite
2) inseritelo nuovamente con jSite
Tutto automatico, compreso l’aggiornamento dell’URI del sito, il cui numero finale (versione) verrà automaticamente incrementato di 1. Nel caso che qualcuno richieda un URI di una versione precedente del vostro freesite (fino a 3 indietro) gli verrà proposta automaticamente la versione aggiornata.
Ed anche per oggi è tutto. Chi volesse contattarmi sul tema puo’ usare l’indirizzo marco@freenetproject.org od utilizzare la mail list italiana su Freenet, iscrivendosi qui , ed usandola eventualmente anche per richiedere scambi di descrittori di nodi.
Marco Calamari
Tutte le release di Cassandra Crossing sono disponibili a questo indirizzo