RLP (Recursive Length Prefix) - это способ кодирования произвольно вложенных массивов двоичных данных. Впервые он был предложен для сериализации объектов Ethereum, таких как транзакции и смарт-контракты. Данные для кодирования RLP определяются как две формы: строка и массив. Элемент массива снова рекурсивно определяется как две формы, поэтому его имя включает Рекурсивный. Кроме того, RLP прикрепляет префикс, который указывает длину перед закодированными данными, за исключением однобайтовых данных. Это причина, по которой он называется Префикс длины. Исходя из этого, CodeChain использует ту же схему для сериализации объектов, которые удерживаются узлом, перед их сохранением на диск или отправкой их одноранговым узлам.

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

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

  1. Расшифровка

Когда вы впервые открываете rlp-debugger, вы можете увидеть такое текстовое поле, в которое вы можете поместить свои данные в кодировке rlp в виде шестнадцатеричной строки. Если ваши данные действительны, кнопка «Декодировать» будет активирована.

Если ваши данные не являются допустимой формой данных в кодировке rlp, кнопка будет деактивирована во время печати «Ошибка декодирования RLP».

2. Кодирование

Например, когда вы декодируете «c512c2345678», вы можете увидеть структуру декодированных данных. Кроме того, если вы нажмете кнопку + рядом с элементом, вы можете добавить новый элемент для следующего индекса. Если вы нажмете кнопку -, вы можете удалить соответствующий элемент. В случаях, когда элемент является массивом, если вы нажмете кнопку + прямо под массивом (например, [+] List (2)), новый элемент будет добавлен перед массивом. Кнопка «Список» используется для преобразования отдельного элемента в массив.

Также возможно редактировать элементы в различных формах.

Перед использованием rlp-debugger стоит отметить, что если ваши изменения в декодированных данных недействительны, вы не сможете их правильно закодировать. Например, если вы наберете 0x3f4ttt в текстовом поле элемента, кодирование будет невозможно. В дополнение к этому, если вы хотите закодировать «null», просто очистите текстовое поле.

Мы кратко рассмотрим, что такое rlp-debugger и как им пользоваться. Вот где сейчас работает rlp-debugger:

Https://codechain-io.github.io/rlp-debugger/

Если вы обнаружите какие-либо ошибки, пожалуйста, сообщайте о них как о проблеме в этом репозитории.