Зачем проходить тест на профессию «Блокчейн-разработчик Middle»?
Выбор профессии — одно из важнейших решений в жизни. Этот бесплатный онлайн-тест поможет определить, обладаете ли вы ключевыми качествами для работы Блокчейн-разработчик Middle.
За 3 минуты вы получите:
- Оценку пригодности к профессии по шкале от 0 до 100%
- Разбор сильных сторон и зон роста
- Персональные рекомендации по развитию
- Актуальную информацию о зарплате: 150 000 ₽
- Подборку проверенных курсов для обучения профессии
Тест основан на анализе требований работодателей к специалистам уровня Junior и Middle. Результаты носят рекомендательный характер и помогут сделать осознанный выбор.
Вопросы и ответы о тесте на профессию «Блокчейн-разработчик Middle»
Вы пишете смарт-контракт для аукциона на Solidity. При тестировании в Remix вы обнаружили, что функция ставки может быть вызвана повторно до обновления состояния, что позволяет злоумышленнику вывести больше средств, чем он внёс. Ваши действия?
Варианты ответа: Применю паттерн Checks-Effects-Interactions: сначала обновлю состояние (баланс, историю ставок), затем выполню внешний вызов. Добавлю модификатор nonReentrant из OpenZeppelin., Добавлю проверку require(msg.sender == tx.origin), чтобы предотвратить вызовы из других контрактов., Оставлю как есть, но добавлю событие для логирования подозрительных вызовов, чтобы потом анализировать..
В вашем проекте на Ethereum средняя стоимость транзакции вызова смарт-контракта составляет 0.01 ETH, что слишком дорого для пользователей. Контракт уже развёрнут. Какие шаги вы предпримете для снижения затрат газа?
Варианты ответа: Проанализирую код на предмет избыточных операций SSTORE, объединю несколько записей в одну, использую события вместо хранения данных, применю библиотеки для оптимизации (например, Solidity Gas Optimizor)., Предложу пользователям использовать Layer 2 решение (Polygon, Optimism) и перенесу логику туда, оставив на основном контракте только минимальные функции., Увеличу лимит газа в транзакциях, чтобы они быстрее проходили, и посоветую пользователям платить больше за приоритет..
Вы разрабатываете DeFi-протокол. Аудиторы нашли критическую уязвимость: функция вывода средств не проверяет, что контракт имеет достаточный баланс, что может привести к опустошению пула. Контракт уже развёрнут в mainnet. Ваши действия?
Варианты ответа: Немедленно приостановлю контракт (если есть pause), уведомлю сообщество, разверну исправленную версию с проверкой баланса и проведу миграцию средств через мультисиг., Напишу патч и предложу пользователям самостоятельно вывести средства до обновления, а затем разверну новый контракт., Оставлю как есть, но добавлю мониторинг аномальных транзакций и буду реагировать вручную..
Вам нужно интегрировать смарт-контракт с внешним API для получения курса ETH/USD. Как вы реализуете это в децентрализованной среде, чтобы избежать централизации?
Варианты ответа: Использую Chainlink Oracle для получения данных с нескольких источников, с проверкой подписи и обновлением по расписанию., Напишу собственный оракул на Node.js, который будет отправлять данные в контракт через транзакцию от доверенного адреса., Захардкожу курс в контракте и буду обновлять его вручную при необходимости..
Вы пишете смарт-контракт на Vyper для голосования. Нужно обеспечить, чтобы каждый адрес мог проголосовать только один раз. Как вы это реализуете?
Варианты ответа: Создам mapping(address => bool) voted и буду проверять его перед голосованием, устанавливая true после успешного голосования., Буду хранить массив адресов проголосовавших и проверять его через цикл перед голосованием., Положусь на то, что пользователи будут честными и не станут голосовать повторно..