En la publicación anterior se han indicado los conceptos básicos introductorios para manejar un nodo FreeNet desde linea de comandos, en esta ocasión se explicarán los principales comandos para la interacción entre el nodo local y la red de FreeNet desde TCMI.

INTERACTUADO CON FICHEROS

Los comandos que se enseñan a continuación son interesantes en el sentido de que permiten subir contenidos a FreeNet, crear y administrar claves. A continuación se indican dichos comandos y su uso:
PUTFILE
Sube un fichero que se encuentra ubicado en el sistema de ficheros local a FreeNet.

TMCI> PUTFILE:/home/adastra/file.txt
Expected hashes
Compressed data: codec=-1, origSize=45, compressedSize=45
Completed 0% 0/1 (failed 0, fatally 0, total 1, minSuccessFetch 1)
Completed 0% 0/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
Completed 0% 0/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)  (finalized total)
Completed 50% 1/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)  (finalized total)
Completed 100% 2/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)  (finalized total)
Attempting to read file /home/adastra/file.txt using MIME type: text/plain
URI: CHK@6xW-CwEp5uSpsb7u7pqlQJpfDORfWo5hLlV8pAc6e38,cKBwXQ5ug0sIgPeZUA0O9jv7r8l6NvY5ut0Et4S-zRw,AAIC–8/file.txt
Upload rate: 0.10816709653072065 bytes / second

 

GET
Permite obtener el contenido de una clave FreeNet determinad, en el caso anterior, cuando se ha utilizado el comando PUTFILE el retorno de dicho comando ha sido una clave CHK para que posteriormente pueda ser consultada. Tomando como base dicha clave se ejecuta el siguiente comando

GET:CHK@6xW-CwEp5uSpsb7u7pqlQJpfDORfWo5hLlV8pAc6e38,cKBwXQ5ug0sIgPeZUA0O9jv7r8l6NvY5ut0Et4S-zRw,AAIC–8/file.txt
Completed 0% 0/1 (failed 0, fatally 0, total 1, minSuccessFetch 0)
Completed 100% 1/1 (failed 0, fatally 0, total 1, minSuccessFetch 0)
Expected hashes
Expected MIME type: text/plain
Completed 50% 1/2 (failed 0, fatally 0, total 2, minSuccessFetch 0)
Completed 50% 1/2 (failed 0, fatally 0, total 2, minSuccessFetch 0)  (finalized total)
CompatibilityMode between 5 and 5
Completed 100% 2/2 (failed 0, fatally 0, total 2, minSuccessFetch 0)  (finalized total)
Content MIME type: text/plainData:
text file created to test the TCMI Client…

Como puede apreciarse, se ha obtenido correctamente el contenido del fichero y su correspondiente tipo MIME (en este caso es text/plain)

GETCHKFILE
Es similar al comando PUTFILE en el sentido de que permite conocer cual será la clave FreeNet valida para un fichero localizado en el sistema de ficheros, sin embargo a diferencia de PUTFILE, este comando solamente obtiene la clave que se asignaría al fichero en el caso de que se subiera a la red de FreeNet pero no sube el fichero.

TMCI> GETCHKFILE:/home/adastra/tor_logfile
Expected hashes
Compressed data: codec=-1, origSize=5208, compressedSize=5208
Completed 0% 0/1 (failed 0, fatally 0, total 1, minSuccessFetch 1)
Completed 0% 0/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
Completed 50% 1/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
Completed 100% 2/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
Completed 100% 2/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)  (finalized total)
Attempting to read file /home/adastra/tor_logfile using MIME type: application/octet-stream
URI: CHK@o8gZxWozuC1e4~lHIjpmKAzT4s9-XNPAs9JWlOa4fik,cnOMgmMIhWt3QUU7sEKxii6VauKoTIzHxrFMFkfObQ0,AAIC–8/tor_logfile
Upload rate: 473454.54545454547 bytes / second

DUMP
Este comando funciona igual que el comando GET, sin embargo permite recuperar información adicional sobre el fichero y los meta-datos de la clave especificada.

TCMI>DUMP:CHK@6xW-CwEp5uSpsb7u7pqlQJpfDORfWo5hLlV8pAc6e38,cKBwXQ5ug0sIgPeZUA0O9jv7r8l6NvY5ut0Et4S-zRw,AAIC–8/file.txt
Completed 0% 0/1 (failed 0, fatally 0, total 1, minSuccessFetch 0)
Completed 100% 1/1 (failed 0, fatally 0, total 1, minSuccessFetch 0)
Expected hashes
Expected MIME type: text/plain
Completed 50% 1/2 (failed 0, fatally 0, total 2, minSuccessFetch 0)
Completed 50% 1/2 (failed 0, fatally 0, total 2, minSuccessFetch 0)  (finalized total)
CompatibilityMode between 5 and 5
Completed 100% 2/2 (failed 0, fatally 0, total 2, minSuccessFetch 0)  (finalized total)
Content MIME type: text/plainData:
text file created to test the TCMI Client…

PUTDIR
Este comando permite subir un directorio entero con sus correspondientes contenidos a la red de FreeNet, funciona igual que el comando PUTFILE con la diferencia de que este comando sube todos los ficheros (y subdirectorios) contenidos en el directorio especificado.

TMCI> PUTDIR:/home/adastra/FreeNetDir
Expected hashes
Compressed data: codec=-1, origSize=10240, compressedSize=10240
Completed 0% 0/1 (failed 0, fatally 0, total 1, minSuccessFetch 1)
Completed 0% 0/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
Completed 50% 1/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
Completed 100% 2/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
=======================================================URI: CHK@4Blu3Wh8uatLfvDEaPx5q63z7CCWqEg3CbbWpA7OUgQ,iLoqee8BJsLSd3-DMoWeY6UiJO0aDeBxICZKg1X1yyY,AAIC–8/=======================================================

GETCHKDIR
Funciona igual que el comando GETCHKFILE, sin embargo retorna la clave que retornaría FreeNet para un directorio insertado en la red, del mismo modo que GETCHKFILE no sube el directorio a la red, solamente calcula la clave CHK que se le asignaría si este directorio se subiera.

TCMI>GETCHKDIR:/home/adastra/FreeNetDir
Expected hashes
Compressed data: codec=-1, origSize=10240, compressedSize=10240
Completed 0% 0/1 (failed 0, fatally 0, total 1, minSuccessFetch 1)
Completed 0% 0/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
Completed 50% 1/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
Completed 100% 2/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
=======================================================URI: CHK@4Blu3Wh8uatLfvDEaPx5q63z7CCWqEg3CbbWpA7OUgQ,iLoqee8BJsLSd3-DMoWeY6UiJO0aDeBxICZKg1X1yyY,AAIC–8/=======================================================

INTERACTUANDO CON CLAVES

En TCMI existen comandos que permiten crear claves validas para FreeNet que pueden ser utilizadas posteriormente para referenciar un documento o directorio (claves CHK) como se ha visto anteriormente. También cuenta con algunos comandos que permiten interactuar directamente con claves SSK, que como se ha explicado en anteriores publicaciones de esta serie, son claves que se utilizan sobre recursos que se actualizan con bastante frecuencia, tales como blogs, sitios de noticias y en general diferentes tipos de sitios web. Los comandos disponibles en TCMI para interactuar con dichas claves son los siguientes:

MAKESSK
Este comando, tal como su nombre lo indica, permite la creación de un nuevo par de claves SSK las cuales pueden ser utilizadas posteriormente para la creación de un nuevo sitio web tal y como se verá unas lineas más adelante.

TMCI> MAKESSK
Insert URI: SSK@AJ51ZR76XmLjvex1mY-07f1V5UAVUl5YtLd-plrsYCY6,5-ntAo5GYvbEEM1k97NdgkWPuznT-tfJdwAVODlmc-8,AQECAAE/
Request URI: SSK@Xt7qGKwgSJ5vFA4nS19i537nStzvLc5Qoj17cqAEAGI,5-ntAo5GYvbEEM1k97NdgkWPuznT-tfJdwAVODlmc-8,AQACAAE/
Note that you MUST add a filename to the end of the above URLs e.g.:
SSK@AJ51ZR76XmLjvex1mY-07f1V5UAVUl5YtLd-plrsYCY6,5-ntAo5GYvbEEM1k97NdgkWPuznT-tfJdwAVODlmc-8,AQECAAE/testsite
Normally you will then do PUTSSKDIR:<insert URI>#<directory to upload>, for example:
PUTSSKDIR:SSK@AJ51ZR76XmLjvex1mY-07f1V5UAVUl5YtLd-plrsYCY6,5-ntAo5GYvbEEM1k97NdgkWPuznT-tfJdwAVODlmc-8,AQECAAE/testsite#directoryToUpload/
This will then produce a manifest site containing all the files, the default document can be accessed at
SSK@Xt7qGKwgSJ5vFA4nS19i537nStzvLc5Qoj17cqAEAGI,5-ntAo5GYvbEEM1k97NdgkWPuznT-tfJdwAVODlmc-8,AQACAAE/testsite/

Como puede apreciarse, la ejecución del comando MAKESSK ha dado como resultado la clave SSK lista para ser utilizada, además de otras indicaciones útiles de como puede ser empleada para crear un sitio web.
Es importante anotar que el comando ha dado como resultado dos claves SSK (clave publica y privada), las cuales corresponden a la utilizada para subir los ficheros que harán parte del sitio web y la clave que debe de ser entregada a los usuarios del mismo para consultarlo desde un navegador web utilizando FProxy. La primera corresponde a la clave privada y debe permanecer secreta y solamente la debe conocer el administrador del sitio, mientras la segunda es la clave pública que le permitirá a otros usuarios acceder al servicio.

PUTSSKDIR
Este comando permite subir directorios a una clave SSK previamente creada. Utiliza como parámetros, la clave privada SSK y el directorio que se desea subir, el uso de este comando se indica a continuación

TMCI> PUTSSKDIR:SSK@AJ51ZR76XmLjvex1mY-07f1V5UAVUl5YtLd-plrsYCY6,5-ntAo5GYvbEEM1k97NdgkWPuznT-tfJdwAVODlmc-8,AQECAAE/AdastraTestTCMI#/home/adastra/FreeNetDir/
Started compression attempt with GZIP
Expected hashes
Compressed data: codec=0, origSize=10240, compressedSize=214
Completed 0% 0/1 (failed 0, fatally 0, total 1, minSuccessFetch 1)
Completed 0% 0/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
Completed 50% 1/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
Completed 100% 2/2 (failed 0, fatally 0, total 2, minSuccessFetch 2)
=======================================================URI: SSK@Xt7qGKwgSJ5vFA4nS19i537nStzvLc5Qoj17cqAEAGI,5-ntAo5GYvbEEM1k97NdgkWPuznT-tfJdwAVODlmc-8,AQACAAE/AdastraTestTCMI/=======================================================

Como se puede apreciar el comando tiene una sintaxis claramente definida y consta de los siguientes elementos:
PUTSSKDIR:<CLAVE_SSK>/<NOMBRE_SITIO>#DIRECTORIO_SUBIR
El resultado de la operación anterior, es la clave SSK publica con el sitio web para que otros usuarios puedan consultarla desde FProxy. Una forma cómoda y rápida de consultar dicha clave desde FProxy es utilizando la utilidad “Key Explorer” que se encuentra incluida en el menú “Key Utils → Site Explorer” o en “Key Utils → Key Explorer”

Los comandos que se han indicado en esta entrada y en la anterior, le permitirán al usuario manejar un nodo FreeNet desde cualquier interprete de comandos (como por ejemplo Bash, KSH, etc.) Lo cual es una excelente alternativa para aquellos que cuentan con máquinas que están “puestas” como servidores y que no tienen ningún  gestor de ventanas como GNOME o KDE. Desde luego se recomienda su uso ya que también puede ser muy útil para la interacción con aplicaciones externas que deseen aprovechar las potencialidades de FreeNet.