Создание хуков в Uniswap v4
С момента выхода v4 прошло уже некоторое время, но до сих пор я не встречал его активного применения в протоколах или конкурсных аудитах. Большинство все также сидит на v3, или даже на v2.
Тут попалась статья, где подробно рассказывается о том, как работать с хуками в v4: что это, как работает и как подключить к своему проекту.
Подробный разбор на канале пока не вижу смысла делать, так что, кто хочет может прочитать статью самостоятельно. Более того, там есть репо, с которым вы можете потренироваться!
How to integrate Uniswap 4 and create custom hooks
Приятного изучения!
#uniswap #hooks
С момента выхода v4 прошло уже некоторое время, но до сих пор я не встречал его активного применения в протоколах или конкурсных аудитах. Большинство все также сидит на v3, или даже на v2.
Тут попалась статья, где подробно рассказывается о том, как работать с хуками в v4: что это, как работает и как подключить к своему проекту.
Подробный разбор на канале пока не вижу смысла делать, так что, кто хочет может прочитать статью самостоятельно. Более того, там есть репо, с которым вы можете потренироваться!
How to integrate Uniswap 4 and create custom hooks
Приятного изучения!
#uniswap #hooks
👍1
UPD. Мини биржа канала
Добавил еще 6 профессионалов, к которым вы можете обращаться за помощью в написании, тестировании и аудите смарт контрактов. Более того, есть те, что смогут написать для вашего протокола сайт или приложение (ключ: фронтенд), или же дать частный урок по вопросам Solidity!
Приятно, что инициативу с биржей поддерживает все больше людей!
#market
Добавил еще 6 профессионалов, к которым вы можете обращаться за помощью в написании, тестировании и аудите смарт контрактов. Более того, есть те, что смогут написать для вашего протокола сайт или приложение (ключ: фронтенд), или же дать частный урок по вопросам Solidity!
Приятно, что инициативу с биржей поддерживает все больше людей!
#market
❤9👍3
Возможные проблемы с EIP712
Аудитор Chinmay написал небольшой пост на Medium, где поделился своей информацией с примерами о проблемах, которые могут возникнуть с подписями стандарта EIP712.
Chinmay - активный участник конкурсных аудитов на code4rena, sherlock и codehawks, поэтому к его посту стоит как минимум присмотреться.
Вкратце, он описывает следующие проблемные зоны:
1. Использование не правильного адреса контракта в Domain Separator;
2. Данные в подписываемом сообщении должны быть уникальными;
3. Domain Separator должен пересчитываться, когда имя\версия меняются;
4. Риск Signature Replay в случае хардфорка;
5. Не следование спецификации стандарта EIP712;
Более подробно об этом можно прочитать тут: Auditor’s Digest : The risks of EIP712
Вообще, практически в каждом проекте на конкурсных аудитах, пользователи находили хотя бы одну проблему с подписями.
Перед реализацией EIP712 в своем проекте, думаю, стоит дополнительно проводить изучение не только самого стандарта, но и уязвимостей, которые были найдены из-за его не правильного использования.
#eip712
Аудитор Chinmay написал небольшой пост на Medium, где поделился своей информацией с примерами о проблемах, которые могут возникнуть с подписями стандарта EIP712.
Chinmay - активный участник конкурсных аудитов на code4rena, sherlock и codehawks, поэтому к его посту стоит как минимум присмотреться.
Вкратце, он описывает следующие проблемные зоны:
1. Использование не правильного адреса контракта в Domain Separator;
2. Данные в подписываемом сообщении должны быть уникальными;
3. Domain Separator должен пересчитываться, когда имя\версия меняются;
4. Риск Signature Replay в случае хардфорка;
5. Не следование спецификации стандарта EIP712;
Более подробно об этом можно прочитать тут: Auditor’s Digest : The risks of EIP712
Вообще, практически в каждом проекте на конкурсных аудитах, пользователи находили хотя бы одну проблему с подписями.
Перед реализацией EIP712 в своем проекте, думаю, стоит дополнительно проводить изучение не только самого стандарта, но и уязвимостей, которые были найдены из-за его не правильного использования.
#eip712
👍2
Коротко о Keccak256
Keccak256 — это криптографический алгоритм хеширования семейства SHA-3. Подробно о том, как работает алгоритм, можно почитать в стандарте и в документации от команды keccak. Для понимания его работы достаточно знать только несколько основных вещей о хеш-функциях и о самом алгоритме.
Что такое хеш-функция?
Хеш-функция — это функция, которая принимает произвольный набор данных в качестве входных данных и выдает хеш-значение фиксированной длины. Длина сообщения на входе может варьироваться, но длина на выходе фиксирована. Хеш-функция не может быть обратимой, то есть невозможно вычислить входные данные по хеш-значению. Это означает, что хеш-функция не может быть использована для шифрования данных.
Почему keccak256?
Keccak256 считается высокозащищенным алгоритмом хеширования. Он устойчив к различным типам атак, таким как атаки на предварительный образ, атаки на коллизии и атаки на увеличение длины. При этом, он является одним из самых эффективных алгоритмов хеширования и его поддерживает множество библиотек. По этим причинам,он был выбран для использования в таких блокчейнах как Ethereum и Bitcoin для выполнения различных задач.
Keccak256 в Solidity
keccak256 — это функция, встроенная в Solidity. Она принимает любое количество входных данных и преобразует их в уникальный 32-байтовый хеш (32 байта это как раз 256 бит).
Полную версию статьи про keccak256 можно почитать здесь.
P.S. Сегодняшний пост написан ребятами из компании MetaLamp, в рамках поста для приглашенных авторов. По ссылке вместе со статьей, вы сможете найти авторский репо от команды с другими полезными материалами по Solidity.
Буду рад услышать обратную связь от участников канала по такому варианту постов.
#keccak256
Keccak256 — это криптографический алгоритм хеширования семейства SHA-3. Подробно о том, как работает алгоритм, можно почитать в стандарте и в документации от команды keccak. Для понимания его работы достаточно знать только несколько основных вещей о хеш-функциях и о самом алгоритме.
Что такое хеш-функция?
Хеш-функция — это функция, которая принимает произвольный набор данных в качестве входных данных и выдает хеш-значение фиксированной длины. Длина сообщения на входе может варьироваться, но длина на выходе фиксирована. Хеш-функция не может быть обратимой, то есть невозможно вычислить входные данные по хеш-значению. Это означает, что хеш-функция не может быть использована для шифрования данных.
Почему keccak256?
Keccak256 считается высокозащищенным алгоритмом хеширования. Он устойчив к различным типам атак, таким как атаки на предварительный образ, атаки на коллизии и атаки на увеличение длины. При этом, он является одним из самых эффективных алгоритмов хеширования и его поддерживает множество библиотек. По этим причинам,он был выбран для использования в таких блокчейнах как Ethereum и Bitcoin для выполнения различных задач.
Keccak256 в Solidity
keccak256 — это функция, встроенная в Solidity. Она принимает любое количество входных данных и преобразует их в уникальный 32-байтовый хеш (32 байта это как раз 256 бит).
pragma solidity 0.8.20;В смарт-контрактах функция keccak256() используется для работы с подписями, создание хеш-таблиц (маппингов), вычисление селектора функций, работа с деревом Меркла и много другого.
contract Hash {
function hash(string memory _text, uint256 _number, address _address) public pure returns (bytes32) {
return keccak256(abi.encodePacked(_text, _number, _address));
}
}
Полную версию статьи про keccak256 можно почитать здесь.
P.S. Сегодняшний пост написан ребятами из компании MetaLamp, в рамках поста для приглашенных авторов. По ссылке вместе со статьей, вы сможете найти авторский репо от команды с другими полезными материалами по Solidity.
Буду рад услышать обратную связь от участников канала по такому варианту постов.
#keccak256
🔥15👍2
Баг из протокола Mia
На днях выпустили отчет по аудиту Mia DAO, где был один примечательный med issue, о котором хочется рассказать.
Посмотрите на код ниже и подумайте, в чем тут может быть проблема:
Ответ:
Функция не будет работать, так как deposits никогда не были сохранены в памяти .
Вот как правильно нужно было сделать:
{
uint len = _deposits.length;
deposits = new uint256[](len);
for (uint256 i = 0; i < len; i++) {
deposits[i] = _normalizeDecimals(_deposits[i], ERC20(_tokens[i]).decimals());
}
}
Интересный пример, не так ли?
#bug
На днях выпустили отчет по аудиту Mia DAO, где был один примечательный med issue, о котором хочется рассказать.
Посмотрите на код ниже и подумайте, в чем тут может быть проблема:
function _normalizeDecimalsMultiple(uint256[] memory _deposits, address[] memory _tokens) internal view
returns (uint256[] memory deposits)
{
for (uint256 i = 0; i < _deposits.length; i++) {
deposits[i] = _normalizeDecimals(_deposits[i], ERC20(_tokens[i]).decimals());
}
}
Более опытные разработчки, вероятно, сразу поймут, в чем дело. Хотя этот баг был найден всего лишь одним аудитором.Ответ:
Вот как правильно нужно было сделать:
{
uint len = _deposits.length;
deposits = new uint256[](len);
for (uint256 i = 0; i < len; i++) {
deposits[i] = _normalizeDecimals(_deposits[i], ERC20(_tokens[i]).decimals());
}
}
#bug
👍12
Голоса для канала?
С новым обновлением в Телеграм появилась возможность для каналов делать сторис.
Как думаете, нужна ли такая опция для контента? Может делать дневные задачи с ними?
Можно поддержать канал бустом по ссылке: https://news.1rj.ru/str/solidityset?boost
#boost
С новым обновлением в Телеграм появилась возможность для каналов делать сторис.
Как думаете, нужна ли такая опция для контента? Может делать дневные задачи с ними?
Можно поддержать канал бустом по ссылке: https://news.1rj.ru/str/solidityset?boost
#boost
Telegram
Solidity. Смарт контракты и аудит
Проголосуйте за канал, чтобы он получил больше возможностей.
👍7
Программа 3 модуля курса
Заканчивается сентябрь, я понемногу выхожу из отпуска, и пора продолжать наше обучение по курсу "Начинающий разработчик смарт контрактов".
На предыдущих двух модулях мы прошли базовые элементы языка, узнали больше про стандарты EIP, наследования и низкоуровневые вызовы, а сейчас пришла пора практики.
Третий модуль будет хардкорно практическим.
Вместе с темами уроков ученики будут тренироваться:
1. Работе в редакторе кода;
1. Работе с GitHub;
2. Написанием комментариев к коду;
3. Изучением контрактов реальных проектов;
4. Решении задач и базовые понимания безопасности;
5. Плюс два финальных проекта, которые можно будет показать в резюме;
Будет очень много практики! Я хочу, чтобы к моменту 4-5 модуля, где мы будем проходить уже более специфические темы, типа прокси контраков и работе с памятью, ученики имели хорошую базу и навыки работы с кодом.
Итак, программа третьего модуля:
1. Подготовка и настройка IDE
1.1. Плагины для работы
2. Терминал, Node js, NPM
3. Начало работы с Git и GitHub
4. Hardhat. Настройка и запуск
5. Hardhat. Из чего состоит
6. Foundry. Настройка и запуск
7. Foundry. Из чего состоит
9. Голландский аукцион
10. MultiSig и Timelock
11. Commit/reveal
12. DAO и governance
13. Ролевая система
14. ERC4626
15. ERC4907
16. ERC6551
Ориентировочный старт: 2 октября
Стоимость: 3000 рублей, 30 (USDT, USDC)
Хочу также напомнить, что программа курса пишется для новичков в программировании, поэтому только на данном этапе мы будем проходить github и редакторы кода.
Начало продаж, по традиции, в среду.
#курс
Заканчивается сентябрь, я понемногу выхожу из отпуска, и пора продолжать наше обучение по курсу "Начинающий разработчик смарт контрактов".
На предыдущих двух модулях мы прошли базовые элементы языка, узнали больше про стандарты EIP, наследования и низкоуровневые вызовы, а сейчас пришла пора практики.
Третий модуль будет хардкорно практическим.
Вместе с темами уроков ученики будут тренироваться:
1. Работе в редакторе кода;
1. Работе с GitHub;
2. Написанием комментариев к коду;
3. Изучением контрактов реальных проектов;
4. Решении задач и базовые понимания безопасности;
5. Плюс два финальных проекта, которые можно будет показать в резюме;
Будет очень много практики! Я хочу, чтобы к моменту 4-5 модуля, где мы будем проходить уже более специфические темы, типа прокси контраков и работе с памятью, ученики имели хорошую базу и навыки работы с кодом.
Итак, программа третьего модуля:
1. Подготовка и настройка IDE
1.1. Плагины для работы
2. Терминал, Node js, NPM
3. Начало работы с Git и GitHub
4. Hardhat. Настройка и запуск
5. Hardhat. Из чего состоит
6. Foundry. Настройка и запуск
7. Foundry. Из чего состоит
9. Голландский аукцион
10. MultiSig и Timelock
11. Commit/reveal
12. DAO и governance
13. Ролевая система
14. ERC4626
15. ERC4907
16. ERC6551
Ориентировочный старт: 2 октября
Стоимость: 3000 рублей, 30 (USDT, USDC)
Хочу также напомнить, что программа курса пишется для новичков в программировании, поэтому только на данном этапе мы будем проходить github и редакторы кода.
Начало продаж, по традиции, в среду.
#курс
🔥12❤1👍1
Чуть больше о практике модуля
Меня попросили рассказать чуть больше о практической стороне модуля, и чем она будет отличаться от практических заданий в предыдущих частях курса.
Итак, для тех, кто не знает, практически после каждого урока в предыдущих модулях было небольшое задание: прочитать статью, написать функцию или контракт, подключить библиотеку и т.д.
В этот раз будет по другому.
Сейчас главная цель не только дать основную идею урока, но и научить работать со средой IDE, GitHub и реальными проектами, которые могут попасться на собеседовании или уже в работе по найму.
Вы научитесь быстро разворачивать протоколы в своем редакторе кода, понимать, за что отвечают функции, выработать свой метод чтения смарт контрактов и замечать проблемы в коде.
В модуле будут несколько реальных протоколов для изучения архитектуры и функционала их систем, разборы задач с ethernaut и дополнительные задачи для самостоятельного решения, а также практика по итогам третьей и четвертой недели, которую вы сможете показать в резюме.
После легкой первой недели, приготовьтесь к тому, что нужно будет уделять много времени на практику.
#курс
Меня попросили рассказать чуть больше о практической стороне модуля, и чем она будет отличаться от практических заданий в предыдущих частях курса.
Итак, для тех, кто не знает, практически после каждого урока в предыдущих модулях было небольшое задание: прочитать статью, написать функцию или контракт, подключить библиотеку и т.д.
В этот раз будет по другому.
Сейчас главная цель не только дать основную идею урока, но и научить работать со средой IDE, GitHub и реальными проектами, которые могут попасться на собеседовании или уже в работе по найму.
Вы научитесь быстро разворачивать протоколы в своем редакторе кода, понимать, за что отвечают функции, выработать свой метод чтения смарт контрактов и замечать проблемы в коде.
В модуле будут несколько реальных протоколов для изучения архитектуры и функционала их систем, разборы задач с ethernaut и дополнительные задачи для самостоятельного решения, а также практика по итогам третьей и четвертой недели, которую вы сможете показать в резюме.
После легкой первой недели, приготовьтесь к тому, что нужно будет уделять много времени на практику.
#курс
❤3
*Отзывы после второго модуля курса*
Хотел бы поделиться парой отзывов, которые написали ученики второго модуля.
Когда делал запуск первого модуля, то немного боялся, что курс не понравится и мало кто захочет продолжить свое обучение со мной. Приятно бывает ошибаться.
Вот уже третий модуль готовится к старту на следующей неделе, и большая часть учеников с обоих потоков планируют продолжить свой путь! Это здорово мотивирует работать над курсом еще усерднее, подбирая материалы и практику для прокачки навыков!
Третий модуль будет еще круче!
#курс
Хотел бы поделиться парой отзывов, которые написали ученики второго модуля.
Когда делал запуск первого модуля, то немного боялся, что курс не понравится и мало кто захочет продолжить свое обучение со мной. Приятно бывает ошибаться.
Вот уже третий модуль готовится к старту на следующей неделе, и большая часть учеников с обоих потоков планируют продолжить свой путь! Это здорово мотивирует работать над курсом еще усерднее, подбирая материалы и практику для прокачки навыков!
Третий модуль будет еще круче!
#курс
🔥9❤2
Что тормозило мое обучение?
Во время своего обучение мне всегда не хватало информации о том, как можно использовать новые знания. Вот, к примеру, изучил я прохождение по массиву в цикле, а что с этим делать дальше - не знаю. Или же, разобрался с этим пресловутым delegatecall - а нафига?
Хорошо знать что-то, другое дело уметь применять это в нужный момент.
Еще одна проблема встала, когда я пошел устраиваться на работу и мне прислали тестовое задание, в котором настройка проекта шла через foundry, с которым я ранее не работал вообще. И пришлось "изобретать велосипед", чтобы хоть как-то наладить это для себя через hardhat.
Далее трудности стали возникать при первых конкурсных аудитах, когда нужно было быстро понять, в чем суть протокола, и за что отвечают те или иные функции. К слову сказать, и сейчас на это уходит день-два, но это скорее из-за сложности и размера проекта, а не из-за того, что что-то не понятно.
Все это могло проходить проще, если бы я уже на этапе обучения разобрался, как работать с реальными проектами и читать код.
Вот и на третьем модуле я хочу показать ученикам, как это делается проще и быстрее, с учетом редактора кода, который является отличным инструментом для анализа.
После первых двух модулей, у вас уже есть знания о базовом синтаксисе языка и первой практикой кода. Сейчас пришло время научиться этим всем пользоваться!
Присоединяетесь!
Программа курса Отзывы
Старт: 2 октября
#курс
Во время своего обучение мне всегда не хватало информации о том, как можно использовать новые знания. Вот, к примеру, изучил я прохождение по массиву в цикле, а что с этим делать дальше - не знаю. Или же, разобрался с этим пресловутым delegatecall - а нафига?
Хорошо знать что-то, другое дело уметь применять это в нужный момент.
Еще одна проблема встала, когда я пошел устраиваться на работу и мне прислали тестовое задание, в котором настройка проекта шла через foundry, с которым я ранее не работал вообще. И пришлось "изобретать велосипед", чтобы хоть как-то наладить это для себя через hardhat.
Далее трудности стали возникать при первых конкурсных аудитах, когда нужно было быстро понять, в чем суть протокола, и за что отвечают те или иные функции. К слову сказать, и сейчас на это уходит день-два, но это скорее из-за сложности и размера проекта, а не из-за того, что что-то не понятно.
Все это могло проходить проще, если бы я уже на этапе обучения разобрался, как работать с реальными проектами и читать код.
Вот и на третьем модуле я хочу показать ученикам, как это делается проще и быстрее, с учетом редактора кода, который является отличным инструментом для анализа.
После первых двух модулей, у вас уже есть знания о базовом синтаксисе языка и первой практикой кода. Сейчас пришло время научиться этим всем пользоваться!
Присоединяетесь!
Программа курса Отзывы
Старт: 2 октября
#курс
❤6🔥3👍1
Практика практике рознь
Практика для новичка в программировании является чуть ли не единственным способом обучения. Если просто смотреть видео или читать посты, можно уловить суть языка, но написать код в редакторе с полным пониманием "а зачем ты это пишешь?" - немного другое.
Мне всегда было проще учиться на примерах. И чем лучше становился мой навык владения кодом, тем сложнее требовались эти примеры. Вопрос был в том, а где их взять?
Когда год назад, я для практики с defi открыл код протокола Compound, то был немного в шоке от объема и сложности. Перешел на Uniswap... Лучше не стало.
На тот момент меня спасли конкурсные аудиты. Я смотрел различные репо и учился читать код профессиональных команд. Ловить связи функций, поток транзакций, писать тесты и многое другое.
Я подбирал для себя не самые сложные аудиты и рос вместе с ними.
Задачи ethernaut, dvd, capture the ether помогли мне понимать "внутреннюю кухню" функций и языка. Но и к ним нужно подходить с умом.
На третьем модуле я хочу передать этот опыт ученикам, чтобы ваш путь к разработке занял намного меньше времени, чем у меня.
Вы должны научиться не только писать свой код, но и разбираться в чужом. Брать от туда лучшие практики и паттерны, видеть проблемы и избегать их в своих проектах.
Это и будет основной темой третьего модуля.
Сегодня были открыты продажи. Успейте присоединиться!
Программа модуля. Реквизиты для оплаты
Старт 2 октября.
#курс
Практика для новичка в программировании является чуть ли не единственным способом обучения. Если просто смотреть видео или читать посты, можно уловить суть языка, но написать код в редакторе с полным пониманием "а зачем ты это пишешь?" - немного другое.
Мне всегда было проще учиться на примерах. И чем лучше становился мой навык владения кодом, тем сложнее требовались эти примеры. Вопрос был в том, а где их взять?
Когда год назад, я для практики с defi открыл код протокола Compound, то был немного в шоке от объема и сложности. Перешел на Uniswap... Лучше не стало.
На тот момент меня спасли конкурсные аудиты. Я смотрел различные репо и учился читать код профессиональных команд. Ловить связи функций, поток транзакций, писать тесты и многое другое.
Я подбирал для себя не самые сложные аудиты и рос вместе с ними.
Задачи ethernaut, dvd, capture the ether помогли мне понимать "внутреннюю кухню" функций и языка. Но и к ним нужно подходить с умом.
На третьем модуле я хочу передать этот опыт ученикам, чтобы ваш путь к разработке занял намного меньше времени, чем у меня.
Вы должны научиться не только писать свой код, но и разбираться в чужом. Брать от туда лучшие практики и паттерны, видеть проблемы и избегать их в своих проектах.
Это и будет основной темой третьего модуля.
Сегодня были открыты продажи. Успейте присоединиться!
Программа модуля. Реквизиты для оплаты
Старт 2 октября.
#курс
А время идет, так почему бы не начать уже сегодня?
18 первых учеников уже на канале третьего модуля! Успейте занять свое место!
Когда в июле запускался первый модуль курса, я писал, что к осени ученики могут получить крепкую основу для дальнейшего изучения Solidity, и что не стоит откладывать на потом свои желания начать что-либо.
Здорово, что многие тогда получили хороший заряд мотивации и пошли дальше программы. Некоторые из них уже пробуют получить первую работу или устроиться в зарубежную компанию на стажировку! Я верю в вас!
До нового года планируется еще два модуля - 3 (практический) и 4 (более специализированный). За это время вы сможете укрепить свои знания в Solidity, создать портфолио, которое можно показать работодателям, и, возможно, найти новую работу.
С третьим модулем мы начнем также создавать ваше резюме, которое можно будет показывать на собеседованиях. Работодатель будет видеть ваши наработки и уровень знаний!
Не теряйте время, пора начинать! Присоединяйтесь!
Программа модуля. Реквизиты для оплаты
Старт 2 октября.
Продажи только до конца недели!
#курс
18 первых учеников уже на канале третьего модуля! Успейте занять свое место!
Когда в июле запускался первый модуль курса, я писал, что к осени ученики могут получить крепкую основу для дальнейшего изучения Solidity, и что не стоит откладывать на потом свои желания начать что-либо.
Здорово, что многие тогда получили хороший заряд мотивации и пошли дальше программы. Некоторые из них уже пробуют получить первую работу или устроиться в зарубежную компанию на стажировку! Я верю в вас!
До нового года планируется еще два модуля - 3 (практический) и 4 (более специализированный). За это время вы сможете укрепить свои знания в Solidity, создать портфолио, которое можно показать работодателям, и, возможно, найти новую работу.
С третьим модулем мы начнем также создавать ваше резюме, которое можно будет показывать на собеседованиях. Работодатель будет видеть ваши наработки и уровень знаний!
Не теряйте время, пора начинать! Присоединяйтесь!
Программа модуля. Реквизиты для оплаты
Старт 2 октября.
Продажи только до конца недели!
#курс
👍1
Где и как искать работу в web3?
Популярный вопрос от учеников курса и участников данного канала. В этом посте хочу собрать некоторую общую информацию по вакансиям, требованиям и ресурсам для соискателей.
Сначала пройдемся по требованиям к разработчикам web3.
Прежде всего в вакансиях доминируют два языка: Solidity и Rust. Реже можно встретить требования к знаниям C, C++, Go, Huff и Vyper. Тем не менее, знание этих языков будет хорошим плюсом.
В некоторых компаниях разработчики смарт контрактов должны еще подключать фронтенд к смарт контрактам, поэтому встречаются требования JavaScript, TypeScript, React а также популярных библиотек, типа web3.js, ethers.js.
Также зачастую в мелких и средних компаниях разработчики должны писать тесты для своих контрактов. В связи с этим требуются знания одной из программ: Hardhat, Foundry, Truffle (уже крайне редко). На своем опыте могу сказать, что чаще всего в вакансиях требуется Foundry, так как он чуть быстрее и проще двух других.
Не меньшим плюсом, будут навыки работы с GitHub, Python, NPM.
При заполнении форм на какую-либо вакансию, с вероятностью 60-70%, вас попросят дать ссылку на ваш аккаунт в LinkedIn, Twitter и на GitHub.
Кстати, на GitHub лучше бы иметь пару тройку проектов, которые вы писали. За рубежом Ваш GitHub скажет намного больше, чем любое резюме.
Что же касается опыта в 2-3 года, то тут скорее происходит отсев не уверенных кандидатов. Вы вполне можете подавать свои резюме на эти позиции и пытаться пройти собеседование. При этом помните, кандидата без опыта раскусят сразу. Будьте готовы отвечать на каверзные вопросы и писать код прямо на собеседовании!
Где искать работу?
Для начала можно попробовать поискать тут:
1. https://cyberacademy.dev/jobs
2. https://career.habr.com/vacancies
3. Ну и наш хедхантер, хоть я к нему и отношусь не очень (тупой поиск и фильтр)
P.S. Есть еще фриланс сайты, типа upwork, но рекомендовать не стану, так как у самого там не особо получалось. Но некоторые находити там подработку.
Больше вакансий можно найти на зарубежных порталах:
1. https://cryptojobslist.com/solidity
2. https://cryptocurrencyjobs.co/
3. https://crypto.jobs/
4. https://web3.career/crypto-jobs
5. https://www.indeed.com/q-Blockchain-Developer-jobs.html
6. https://beincrypto.com/jobs/
7. https://www.glassdoor.co.in/
Ну, и, конечно, LinkedIn с разделом вакансий по региону. Вероятно, это одно из самых популярных мест для поиска на западном рынке.
Можно также отслеживать новые вакансии на проектах, которые вам нравятся, типа Bibance, Immunefi и т.д. Только учтите, что на популярных проектах требования гораздо выше, как и конкуренция.
Также я крайне рекомендую зарегистрироваться в Дискорде и вступить в группы:
1. Web3SecurityDAO;
2. Guardian Audits;
3. Code4rena;
4. Immunefi;
Иногда там в чатах, или даже в отдельных топиках, проскальзывают вакансии от компаний, которые больше нигде не публикуются.
Можно также подписаться на некоторые чаты в Телеграм, где также иногда размещаются вакансии:
1. https://news.1rj.ru/str/eth_ru
2. https://news.1rj.ru/str/eth_jobs
3. https://news.1rj.ru/str/eth_dev
4. https://news.1rj.ru/str/cyberacademy
5. https://news.1rj.ru/str/lobsters_hr
6. https://news.1rj.ru/str/blockchainjunauditors
Главный вопрос: Можно ли найти работу, зная только Solidity?
Можно. Но будет чуть труднее.
Главным козырем у вас должен стать ваш GitHub, на котором будут размещены ваши проекты, наработки, тесты, решения задач и т.д.
Поэтому, если давать только один совет для поиска работы, то он будет звучать как - оформите свой GitHub! Считайте это как Инстаграм для мастера по ноготочкам, или отзыв близкого друга об автомастерской.
Ну, вот как бы так. Если у вас есть, что добавить, напишите в комментариях для других участников чата. Давайте вместе создадим крутой гайд по поиску работы!
P.S. Сохраняйте себе, чтобы не потерять. Буду благодарен репостам)
#job
Популярный вопрос от учеников курса и участников данного канала. В этом посте хочу собрать некоторую общую информацию по вакансиям, требованиям и ресурсам для соискателей.
Сначала пройдемся по требованиям к разработчикам web3.
Прежде всего в вакансиях доминируют два языка: Solidity и Rust. Реже можно встретить требования к знаниям C, C++, Go, Huff и Vyper. Тем не менее, знание этих языков будет хорошим плюсом.
В некоторых компаниях разработчики смарт контрактов должны еще подключать фронтенд к смарт контрактам, поэтому встречаются требования JavaScript, TypeScript, React а также популярных библиотек, типа web3.js, ethers.js.
Также зачастую в мелких и средних компаниях разработчики должны писать тесты для своих контрактов. В связи с этим требуются знания одной из программ: Hardhat, Foundry, Truffle (уже крайне редко). На своем опыте могу сказать, что чаще всего в вакансиях требуется Foundry, так как он чуть быстрее и проще двух других.
Не меньшим плюсом, будут навыки работы с GitHub, Python, NPM.
При заполнении форм на какую-либо вакансию, с вероятностью 60-70%, вас попросят дать ссылку на ваш аккаунт в LinkedIn, Twitter и на GitHub.
Кстати, на GitHub лучше бы иметь пару тройку проектов, которые вы писали. За рубежом Ваш GitHub скажет намного больше, чем любое резюме.
Что же касается опыта в 2-3 года, то тут скорее происходит отсев не уверенных кандидатов. Вы вполне можете подавать свои резюме на эти позиции и пытаться пройти собеседование. При этом помните, кандидата без опыта раскусят сразу. Будьте готовы отвечать на каверзные вопросы и писать код прямо на собеседовании!
Где искать работу?
Для начала можно попробовать поискать тут:
1. https://cyberacademy.dev/jobs
2. https://career.habr.com/vacancies
3. Ну и наш хедхантер, хоть я к нему и отношусь не очень (тупой поиск и фильтр)
P.S. Есть еще фриланс сайты, типа upwork, но рекомендовать не стану, так как у самого там не особо получалось. Но некоторые находити там подработку.
Больше вакансий можно найти на зарубежных порталах:
1. https://cryptojobslist.com/solidity
2. https://cryptocurrencyjobs.co/
3. https://crypto.jobs/
4. https://web3.career/crypto-jobs
5. https://www.indeed.com/q-Blockchain-Developer-jobs.html
6. https://beincrypto.com/jobs/
7. https://www.glassdoor.co.in/
Ну, и, конечно, LinkedIn с разделом вакансий по региону. Вероятно, это одно из самых популярных мест для поиска на западном рынке.
Можно также отслеживать новые вакансии на проектах, которые вам нравятся, типа Bibance, Immunefi и т.д. Только учтите, что на популярных проектах требования гораздо выше, как и конкуренция.
Также я крайне рекомендую зарегистрироваться в Дискорде и вступить в группы:
1. Web3SecurityDAO;
2. Guardian Audits;
3. Code4rena;
4. Immunefi;
Иногда там в чатах, или даже в отдельных топиках, проскальзывают вакансии от компаний, которые больше нигде не публикуются.
Можно также подписаться на некоторые чаты в Телеграм, где также иногда размещаются вакансии:
1. https://news.1rj.ru/str/eth_ru
2. https://news.1rj.ru/str/eth_jobs
3. https://news.1rj.ru/str/eth_dev
4. https://news.1rj.ru/str/cyberacademy
5. https://news.1rj.ru/str/lobsters_hr
6. https://news.1rj.ru/str/blockchainjunauditors
Главный вопрос: Можно ли найти работу, зная только Solidity?
Можно. Но будет чуть труднее.
Главным козырем у вас должен стать ваш GitHub, на котором будут размещены ваши проекты, наработки, тесты, решения задач и т.д.
Поэтому, если давать только один совет для поиска работы, то он будет звучать как - оформите свой GitHub! Считайте это как Инстаграм для мастера по ноготочкам, или отзыв близкого друга об автомастерской.
Ну, вот как бы так. Если у вас есть, что добавить, напишите в комментариях для других участников чата. Давайте вместе создадим крутой гайд по поиску работы!
P.S. Сохраняйте себе, чтобы не потерять. Буду благодарен репостам)
#job
👍34🔥3
Три дня до конца продаж на 3 модуль курса
На следующей неделе, уже с понедельника, стартует обучение на третьем модуле нашего курса.
За один месяц вы сможете прокачать свои навыки Solidity разработчика, как если бы обучались сами несколько месяцев!
Это будет самая интенсивная группа, направленная именно на практику с кодом и сопутствующими программами.
Конечно, всю информацию можно найти и в сети на профильных порталах, но здесь она собрана и организована так, чтобы ученики не бросали обучение после первых трудностей. Вы всегда сможете задать вопрос в чате курса или мне в личные сообщения и разобраться с проблемой.
Если вы хотели попробовать что-то новое этой осенью, пусть это будет третий модуль курса!
Программа модуля. Реквизиты для оплаты
Старт 2 октября.
Продажи только до конца недели!
#курс
На следующей неделе, уже с понедельника, стартует обучение на третьем модуле нашего курса.
За один месяц вы сможете прокачать свои навыки Solidity разработчика, как если бы обучались сами несколько месяцев!
Это будет самая интенсивная группа, направленная именно на практику с кодом и сопутствующими программами.
Конечно, всю информацию можно найти и в сети на профильных порталах, но здесь она собрана и организована так, чтобы ученики не бросали обучение после первых трудностей. Вы всегда сможете задать вопрос в чате курса или мне в личные сообщения и разобраться с проблемой.
Если вы хотели попробовать что-то новое этой осенью, пусть это будет третий модуль курса!
Программа модуля. Реквизиты для оплаты
Старт 2 октября.
Продажи только до конца недели!
#курс
👍3🔥2👎1😁1🤣1
Цикл постов на канале по Foundry
К планируемому запуску проекта этой осенью, о котором писал ранее, я хочу сам еще раз пройтись по программе Foundry и повторить многие моменты с написанием тестов для смарт контрактов.
И я подумал, а что если на канале в бесплатном формате сделать цикл постов-уроков по работе с Foundry с нуля?
Показать, как пишутся тесты, фаз и инвариант тесты, подключение defi контрактов, форки и т.д. Сначала по каждому из пунктов в отдельности, потом уже практическая часть.
Так я смогу повторить основные моменты Foundry, многие из вас начнут осваивать тесты с этой средой, а другие - подскажут, как сделать лучше.
В итоге получится детальный гайд по работе с данной программой на русском языке.
P.S. Думаю начать писать уроки где-то через неделю-две, после того как разберусь с текущими задачами.
#foundry
К планируемому запуску проекта этой осенью, о котором писал ранее, я хочу сам еще раз пройтись по программе Foundry и повторить многие моменты с написанием тестов для смарт контрактов.
И я подумал, а что если на канале в бесплатном формате сделать цикл постов-уроков по работе с Foundry с нуля?
Показать, как пишутся тесты, фаз и инвариант тесты, подключение defi контрактов, форки и т.д. Сначала по каждому из пунктов в отдельности, потом уже практическая часть.
Так я смогу повторить основные моменты Foundry, многие из вас начнут осваивать тесты с этой средой, а другие - подскажут, как сделать лучше.
В итоге получится детальный гайд по работе с данной программой на русском языке.
P.S. Думаю начать писать уроки где-то через неделю-две, после того как разберусь с текущими задачами.
#foundry
👍28🔥9
Цикл постов про Foundry - 2
Рад, что так позитивно восприняли идею о постах-уроках по Foundry.
Потихоньку собираю кейсы, которые нужно будет осветить в практике. И тут вопрос для вас:
Какие были проблемы с тестами Foundry? Что не получалось и что вызывало вопросы?
Просто в комментах напишите.
#foundry
Рад, что так позитивно восприняли идею о постах-уроках по Foundry.
Потихоньку собираю кейсы, которые нужно будет осветить в практике. И тут вопрос для вас:
Какие были проблемы с тестами Foundry? Что не получалось и что вызывало вопросы?
Просто в комментах напишите.
#foundry
👍1
⚡️⚡️⚡️ Менее 12 часов до закрытия продаж! ⚡️⚡️⚡️
Сегодня последний день продаж доступа на третий модуль курса. Если опоздаете, то придется ждать следующего потока!
Напомню, в этот раз мы будем настраивать рабочую среду для профессиональной разработки смарт контрактов, изучать протоколы и многие аспекты кода, работать с безопасностью и решать задачи .
У нас уже набралась достаточно большая группа учеников, поэтому с понедельника, с началом курса, продаж не будет совсем!
Успейте занять свое место!
Программа модуля
Условия и оплата
Старт 2 октября!
#курс
Сегодня последний день продаж доступа на третий модуль курса. Если опоздаете, то придется ждать следующего потока!
Напомню, в этот раз мы будем настраивать рабочую среду для профессиональной разработки смарт контрактов, изучать протоколы и многие аспекты кода, работать с безопасностью и решать задачи .
У нас уже набралась достаточно большая группа учеников, поэтому с понедельника, с началом курса, продаж не будет совсем!
Успейте занять свое место!
Программа модуля
Условия и оплата
Старт 2 октября!
#курс
👍1
Темы для цикла постов по Foundry
Я продолжаю собирать темы для небольшого цикла обучающих постов по написанию тестов на Foundry. Пока что удалось собрать небольшой список:
1. Установка и настройка Foundry;
2. Основные команды в терминале;
3. Настройка remapping;
4. Взаимодействие hardhat и Foundry;
5. Популярные команды cast;
6. Локальный блокчейн Anvil;
7. Разбор читкодов;
8. Разбор библиотек для тестов;
9. Разбор traces;
10. Простые тесты;
11. Fuzz тесты;
12. Тесты инвариантов;
13. Differential Testing;
14. Работа с форками;
15. Деплой и верификация;
16. Дебаггер;
17. Работа с компилятором в тестах;
18. Отправка транзакций в разных блоках;
19. Тестирование для L2 сетей;
20. Тестирование для ZK Sync;
21. Работа с газом;
22. Разбор уже написанных тестов на протоколе;
23. Работа с отчетами;
24. Проведение прицельных тестов: на контракт, на функцию.
25. Подключение etherscan, infura, alchemy для тестов;
UPD. 26. Тестирование прокси контрактов
UPD. 27. Тестирование работы с chainlink
UPD. 28. Тестирование мостов
Начну выкладывать цикл недели через две, когда на основном курсе от канала пройдем темы с программами для тестов.
Пока что, буду рад, если накидаете еще темы или вопросы, которые у вас возникали при написании тестов.
У меня пока что самая большая проблема в способности быстро разобраться с уже готовыми тестами протокола и подключить свои. В том плане, что обычно уходит несколько часов или даже день для этого, а хотелось бы выработать стратегия, чтобы все получалось быстрее.
#foundry
Я продолжаю собирать темы для небольшого цикла обучающих постов по написанию тестов на Foundry. Пока что удалось собрать небольшой список:
1. Установка и настройка Foundry;
2. Основные команды в терминале;
3. Настройка remapping;
4. Взаимодействие hardhat и Foundry;
5. Популярные команды cast;
6. Локальный блокчейн Anvil;
7. Разбор читкодов;
8. Разбор библиотек для тестов;
9. Разбор traces;
10. Простые тесты;
11. Fuzz тесты;
12. Тесты инвариантов;
13. Differential Testing;
14. Работа с форками;
15. Деплой и верификация;
16. Дебаггер;
17. Работа с компилятором в тестах;
18. Отправка транзакций в разных блоках;
19. Тестирование для L2 сетей;
20. Тестирование для ZK Sync;
21. Работа с газом;
22. Разбор уже написанных тестов на протоколе;
23. Работа с отчетами;
24. Проведение прицельных тестов: на контракт, на функцию.
25. Подключение etherscan, infura, alchemy для тестов;
UPD. 26. Тестирование прокси контрактов
UPD. 27. Тестирование работы с chainlink
UPD. 28. Тестирование мостов
Начну выкладывать цикл недели через две, когда на основном курсе от канала пройдем темы с программами для тестов.
Пока что, буду рад, если накидаете еще темы или вопросы, которые у вас возникали при написании тестов.
У меня пока что самая большая проблема в способности быстро разобраться с уже готовыми тестами протокола и подключить свои. В том плане, что обычно уходит несколько часов или даже день для этого, а хотелось бы выработать стратегия, чтобы все получалось быстрее.
#foundry
👍10🔥7❤1