Как стать автором
Обновить
7.14

Solidity *

Язык программирования контрактов для Ethereum

Сначала показывать
Порог рейтинга

Как сделать свой OFT-токен

Ранее я уже рассказывал о протоколе LayerZero. Также упоминал, что по программе lzCatalyst выделяются большие средства на разработку омничейн-решений. Если взглянуть на экосистему LayerZero, то самым популярным таким решением являются OFT-токены. Пример такого токена — USDT0.

Мы с командой решили по косточкам разобрать OFT-токен и, конечно же, сделать свой. Статья получилась большая, поэтому для удобства она разбита на три части + отдельная часть по архитектуре LayerZero.

Важная ремарка — это не пересказ документации, а скорее дополнительные детали, которые там плохо разобраны или вообще не упомянуты.

🔨 Простой OApp в Remix

Все начинается с OApp (Omnichain Application) — омничейн-приложения, имеющего все необходимые интерфейсы для отправки и получения сообщений. Перед тем как создать свой OFT, стоит попрактиковаться в отправке простого сообщения из одного блокчейна в другой, например, "Hello, World" или что-то более оригинальное.

Для простоты сделать это лучше всего в онлайн-IDE Remix. Для этого даже не нужно быть разработчиком — справится любой, кто внимательно прочитает гайд. Это позволит понять самые основы омничейн-взаимодействия: например, расчёт стоимости газа для отправки, специфику формата адресов, которые используются в экосистеме LZ, а также устройство элементарного OApp.

А для тех, кто совсем не хочет заморачиваться, я развернул контракты в мейннете Arbitrum и Polygon — можете воспользоваться ими для отправки сообщений (через Remix).

🪙 OFT-токен

Тут самое мясо 🥩. Чтобы создать свой OFT-токен, лучше всего подойдёт готовый проект от LayerZero, который можно развернуть одной командой: npx create-lz-oapp@latest. Он включает в себя все необходимые инструменты:

▫️ базовый контракт OFT-токена;
▫️ тесты на Foundry и Hardhat;
▫️ скрипты деплоя и профилирования газа;
▫️ конфигурацию стека безопасности для LayerZero.

Чтобы понять, из чего состоит OFT-токен и что ещё с ним можно сделать, нужно разобрать, как работают основные функции: send и lzReceive. В процессе выполнения они делают много интересного, например, конвертируют amount в shared decimals для отправки и обратно в local decimals при получении, а также удаляют «пыль».

Для самых искушённых есть Foundry-скрипт для отправки токенов и объяснение того, как профилировать расход газа в сети назначения.

🎛 Параметры (options), особенности, PreCrime

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

Ⓜ️ OFT-токен MetaLamp

Для тех, кто разобрался в теории отправки омничейн-сообщений, но не хочет писать свой токен, а просто хочет посмотреть живой пример, есть токен MetaLampOFTv1, развёрнутый в Ethereum Sepolia и Polygon Amoy. Чтобы получить 100 токенов, можно вызвать функцию claim контракта через Etherscan или Polygonscan. Сам проект лежит здесь.

Клеймить MetaLamp-токен можно сколько угодно, ни в чем себе не отказывайте 😉

Мы с командой регулярно пишем в Telegram-канале. Если вам близки темы, о которых здесь говорим, то заходите.

@yarlykovrv

Теги:
0
Комментарии0

Как мы собрали web3 в одну книгу и почему это must-have для разработчиков

Недавно наша команда сделала кое-что крутое – первую русскоязычную книгу по web3. Она бесплатная, онлайн, и в ней всё, что нужно, чтобы разобраться в блокчейне и web3-технологиях без хаотичного гугления. Читать можно тут.

Почему это важно

Когда друзья, знакомые, родственники спрашивают, чем я занимаюсь, иногда я даже впадаю в ступор. Довольно сложно объяснить обывателю, что такое блокчейн, web3 и смарт-контракты. Но ещё больнее, когда приходится объяснять это людям, с которыми в этой сфере нужно работать, даже разработчикам. Работая над web3-проектами, я постоянно вижу одну проблему: спецов мало, а те, кто есть, часто теряются в базовых вещах, либо могут рассказать только о том, с чем непосредственно работали.

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

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

Что внутри

Мои коллеги полгода анализировали сотни источников – от зарубежных статей до российских кейсов. Добавили свой опыт (а у нас за плечами десятки блокчейн-проектов), контрольные вопросы и практические задания. Плюс  комментарии от топовых спецов индустрии, таких как Базовый Блок, Cyber Academy, Aqua Protocol, Botanica и др. 

Книга не про "вот вам теория, разбирайтесь". Это структурированный гайд: от основ блокчейна до более глубоких концепций. Задания помогают закрепить материал, а комментарии экспертов – понять, где это реально применяется.

Кому пригодится

Если вы работаете в web2 (разработчик, менеджер, hr, тестировщик, дизайнер и тд.) и хотите зайти в web3, но не знаете, с чего начать – это для вас. Или если еще не работаете в IT и думаете про web3 нишу – тоже сюда. Лично мне было бы проще в своё время с таким гайдом: меньше бы спотыкался на старте и быстрее бы втянулся в проекты.

Почему бесплатно

Мы решили дать доступ всем. Web3 – это про открытость, и нам важно, чтобы русскоязычные разработчики не отставали. Плюс, это наш вклад в комьюнити/ Надеюсь, вы оцените.

Итог

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

Ссылка на книгу: metalamp.ru/magazine/web3-book.

До встречи в web3!

Теги:
+9
Комментарии1

EIP-7549: Move committee index outside Attestation

EIP-7549 является вторым предложением по изменению на уровне консенсуса и предлагает переместить индекс комитета за пределы аттестации. Звучит интересно, но непонятно. Начнём разбираться издалека.

▫️Введение в работу валидатора

Все мы знаем, что валидаторы оставляют 32 ETH в качестве депозита и после этого запускают специальное программное обеспечение, которое состоит из трёх частей:

  • Execution Client

  • Consensus Client

  • Validator Client

Перед началом полноценной работы (этот процесс называют активацией) валидаторы ждут в очереди, которая регулирует скорость присоединения новых валидаторов. После активации валидаторы начинают получать блоки от других участников сети. Сначала проверяются транзакции из полученного блока, чтобы удостовериться, что изменения валидны, и проверяется подпись блока. После этого валидатор отправляет свой голос, который гарантирует, что блок действительный. Этот голос и называется аттестацией.

▫️Структура слотов и эпох в Ethereum

Далее стоит отметить, что сейчас в Ethereum время появления блоков фиксированное и делится на слоты. Один слот — 12 секунд, эпоха — 32 слота. Для каждого слота случайным образом выбирается валидатор, предлагающий блок. В его обязанности входит создание и отправка блока другим участникам. Также в слоте случайным образом выбирается комитет валидаторов, аттестации которых должны подтвердить, что блок действительный. Разделение валидаторов на комитеты необходимо для управления нагрузкой на сеть. Деление на комитеты организовано так, чтобы каждый активный валидатор подтверждал блок в каждой эпохе, но не в каждом слоте.

▫️Понятие финализации блоков

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

▫️Разбор полей аттестации

Это всё в теории. Под капотом консенсуса работают два компонента: Casper-FFG и алгоритм выбора форка LMD-GHOST. Первый компонент отвечает за финализацию блоков, получение валидатором вознаграждения или наказания, второй компонент следит за раздвоением сети.

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

  • aggregation_bits: Массив бит валидаторов, где каждый индекс соответствует номеру валидатора в комитете.

  • data: Сведения для аттестации (подтверждения действительности блока).

  • slot: Номер слота, для которого подготовлена аттестация.

  • index: Номер, который идентифицирует, к какому комитету принадлежит валидатор в данном слоте.

  • beacon_block_root: Хеш блока, за который валидатор голосует.

  • source: Последний согласованный чекпоинт.

  • target: Целевой чекпоинт текущей эпохи.

  • signature: Подпись BLS, которая подписывает данные поля data.

▫️Предлагаемое изменение в EIP-7549

Вот мы и добрались до индекса, который EIP-7549 предлагает вынести за пределы аттестации. Для Casper-FFG это критически важное изменение. Суть в том, что все участники разных комитетов голосуют за одну и ту же информацию,  подписывая данные в поле data аттестации. Зачастую данные одинаковые, за исключением индекса комитета, который не позволяет агрегировать эти подписи в одну. Поэтому предлагается убрать индекс и объединить одинаковые аттестации, что позволит уменьшить их количество.

Вот так, покопавшись в сути этого EIP, который на первый взгляд мог выглядеть странно, я могу сделать вывод, что звучит всё логично, по крайней мере идея становится понятной. Видимо, поэтому мне и не удалось найти каких-то явных противостояний или противников EIP-7549. Отдельно стоит отметить, что этот EIP вносит обратно несовместимые изменения в проверку блоков на уровне консенсуса, поэтому он и включается в хард-форк.

Подписывайтесь на наш телеграм-канал:)

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Разбор ERC-6900: Модульные абстрактные аккаунты и плагины

ERC-6900 — это стандарт Ethereum, определяющий модульные абстрактные аккаунты (Modular Smart Contract Account — MSCA). Он расширяет функциональность абстрактных аккаунтов ERC-4337 (кто пропустил, мы уже писали о них тут), позволяя выносить дополнительную логику и проверки во внешние модули.

Ключевые аспекты ERC-6900:

  • Модульность: позволяет разделить логику аккаунта на отдельные плагины.

  • Расширяемость: упрощает добавление новых функций к аккаунтам без изменения основного кода.

  • Стандартизация: обеспечивает совместимость между различными реализациями аккаунтов и плагинов.

  • Интеграция с ERC-4337: совместим с инфраструктурой Account Abstraction.

Важно! Оба стандарта (ERC-4337 и ERC-6900) находятся в стадии черновика, поэтому возможны изменения. В статье рассматривается AA (ERC-4337) версии v0.6.0 и ERC-6900 (MSCA) версии v0.7.0 (на базе AA v0.6.0). Например, уже есть новая версия AA, в которой изменена работа с validateUserOp, но MSCA пока этого не поддерживает.

Кроме того, ERC-6900 тесно связан с Alchemy, поэтому самые свежие обновления по этому стандарту, скорее всего, будут в их репозиториях, так как они разрабатывают архитектуру для работы с такими аккаунтами. Это один из главных недостатков стандарта — он создается с учетом нужд конкретного протокола, а не всего сообщества.

Читайте продолжение статьи тут:)

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Опубликовали новую статью — обзор протокола LayerZero!

Обзор и архитектура протокола LayerZero v2
LayerZero — это неизменяемый, устойчивый к цензуре и не требующий разрешений протокол, который позво...
habr.com

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

Велком к прочтению:)

Еще мы ведем свой телеграм-канал, где информация из мира разработки и web3 выходит оперативнее всего, переходите почитать авторские посты и мнение нашей команды, а также похоливарить в комментариях:)

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

❗️Внимание разработчики

Команда MetaLamp столкнулась со скамером. Рекомендуем изучить, чтобы не стать жертвой мошенников.

За последние сутки к нам поступило несколько запросов на разработку высокобюджетного проекта, где сначала нужно было пройти тестовое задание. Мы развернули код и заметили там подозрительную активность в одном файле. 

Решили обсудить это с нашими друзьями-аудиторами из BugBlow и ребята обнаружили стилера (от англ. steal — красть) написали подробный отчет. 

В чем угроза?

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

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

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

Кстати хакер, написавший этот код оставил свой IP адрес, на который украденные данные отправляются 138.201.199.46. 

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

Спасибо Александру Долгавину из BugBlow за отчет! Вступайте в чат про безопасность BugBlow и читайте X команды.

Stay Safe!

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии0

EIP-7251: Increase the MAX_EFFECTIVE_BALANCE. Part 2

Part 1 опубликован здесь.

Маленький нюанс: в чем профит условному Lido объединять группу своих валидаторов в одного? Предлагается несколько плюшек: возможность частично изымать сумму стейкинга, а также обсуждаются послабления штрафной системы, плюс, как я понял выбор валидаторов взвешенный уже сейчас, чем больше стейк, тем выше вероятность, что валидатор будет выбран для добавления блока (поправьте меня тут, если я не прав)

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

Вывод. EIP даст положительный результат! Показатель децентрализации по валидаторам улучшиться, схлопнутся излишние валидаторы, что сократит операционные расходы, как самим валидаторам, так и сети на взаимодействие между валидаторами. Только почему то мне кажется, что эта проблема может вернуться через какое-то время, если пополярность ликвидного стейкинга и рестейкинга продолжит набирать популярность. Надеюсь ребята из Ethereum все правильно посчитали!

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

EIP-7251: Increase the MAX_EFFECTIVE_BALANCE. Part 1

Идея проста! EIP-7251 предлагает валидаторам стейкать больше 32 ETH. Сейчас в коде за это отвечает переменная «MAX_EFFECTIVE_BALANCE». Отсюда и такое название EIP. Тоесть, а давайте увеличим максимальную сумму для стейкинга.

Приводится статистика: на октябрь 2023 года в сети работает свыше 830 000 валидаторов и их число продолжает расти. Однако, есть большое количество «redundant validators» или избыточных валидаторов — это связано с протоколами ликвидного стейкинга, которые объединяют пользователей в группы для совместного управления валидаторами. Сейчас сумма стейка ограничена 32 ETH и такие протоколы запускают множество валидаторов. В результате мы имеем, что определенная группа валидаторов находится в одних руках. На 12 октября доля Lido занимает 29,7%. Пурумпурумпум! Ситуация!

EIP предлагает оставить 32 ETH как нижнюю границу, своего рода входной билет, а верхнюю поднять до 2048 ETH. Рассчет прост, теперь Lido может держать за место 64-х валидаторов со стейкиногом по 32 ETH всего одного на 2048 ETH. Не сложно догадаться, что это должно положительно сказаться на диверсификации сети и снизить количество избыточных валидаторов.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

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

Бонус: в конце статьи вы найдете инструкцию как сделать свой мост :)

Обзор блокчейн-мостов: взаимодействие между разными сетями
Привет, Хабр! В этой статье я расскажу, почему мосты между блокчейнами важны для криптоэкосистемы, р...
habr.com

Если хотите узнавать самые последние новости и интересные тренды из web3, то переходите в наш телеграм-канал, там мы холиварим и обсуждаем все самое интересное и полезное!

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

EIP-7600: Hardfork Meta - Pectra

Pectra — запланированный хардфорк сети Ethereum на конец 24-го или начало 25-го года. На данный момент, хардфорк включает в себя 8 запланированных и 3 рассматриваемых на включение EIPs.

Consensus Layer

  • EIP-7251: Increase the MAX_EFFECTIVE_BALANCE

  • EIP-7549: Move committee index outside Attestation

Execution Layer

  • EIP-2537: Precompile for BLS12-381 curve operations

  • EIP-2935: Save historical block hashes in state

  • EIP-6110: Supply validator deposits on chain

  • EIP-7685: General purpose execution layer requests

  • EEIP-7002: Execution layer triggerable exits

  • EIP-7702: Set EOA account code for one transaction

Общие 

  • EIP-6110: Supply validator deposits on chain

  • EIP-7002: Execution layer triggerable exits

Практически все EIPs относятся к внутренним механизмам и затрагивают несколько этапов из роадмапа Ethereum: The Merge (улучшение со стороны консенсуса), The Scourge (решение проблем централизации), The Splurge (fix everything else).

Интересно здесь то, что немалая часть уделяется этапу «The Splurge». Это история про поправим все остальное. Что это означает? Протокол сделал все что хотел и работает над стабилизацией после хардфорка Dencun? Чтобы ответить на этот вопрос предлагаем вместе с нами попробовать разобраться во всех EIPs.

Первый EIP-7251 разберем в следующем посте, а то нас ограничивает количество символов в постах на Хабре:)

Все посты по этой теме можно будет найти по тегу #в_гостях_у_Pectra. Больше интересных тем разбираем в нашем телеграм-канале!

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Мы выпустили новую крутую статью! Это технический обзор UniswapX — протокола, который выполняет обмен токенов через сторонних поставщиков ликвидности с применением аукциона. 

Чем интересна эта статья?

  • Рассмотрели архитектуру протокола

  • Способы его интеграции в существующие системы

  • Различные стратегии исполнения ордеров

Велком к прочтению!

Технический обзор UniswapX
UniswapX  - это протокол, который выполняет обмен токенов через сторонних поставщиков ликвидности с ...
habr.com

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Начинаем серию статей про рынок предсказаний и его главного представителя на сегодня Polymarket. В первой статье подробнее разберем, как работает Gnosis Conditional Token Framework, который реализует кодовую базу для токенизации потенциальных исходов на рынке предсказаний.

Приятного прочтения!

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

 Привет, Хабр!

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

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

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

Сейчас у нас появилась 3-я ветка программы, приглашаем всех, кому интересно обучиться на разработчика смарт-контрактов для EVM-сетей и погрузиться в мир Solidity!

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

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

Welcome!

Теги:
Всего голосов 11: ↑11 и ↓0+13
Комментарии1

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
22 апреля
VK Видео Meetup 2025
МоскваОнлайн
23 апреля
Meetup DevOps 43Tech
Санкт-ПетербургОнлайн
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область

Привет всем!


Наш Lead Solidity-разработчик Паша Найданов @pnaydanovgoo опубликовал новую статью про Aave: в ней он разбирает работу Flash loans — типа кредитования на базе смарт‑контрактов, который не требует залога для обеспечения займа.

Почему Flash loans так популярны сейчас и какими уникальными характеристиками они обладают, а главное, как их можно использовать — подробности в статье:)

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0