Рубрики
Без рубрики

Вариант использования – Система псевдонимов

Введение В этой статье вы познакомитесь с основными концепциями построения требуемого метода… С тегами blockchain, dlt, java, javascript.

В этой статье вы узнаете основные понятия для создания необходимых методов, таких как “регистрация псевдонима” или “разрешение псевдонима” в вашем собственном приложении. Вы также узнаете, как вы можете использовать возможности Radix ledger для реализации простой децентрализованной системы псевдонимов для вашего приложения, не имея центрального сервера для управления индексом базы данных или хранения данных.

Псевдоним – это альтернативное имя для кого-то или чего-то. Например, Брюс Уэйн известен под псевдонимом Бэтмен. В информатике псевдоним – это альтернативное имя компьютера, объекта, файла, устройства, пользователя, группы или пользователя. Обычно псевдоним используется для замены длинных строк удобочитаемыми именами. Например, доменные имена веб-сайтов и имена пользователей являются псевдонимами. Это позволяет пользователям запоминать простые URL-адреса, такие как google.com в отличие от сложного, неинтуитивного списка IP-адресов серверов Google.

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

Поэтому мы могли бы сказать, что основной целью псевдонимов для распределенных реестров является преобразование удобочитаемых имен, таких как @name или name @namespace, в машиночитаемые идентификаторы, включая адреса кошельков Radix, узлы и даже хэши содержимого и/или другие идентификаторы.

Как мы уже говорили ранее, мы хотим создать децентрализованную систему псевдонимов для нашего приложения без необходимости иметь выделенный сервер для управления индексом базы данных. Теперь давайте посмотрим, насколько просто достичь нашей цели, взаимодействуя с бухгалтерской книгой Radix.

Предположим, что наше приложение хочет предоставить пользователям систему псевдонимов, которая поддерживает простой псевдоним (в форме @name) и псевдоним пространства имен (в форме name@namespace). Реализованная логика псевдонимов должна быть частью клиентского кода приложения, чтобы все кошельки могли интерпретировать ее последовательно.

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

Элементы системы показаны на рисунке:

-Индекс пространства имен: глобальный индекс, который позволяет системе хранить псевдонимы отдельно для корневого и каждого пространства имен.

-Корневой индекс: Этот индекс – тот, в котором хранятся простые псевдонимы.

-Учетная запись указателя: Каждый псевдоним в Корневом индексе ссылается на одну учетную запись указателя, которая ссылается на пользователей. Это позволит пользователям изменять или пересылать его в будущем.

-Реальный счет: Это фактическая учетная запись пользователя, которая скрывается за псевдонимом.

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

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

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

Аналогичным образом, когда пользователь хочет зарегистрировать псевдоним пространства имен, такой как name @myapp, мы должны прочитать из учетной записи индекса пространства имен, найти ссылку на запрошенную учетную запись индекса пространства имен, а затем добавить запись в индекс myapp для запрошенного псевдонима пользователя.

В зависимости от потребностей вашего конкретного приложения псевдоним пространства имен может быть изменен владельцем пространства имен (например, доменами электронной почты) или только владельцем псевдонима (например, простым псевдонимом).

Давайте рассмотрим, как мы можем разрешать псевдонимы, чтобы в нашем приложении была полная система псевдонимов.

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

Мы продолжаем чтение первой записи указателя псевдонима, чтобы найти владельца псевдонима, и продолжаем чтение любой другой записи в учетной записи Указателя, чтобы узнать, было ли у псевдонима какое-либо дополнительное обновление владельцем псевдонима. Как только мы дойдем до конца данных указателя, у нас будет последний адрес учетной записи для простого псевдонима. Вместо этого, если это псевдоним пространства имен, далее мы начинаем читать определенные записи индекса пространства имен и берем первое найденное совпадение.

В этом сценарии процесс упрощается, и первое совпадение, которое мы находим в индексе частного пространства имен, – это адрес учетной записи для псевдонима.

Телеграмма для общего чата ​Discord для чата разработчиков Reddit для общего обсуждения Форум для технического обсуждения ​ Твиттер для объявлений Электронная почта рассылка новостей для еженедельных обновлений Отправить по электронной почте hello@radixdlt.com для общих запросов

Оригинал: “https://dev.to/radixdlt/use-case-alias-system-7d3”