Не нарушайте пользовательское пространство!

Не нарушайте пользовательское пространство!

Философия Линуса Торвальдса по поводу разработки ядра Linux основана на одном основном принципе: «Не нарушайте пространство пользователя». Как эта философия соотносится с разработкой протокола Биткоина?

«Мауро, черт побери! Да, это баг – в ядре. Как долго ты уже этим занимаешься? И ты все еще не усвоил первое правило обслуживания ядра? Если изменение приводит к поломке пользовательских программ, это баг в ядре. Мы НИКОГДА не возлагаем вину на пользовательские программы. Разве это сложно понять?», - Линус Торвальдс.

Не нарушайте пользовательское пространство. Это золотое правило Линуса Торвальдса при разработке ядра Linux. Для тех из вас, кто читает это и не знаком с природой Linux или операционных систем в целом, ядро – это сердце и душа операционной системы. Ядро – это то, что на самом деле управляет аппаратным обеспечением, перемещая биты между хранилищем и ОЗУ, между ОЗУ и ЦП во время вычислений, а также всеми маленькими устройствами и частями реального компьютера, которыми необходимо управлять на аппаратном уровне.

Каждое приложение или программа, написанная для операционной системы, взаимодействует с ядром. Когда вы загружаете Photoshop или Telegram, все, что делает программа, по сути, сводится к вызову ядра. «Эй, ядро, возьми то, что я только что набрал, обработай и отправь по сетевому соединению на сервер». «Эй, ядро, возьми изменение цвета, которое я сделал, забери его из ОЗУ и отправь в ЦП для модификации, а затем помести обратно в ОЗУ».

Когда ядро меняется, подобно Биткоину, главная цель разработчиков – гарантировать, что существующие приложения, предполагающие особый способ взаимодействия с ядром, не сломаются из-за изменений в ядре. Звучит очень знакомо в контексте Биткоина и необходимости поддерживать обратную совместимость для обновлений консенсуса сети, не так ли?

«Серьезно, неужели так сложно понять это правило? Нельзя нарушать юзерспейс такой дрянью. Я злюсь, потому что твой имейл был неправильным от начала до конца, а патч – это полный вздор. Он вводит код ошибки (ENOENT), а затем, при всем этом безумии, предлагает несколько вариантов для его исправления («ret == -ENOENT ? -EINVAL : ret»).

Тот факт, что ты затем пытаешься оправдать нарушение пользовательского пространства и обвинять какую-то внешнюю программу, которая раньше работала, просто позорен. Мы так не работаем. Поменяй свой чертов «compliance-инструмент», потому что он явно не работает. И исправь свой подход к программированию ядра». - Линус Торвальдс.

Linux – один из самых важных, если не самый важный проект с открытым исходным кодом во всем мире. Android работает на Linux, половина серверной инфраструктуры (если не больше) работает на Linux. Встроенные системы, управляющие всеми видами компьютеризированных вещей в вашей жизни. Мир буквально работает на Linux. Возможно, он и не вышел на передний план, как того хотели многие приверженцы Linux, но он незаметно занял свое место на заднем плане.

Все эти приложения и программы, которые люди используют в повседневной жизни, зависят от предположения, что разработчики ядра Linux не будут нарушать обратную совместимость в новых версиях ядра. В противном случае все работающие приложения должны будут продолжать использовать более старые версии ядра или брать на себя бремя изменения своих приложений для взаимодействия с критическими изменениями в ядре.

Наиболее вероятный путь Биткоина к успеху очень похожий: он просто становится платформой, на которой финансовые приложения и инструменты построены таким образом, что большинство людей, использующих их, даже не осознают и не задумываются о том, что «Биткоин поглотит мир». Подобно Linux, золотое правило «не нарушай пространство пользователя» применимо в десятикратном размере. Проблема в том, что природа Биткоина как распределенной консенсусной системы, а не единого локального ядра, работающего на машине одного человека, радикально меняет то, что означает «нарушение пользовательского пространства».

Не только разработчики могут нарушить пользовательское пространство, но и сами пользователи. Об этом свидетельствует появление Ordinals, записей и токенов BRC-20 за последний год. Это создает очень серьезное затруднение, если взглянуть на мантру «не нарушайте пользовательское пространство» с точки зрения разработчиков. Хотя многие биткоинеры в этой индустрии не любят протокол Ordinals и расстроены тем, что их собственные сценарии использования нарушаются сетевым трафиком, создаваемым пользователями Ordinals, обе группы являются пользователями.

Как же разработчикам решить эту проблему? Одна группа пользователей нарушает пользовательское пространство для другой группы пользователей. Внесение изменения, запрещающего использование Ordinals или записей, явно нарушает требования не нарушать пользовательское пространство. Я уверен, что кто-то скажет: «Taproot нарушил пользовательское пространство!» в ответ на эту дилемму, но этого не произошло. Активация Taproot и возможность использования данных-свидетелей до размера всего блока не нарушили работу каких-либо ранее существовавших приложений или способов использования, созданных на базе Биткоина. Все, что он сделал, – это открыл двери для новых приложений и вариантов использования.

Так что же нам делать? Попытка отфильтровать людей, создающих записи, путем изменения консенсуса означает фундаментальное нарушение принципа «не нарушайте пользовательское пространство». Бездействие позволяет одному классу пользователей нарушить пользовательское пространство другого класса пользователей. Нет решения этой проблемы, кроме как нарушить золотое правило или реализовать функциональность, которая позволит классу пользователей, чье пользовательское пространство сейчас нарушено, адаптироваться к новым реалиям сети и поддерживать жизнеспособную версию своих приложений и вариантов использования.

Не нарушать пользовательское пространство Биткоина имеет решающее значение для его дальнейшего успеха и функциональности, но это не так просто, как «ничего не менять». Динамические изменения в поведении пользователей, которые не требуют изменения самого протокола, в конечном итоге могут иметь тот же эффект, что и критическое изменение протокола. Должны ли разработчики выбирать, чье пользовательское пространство будет нарушено? Мой ответ «нет», и я бы сказал, что любой, кто выступает за такое поведение разработчиков, подталкивает их к безответственным действиям и наносит вред пользователям системы. Так какое же решение?

Нет другого решения, кроме как идти вперед и продолжать добавлять улучшения в протокол, которые позволят приложениям, нарушенным поведением определенных пользователей, функционировать при наличии возникающих изменений в поведении пользователей. В противном случае вы просите разработчиков забыть о золотом правиле и принимать решения о том, какие варианты использования можно построить на основе Биткоина.

Если мы пойдем по этому пути, это явно не будет означать создание распределенной и нейтральной системы.

Биткоин или недвижимость: лучшее средство сбережения во время войны Биткоин или недвижимость: лучшее средство сбережения во время войны Анализ различных ценностных предложений Биткоина и недвижимости во времена геополитической нестабильности. Леон Ванкум 18 февраля 2024
Вопросы от ноукоинеров: зов бычьего рынка Вопросы от ноукоинеров: зов бычьего рынка Как ноукоинеры решают, приобретать ли им биткоин? Как им это сделать? Как им взаимодействовать с Биткоином? На каждом этапе этого пути есть множество вариантов выбора. Сантьяго Варела 17 февраля 2024
Сэндвич «Рубен» и активация CTV Сэндвич «Рубен» и активация CTV Вы видели эти сэндвичи вместо фото профиля? Они являются социальным сигналом в попытке достичь консенсуса относительно активации изменений в Биткоине. George 203 11 февраля 2024