¡No rompas el espacio de los usuarios!

esacademic

«Mauro, ¡CÁLLATE LA BOCA! Es un error, está bien – en el kernel. ¿Cuánto tiempo has sido un mantenedor? ¿Y todavía no has aprendido la primera regla del mantenimiento del kernel? Si un cambio resulta en la ruptura de programas de usuario, es un error en el kernel. Nunca culpamos a los programas de usuario. ¿Qué tan difícil puede ser entender esto?» – Linus Torvalds

No rompas el espacio de usuario. Esta es la regla de oro de Linus Torvald para el desarrollo del kernel de Linux. Para aquellos de ustedes que no están familiarizados con la naturaleza de Linux, o los sistemas operativos en general, el kernel es el corazón y alma de un sistema operativo. El kernel es lo que realmente gestiona el hardware, moviendo bits entre el almacenamiento y la RAM, entre la RAM y la CPU mientras se realizan cálculos, y todos los pequeños dispositivos y piezas de la computadora real que necesitan ser controlados a nivel de hardware.

Cada aplicación o programa escrito para un sistema operativo tiene que interactuar con el kernel. Cuando descargas Photoshop o Telegram, todo lo que el programa está haciendo se reduce esencialmente a llamar al kernel. «Hola kernel, toma lo que acabo de escribir y procésalo y envíalo a través de una conexión de red al servidor.» «Hola kernel, toma el cambio de color que hice en este tono, sácalo de la RAM y envíalo a la CPU para modificarlo, luego ponlo de nuevo en la RAM.»

Cuando el kernel es cambiado, de manera similar a Bitcoin, el objetivo principal de los desarrolladores es asegurar que las aplicaciones existentes que asumen una forma específica de interactuar con el kernel no se rompan debido a un cambio en el kernel. Suena muy familiar a Bitcoin y la necesidad de mantener la compatibilidad hacia atrás para las actualizaciones de consenso de la red, ¿verdad?

En serio. ¿Qué tan difícil es entender esta regla? Especialmente no rompemos el espacio del usuario con BASURA TOTAL. Estoy enojado, porque todo tu correo electrónico estaba tan _horriblemente_ equivocado, y el parche que rompió las cosas era tan obviamente basura. Todo el parche es una mierda increíblemente rota. Agrega un código de error insano (ENOENT), y luego, debido a que es tan insano, agrega algunos lugares para arreglarlo («ret == -ENOENT ? -EINVAL : ret»).

El hecho de que luego intentes poner *excusas* por romper el espacio de usuario y culpar a algún programa externo que *solía* funcionar, es simplemente vergonzoso. No es así como trabajamos. Arregla tu «herramienta de cumplimiento» de m*erda, porque obviamente está rota. Y arregla tu enfoque en la programación del kernel. -Linus Torvalds

Linux es uno de los proyectos de código abierto más importantes, si no el más importante, en todo el mundo. Android funciona con Linux, la mitad de la infraestructura de backend (si no más) funciona con Linux. Los sistemas integrados que controlan todo tipo de cosas computarizadas en el fondo de tu vida, que ni siquiera considerarías, funcionan con Linux. El mundo literalmente funciona con Linux. Puede que no haya conquistado el escritorio como muchos usuarios autistas de Linux querían ver, pero silenciosamente se ha comido casi todo lo demás en el fondo sin que nadie se dé cuenta.

Todas estas aplicaciones y programas que la gente utiliza en su vida diaria dependen de la suposición de que los desarrolladores del kernel de Linux no romperán la compatibilidad con versiones anteriores en nuevas versiones del kernel para permitir que sus aplicaciones sigan funcionando. De lo contrario, cualquier cosa que ejecute aplicaciones debe seguir utilizando versiones antiguas del kernel o asumir la carga de modificar sus aplicaciones para interactuar con un cambio disruptivo en el kernel.

El camino más probable para el éxito de Bitcoin es muy similar, simplemente convirtiéndose en una plataforma en la que se construyen aplicaciones y herramientas financieras de tal manera que la mayoría de las personas que las utilizan ni siquiera se den cuenta o consideren que «Bitcoin se comió el mundo». En una línea similar a Linux, esa regla de oro de «No romper el espacio de usuario» se aplica diez veces. El problema es la naturaleza de Bitcoin como un sistema de consenso distribuido, en lugar de un solo núcleo local que se ejecuta en la máquina de una persona, lo que cambia radicalmente lo que significa «romper el espacio de usuario».

No solo los desarrolladores pueden romper el espacio de usuario, los propios usuarios pueden hacerlo. Todo el último año de Ordinales, Inscripciones y tokens BRC-20 debería demostrarlo definitivamente. Esto plantea un dilema muy serio al mirar el mantra de «No romper el espacio de usuario» desde el punto de vista de los desarrolladores. Por mucho que a muchos Bitcoiners en este espacio no les gusten los Ordinales y estén molestos porque sus propios casos de uso están siendo interrumpidos por el tráfico de red que los usuarios de Ordinales están creando,

Ambos grupos son usuarios.

"Usuarios rompiendo espacio usuario"

¿Cómo enfrentan los desarrolladores este problema? Un grupo de usuarios está rompiendo el espacio de usuarios para otro grupo de usuarios. Enactar un cambio que impida el uso de Ordinales o Inscripciones viola explícitamente los mandatos de no romper el espacio de usuarios. Estoy seguro de que la gente quiere decir «¡Taproot rompió el espacio de usuarios!» en respuesta a este dilema, pero no lo hizo. La activación de Taproot, y la permitir que los datos de testigos sean tan grandes como todo el tamaño del bloque, no rompió ninguna aplicación o uso preexistente construido sobre Bitcoin. Lo único que hizo fue abrir la puerta a nuevas aplicaciones y casos de uso.

¿Entonces, ¿qué hacemos aquí? Intentar filtrar o romper mediante un cambio de consenso, a las personas que hacen Inscripciones o intercambian Ordinales es violar fundamentalmente la máxima de «no romper el espacio de los usuarios». No hacer nada permite que una clase de usuarios rompa el espacio de usuarios de otra clase de usuarios. No hay una solución fundamental a este problema excepto violar la regla de oro, o implementar funcionalidades que permitan a la clase de usuarios cuyo espacio de usuarios está roto ahora adaptarse a las nuevas realidades de la red y mantener una versión viable de sus aplicaciones y casos de uso.

No romper el espacio de usuario de Bitcoin es de vital importancia para su éxito y funcionalidad continuos, pero no es tan simple como «no cambiar nada». Los cambios dinámicos en el comportamiento de los usuarios, que no requieren cambios en el protocolo en sí, pueden tener el mismo efecto al final del día que un cambio que rompa el protocolo. ¿Se supone que los desarrolladores deben elegir cuál espacio de usuario de las aplicaciones se rompe para mantener el de otra aplicación? Yo diría que no, y además diría que cualquiera que abogue por ese comportamiento de los desarrolladores les está exigiendo actuar de manera irresponsable y perjudicar a los usuarios del sistema. Entonces, ¿cuál es la respuesta aquí?

"Respetar espacio de usuario"

No hay respuesta excepto seguir adelante y continuar agregando mejoras al protocolo que permitan que las aplicaciones que son afectadas por el comportamiento de ciertos usuarios funcionen en presencia de cambios emergentes en el comportamiento de los usuarios. De lo contrario, estás pidiendo a los desarrolladores que desechen la regla de oro y efectivamente se conviertan en reyes en cuanto a qué casos de uso son viables para construir sobre Bitcoin.

Si seguimos por ese camino, ¿qué estamos haciendo realmente aquí? No puedo decirte lo que estamos haciendo en ese momento, pero puedo decirte que ya no estamos construyendo un sistema distribuido y neutral.

Deja un comentario