Вчера вечером я приняла решение: перенести DApp, который не совсем горячий, но иногда требует обслуживания, с основной сети эфириума. Не потому, что он плохой, а потому что в последнее время каждый раз при взаимодействии, глядя на график колебаний стоимости газа, я чувствую, как у меня сердце кровоточит — пользователи жалуются, а у меня голова болит.
На самом деле, я давно слышала, что Plasma XPL очень популярен в области Layer2, говорят, что это «нулевые затраты на миграцию». Честно говоря, в начале я отнеслась к этому скептически: «Н零成本?Маркетинговый трюк, наверное. Переписывание контрактов, перенастройка среды, повторное тестирование — что из этого не требует времени? Время — это самый дорогой ресурс!»
Но не смогли устоять перед похвалами нескольких старших братьев в кругу, я с настроением "ну и что, потеряю только вечер" открыл их официальный документ по миграции. В результате, попробовав, я просто не смог справиться.
Первый шаг, я признаю, что немного испугался. В их портале разработчиков есть инструмент под названием "однокнопочная проверка совместимости". Я бросил адрес своего оригинального смарт-контракта на Ethereum, это не весь проект, а только один основной контракт. Через несколько десятков секунд вышел отчет: совместимость байт-кода контракта > 99%, расположение переменных состояния полностью совпадает, только несколько мелких рекомендаций по оптимизации слотов хранения. Это означает, что мне вовсе не нужно переписывать основную логику. Чувство было таким, как будто ты готовишься к большому переезду, а потом обнаруживаешь, что планировка и расположение розеток в новом доме абсолютно такие же, как в старом, и просто можно заехать с чемоданом.
Второй шаг, переключение среды, успешно, но немного скучно. Настройки RPC-узлов Plasma XPL практически не отличаются от тех, к которым я привык (Infura). Я заменил настройки сети Metamask на параметры их тестовой сети (эти параметры четко помечены в документации, просто копируй и вставляй), и сразу же подключился. Знакомый Remix IDE, выбрал ту же версию компилятора Solidity, просто заменив целевую сеть развертывания с "Goerli" на "Plasma XPL Testnet". Нажал на развертывание — готово. Комиссия за газ? В тестовой сети практически нулевая. На протяжении всего процесса я даже не покинул свою зону комфорта, использовал все старые инструменты.
Третий шаг, также мой самый большой страх: что делать с активами и состоянием пользователей? Здесь действительно проявляется профессионализм дизайна Plasma XPL. Они не просто ставят мост, чтобы ты мог перенести активы и на этом все заканчивается, а реализуют родной, доверенный протокол входа. В моем DApp состояние активов пользователей в основной сети (например, заложенные токены) может безопасно создавать соответствующие зеркальные активы на цепочке Plasma XPL с помощью стандартного интерфейса, который они предоставляют, в форме "заморозка-картирование". Пользователям не нужно понимать сложную технологию межсетевого взаимодействия, им просто нужно один раз подтвердить разрешение на UI. Стоимость миграции для пользователей также практически нулевая. Я потратил немного времени, чтобы интегрировать их предоставленный фронтенд SDK в интерфейс моего DApp, весь процесс имел подробные примеры кода, даже был симулятор, чтобы тестировать процесс.
Наконец, это этап "отладки и мониторинга", который меня полностью впечатлил. На Ethereum отслеживание источника неудачной транзакции иногда похоже на поиск иголки в стоге сена. Но блокчейн-браузер Plasma XPL не только разбивает процесс транзакции, внутренние вызовы и потребление газа на мельчайшие детали, но и напрямую связывает это с моим исходным кодом, выделяя, на какой строке выполняется код. Их узлы также предоставляют более подробные журналы отслеживания (trace logs), что просто волшебно при диагностике сложных взаимодействий бизнес-логики. Я изначально запланировал целый день для повторного тестирования и отладки, но в итоге за три часа весь процесс миграции и базовой проверки был завершен.
Теперь, оглядываясь назад, так называемые "нулевые затраты" действительно не пустой звук. Это не значит, что не нужно прилагать никакие усилия, а скорее означает, что техническое трение и затраты на обучение миграции были сведены почти к нулю. Мне не нужно учить новый язык смарт-контрактов (все еще Solidity), не нужно полностью переделывать мой инструментарий (все еще те же Web3.js, Ethers.js), и не нужно разрабатывать для моих пользователей сложный учебник по миграции, от которого у них голова кругом.
Plasma XPL делает это, незаметно прокладывая путь на нижнем уровне, который бесшовно соединяется с тем путем, по которому ты раньше шел. И говорит тебе: "Смотри, никаких барьеров, приходи, здесь плата за проезд дешевая, и вид тоже неплохой."
Для таких разработчиков, как я, сэкономленное — это не только время, но и энергия, и риск ошибок. Я могу всю свою силу, которую раньше тратил на размышления о том, "как это перенести", направить на размышления о том, "что новое я могу сделать для пользователей с более низкими затратами и более быстрой скоростью после переноса".
От насмешек до истинного восторга прошло всего три часа. Эта сделка, как ни считай, того стоит. Если ты также страдаешь от высоких затрат и перегрузок в основной сети, действительно не сомневайся, потрать время на кофе, чтобы попробовать их тестовую сеть. Ты обнаружишь, что путь миграции Plasma XPL уже прошел за тебя на 99%.
@Plasma #Plasma $XPL
