Capítulos 1 y 2: “LN History, Introduction” & “Getting Started”
Capítulo 3: “How the Lightning Network Works”
Capítulo 4: “Lightning Node Software”
Capítulo 5: “Operating a Lightning Network Node”
Capítulos 6 y 7: “Lightning Network Architecture” & “Payment Channels”
Capítulo 8 “Routing on a Network of Payment Channels”
Capítulo 9 “Channel Operation and Payment Forwarding”
Capítulo 11 “Gossip and the Channel Graph”
Capítulo 12 “Pathfinding and Payment Delivery”
Capítulo 13 “Wire Protocol: Framing and Extensibility”
Capítulos 14 y 15 “Lightning’s Encrypted Message Transport” & “Lightning Payment Requests”
Capítulo 16 “Security and Privacy of the lightning Network”
El presente es un tutorial básico para usar la terminal o más comúnmente llamada línea de comandos - command line - tan habitual en sistemas Unix y Linux.
Está orientado a cubrir sólo los comandos que suelen ser más utilizados al momento de interactuar con nodos de Bitcoin y Lightning Network.
Gustavo Torres. Twitter para correcciones o comentarios: @bitao36 y @libdesatoshi
El presente tutorial fue elaborado para el Seminario socrático de Mastering Lightning a través de @libdesatoshi.
◻️ Tener instalada una distribución de Linux basada en Debian, como Mint, Kali, Parrot o preferiblemente Ubuntu.
◻️ En caso de que no dispongas de Linux abre el siguiente link https://killercoda.com/playgrounds/scenario/ubuntu
La terminal es una interfaz que se utiliza para interactuar con el shell y el shell es el intérprete de comandos. Hay varios intérpretes de comandos. El más usado es el shell Bash (Bourne-again shell).
Para saber qué shell estás usando abre una terminal y escribe:
Linux es un sistema operativo multiusuario, existe un usuario llamado root que es superadministrador con todos los permisos de escritura y ejecución.
Como norma de seguridad no es aconsejable emplear el usuario root para trabajar en sesiones habituales.
El prompt de la terminal indica si es la sesión de root o no. Si el prompt que ves es el siguiente símbolo:
Es un usuario normal.
Si es el siguiente símbolo:
Entonces es la sesión de root.
Para saber qué usuario estás usando puedes ejecutar el comando
Cuando veas tutoriales que usen la terminal, siempre presta atención al prompt que tiene antes del comando, ya que este te indica si necesita ser ejecutado como root.
Lo que debemos hacer para trabajar en sesiones habituales es crear otros usuarios y en caso de que se necesite ejecutar algún comando que requiera permisos especiales, otorgamos permisos a ese usuario añadiéndolo al grupo sudo en el caso de Ubuntu o con el comando visudo si estamos en Debian.
El comando para crear un usuario es:
y el comando para añadir un usuario a un grupo si estás en Ubuntu es:
Si estás en Debian como root ejecuta:
y vas hasta donde dice:
Y colocas lo siguiente:
El directorio . es el directorio actual
El directorio .. es el directorio padre
El directorio ~ es el directorio home del usuario actual y se puede obtener presionando F5.
Para mirar el listado de archivos y directorios mostrando todos los atributos y el tamaño en un formato que pueda ser entendida por humanos, usa el comando ls con el modificador h.
Para cambiar de directorio usa el comando:
Para crear un directorio usa el comando:
Para saber la ruta en la que te encuentras, usa el comando:
Para:
▪️ Crear o editar: para editar archivos puedes usar nano o vim. Por lo general, nano es más sencillo de usar. Vim es más complejo de usar y es usado por lo general por usuarios avanzados, ya que con buenos plugins puedes convertirlo en un editor de código de programación.
En este taller utilizaremos nano por simplicidad.
▪️ Copiar: se usa el comando cp. Hay un modificador muy importante cuando debe copiar una carpeta para que se copie con todos los archivos que tiene dentro a la nueva ruta.
▪️ Cambiar el nombre de un archivo se usa:
▪️ Borrar un archivo se usa:
▪️ Mirar logs:
Los pipes son muy poderosos y por lo general la usan mucho los usuarios avanzados.
En esencia, un pipe (tubería) envía la salida de un comando a la entrada de otro comando.
Por ejemplo, hay un comando llamado cat que sirve para mirar el contenido de archivos y hay un comando que sirve para paginar llamado less.
Vamos a ir a la carpeta /var/log y vamos a visualizar el archivo
Como puedes ver el archivo tiene demasiadas líneas y no puedes ver las primeras. Por eso a continuación usaremos un pipe para poder mirar el archivo página por página:
Para ir avanzando se hace con espaciadora y para salir se presiona q
El siguiente comando envía el listado de archivos en el directorio a un archivo llamado listado.txt
Si miramos el archivo listado observaremos que toda la salida del comando ls -lah fue almacenado en el archivo listado.txt
Linux asigna a cada proceso que se ejecuta en el sistema un número entero llamado PID.
A veces es importante listar los procesos del usuario o simplemente conocer de algún proceso en particular.
Para tener un listado de procesos del sistema, ejecuta:
Si solo deseas procesos del usuario actual ejecuta
Si deseas buscar el proceso asociado a algún programa que has ejecutado, puedes pasárselo con un pipe a grep para que lo busque.
Por ejemplo, si quieres saber si Python3 está corriendo en tu sesión, ejecuta el siguiente comando:
Es muy importante saber como mirar los procesos que está ejecutando el sistema, para saber que tan cargado está y saber que proceso en particular está gastando más recursos.
El comando más usado es htop, en caso de que no esté instalado ejecuta:
y luego lo ejecutas:
Este comando arroja el listado de procesos y algunos parámetros. Hay un parámetro llamado “Load average” que nos indica que tan cargado está el sistema. Su valor debe ser inferior al número de núcleos que tenga tu procesador.
En caso de que el sistema esté muy cargado puede que ni siquiera abra htop. En este caso puedes usar el comando:
En caso de que veamos que un proceso está consumiendo todo el procesador o la memoria, podemos matarlo usando su PID con el siguiente comando:
Usualmente, cuando empezamos a trabajar con la línea de comandos, surge la necesidad de usar varias ventanas. Para no tener que abrir múltiples terminales, podemos usar una herramienta llamada tmux que nos permite dividir la terminal actual sin necesidad de abrir terminales extra.
Lo primero que debemos hacer es instalar tmux:
Ahora ejecuta:
Si quieres dividir la ventana de forma horizontal presionas: Ctrl+B y SHIFT+"
Y si quieres dividir la ventana de forma vertical presionas: Ctrl+B y Shift+%
Si deseas pasar de una ventana a otra, presiona Ctrl+B y flecha (arriba o abajo o izquierda o derecha) dependiendo de como te quieras mover.