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

By Bitcoin Журнал - 3 месяца назад - Время чтения: 5 минуты

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

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

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

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

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

"Серьезно. Насколько сложно понять это правило? Мы особенно не нарушаем пространство пользователя с помощью TOTAL CRAP. Я злюсь, потому что все ваше письмо было ужасно неправильным, а патч, который что-то нарушал, был явно дерьмовым. Весь патч — невероятно ломаное дерьмо. Он добавляет безумный код ошибки (ENOENT), а затем, поскольку он настолько безумный, добавляет несколько мест для его исправления ("ret == -ENOENT ? -EINVAL : ret").

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

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

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

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

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

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

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

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

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

Если мы пойдем по этому пути, то что мы на самом деле здесь делаем? Я не могу сказать вам, что мы делаем на этом этапе, но могу сказать, что мы больше не создаем распределенную и нейтральную систему.

Исходный источник: Bitcoin Журнал