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

Solidity *

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

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

Создание Blockchain CTF: практический опыт

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.7K

Мы в CyberOK в ходе пентестов очень любим “взламывать” разнообразные инновационные и необычные вещи. Смарт-контракты на блокчейне давно появились на наших радарах, так как они не только предлагают прозрачность, надежность и автоматизацию, но и легко могут стать объектом атак и уязвимостей. В рамках кибербитвы Standoff 10 мы решили объединить наш опыт по анализу защищенности и расследованию инцидентов в блокчейне и представить его в игровой форме — в виде открытой платформы для проведения соревнований Capture The Flag (CTF). Мы развернули собственную блокчейн-сеть с помощью ganache, чтобы дать участникам возможность взаимодействовать со смарт-контрактами в наиболее реалистичной атмосфере.

Эта статья – подробный туториал о том, как сделать такой же CTF для блокчейна своими руками. Я расскажу какие технологии могут помочь вам поиграться со смарт-контрактами у себя дома и устроить собственное соревнование из подручных средств.

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

Взаимозаменяемые токены в асинхронных сетях

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.2K

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии5

Как получить доступ к данным Ethereum смарт-контракта в real-time из Python

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.5K

Всем привет! Представим, что вам нужен доступ к данным каких-либо смарт-контрактов на Ethereum (или Polygon, BSC и т.д.), например, Uniswap, SushiSwap, AAVE (или даже PEPE-coin) в реальном времени, чтобы анализировать их с помощью стандартных инструментов дата-аналитиков: Python, Pandas, Matplotlib и т.д. В этом туториале я покажу инструменты для доступа к данным на блокчейне, которые больше похожи на хирургический скальпель (сабграфы The Graph), чем на швейцарский нож (доступ к RPC ноде) или, скажем, молоток (готовые API от компаний-разработчиков). Надеюсь, мои неумелые метафоры вас не пугают. Кому интересно научиться, добро пожаловать под кат.

Под кат
Всего голосов 9: ↑8 и ↓1+7
Комментарии1

Как устроен DEX на OrderBook

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров2.3K

Привет! На связи – Павел Найданов, блокчейн-разработчик в MetaLamp.В этом материале я расскажу o том, как типичный для сферы классических финансов инструмент OrderBook прижился в мире web3.

На протяжении нескольких лет я изучаю тонкости устройства web3 продуктов и собираю ценную информацию для себя и будущих коллег в формате мини-энциклопедии. Вместе с коллегами я готовлю wiki-статьи для нашей бесплатной карты развития по предметке web3. И часть материалов мы решили адаптировать, чтобы сделать мир крипты доступным для более широкого круга читателей. Это вторая статья из цикла, посвященного устройству децентрализованных обменников. В прошлом выпуске мы с коллегами – Алексеем Куценко и Романом Ярлыковым – разбирались в устройстве DEX на AMM с наглядными примерами и расчётами. В этой статье приглашаю рассмотреть альтернативу автоматических маркет-мейкеров – DEX на OrderBook. 

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

Истории

История умных контрактов: приключение, начатое Ником Сабо

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2.8K

Эта статья – путеводитель по увлекательному миру умных контрактов. Она позволит вам проследить путь от рождения концепции умных контрактов в глубинах мысли Ника Сабо до их современного применения в финтехе.

Читать далее
Всего голосов 15: ↑11 и ↓4+7
Комментарии4

18 нетрадиционных инструментов для Solidity разработчиков

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.5K

Приветствую всех любопытных умов и любителей блокчейн-разработки! Думаю нам всем знакомы такие инструменты, как Hardhat, Infura, Metamask и Web3.js. Они являются основными строительными блоками многих наших проектов и обязательным компонентом каждого арсенала разработчика Solidity.

В этой статье рассмотрим 18 нестандартных, но потенциально удивительных инструментов для разработчиков Solidity в 2023 году. Эти инструменты помогут взглянуть на блокчейн-разработку под новым углом и обновить ваши текущие проекты. Давайте вместе откроем новые горизонты в мире блокчейн ...

Читать далее
Всего голосов 29: ↑24 и ↓5+19
Комментарии1

Создание NFT-коллекции для новичков

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров4.7K

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

Подробности создания NFT-коллекции
Всего голосов 8: ↑3 и ↓5-2
Комментарии7

Solidity: Путешествие в сердце оптимизации

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров7K

Приветствую, кодеры Solidity!

Если вы здесь, то или у вас есть смарт-контракт, который готов к «похудению», или вы просто пытаетесь нарастить свои мышцы в области оптимизации Solidity. Как бы то ни было, сегодня я предлагаю вам навес золота в виде 27 проверенных методов оптимизации. Это ваш новый тренажерный зал для мозга! Всегда приятно иметь на руках свежий чек-лист перед запуском нового проекта. Итак, погнали!

Читать далее
Всего голосов 23: ↑22 и ↓1+21
Комментарии12

Ethereum Contract ABI Specification. Взаимодействие с контрактом

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.3K

В данной статье я хочу познакомить вас с тем, как осуществляется кодирование данных в транзакции в соответствии с Contract ABI Specification. Мы вручную разберём весь процесс кодирования, создадим контракт и произведём вызов его методов. В конце я покажу как при помощи Contract ABI создать объект-оболочку через web3.js, и через него вызывать методы контракта.

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

Cмарт-контракт. Solidity + Ganache

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.3K

В данной статье мы познакомимся с тем, как задеплоить очень простой смарт-контракт на локальный блокчейн Ganache. После развёртывания смарт-контракта, мы научимся взаимодействовать с ним путём отправки транзакций в его адрес. Для простоты я буду использовать фреймворк Truffle, так как он облегчает деплой и взаимодействие со смарт-контрактом.

Читать далее
Всего голосов 3: ↑1 и ↓2-1
Комментарии0

Что такое индексация смарт-контрактов в Web3 разработке? (Начальные знания не требуются)

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров3.5K

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

Сложно сказать, что культура инженерии данных глубоко укоренилась в сообществе разработчиков Web3. И не каждый разработчик может легко определить, что означает индексация в контексте Web3. Я хотел бы уточнить некоторые детали на эту тему и поговорить об инструменте под названием The Graph, который стал де-факто стандартом индустрии для доступа к данным на блокчейне для создателей DApp'ов (децентрализованных приложений).

Под кат
Всего голосов 14: ↑11 и ↓3+8
Комментарии2

Из экономистов в программисты или как я стал аудитором смарт-контрактов

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.2K

Самая обсуждаемая тема в криптосообществе: это как найти Solidity разработчиков, создать свой DeFi проект и на этом поднять большие деньги. Я хотел поделиться с Вами как я с нуля выучил язык программирования Solidity и попал на работу в известную IT компанию.

У меня высшее экономическое образование и опыт работы в банковской сфере более 15 лет. Однако, даже и не думал в страшном сне, что окажусь на улице по причине сокращения штатов в одном, очень известном, государственном банке. Летом 2016 года под сокращение попало более 50% персонала, в том числе и все региональные подразделения. Одним словом политика. Походив по своим высокопоставленным знакомым, я понял, что бывший чиновник никому не нужен и стал думать о смене карьеры. У меня был знакомый программист и по его рассказам я понял, что данные специалисты достаточно неплохо зарабатывают. Но почитав в интернете о популярных языках программирования, я понял, что никогда не смогу конкурировать с ребятами знающими Си++, JS или Java. И тут, я случайно натолкнуться на статью, где рассказывалось о блокчейне, смарт-контрактах и о новом, перспективном языке Solidity, требующем низкого порога вхождения, но тогда мало кому известном.

Читать далее
Всего голосов 19: ↑9 и ↓10-1
Комментарии1

Создаём иной смарт-контракт по старому адресу

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.7K

«Можно ли изменить код смарт‑контракта и разместить по его по старому адресу?» — такой вопрос мне задали на собеседовании Solidity разработчика.

Точный ответ требует разбора вопроса и определения требований к задаче. Требование — «изменить контракт без изменения адреса». Для этого есть подходы с обновляемым смарт‑контрактом… Но оказалось, что нет. Это вопрос на знание опкодов EVM.

Сейчас расскажу как создатьуничтожитьразместить_иной_контракт по старому адресу смарт‑контракта (далее — СмК) без использования паттерна Transparent Proxy и UUPS.

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

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

Блокчейн аналитика в Dune Analytics на примере Uniswap

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.7K

Есть такая платформа Dune Analytics, с помощью которой можно делать аналитику по данным из блокчейна, строить графики и дэшборды. В декабре 2022го в коллаборации с Uniswap они запустили курс 12DaysOfDune, в котором я поучаствовал. Хочу поделиться с вами заданиями первой недели курса и вариантами решений.

В результате вы узнаете, что представляет собой Dune, научитесь делать аналитику самостоятельно на примере Uniswap. Uniswap — это протокол децентрализованного обмена и крупнейший сервис для обмена криптовалюты (децентрализованная биржа).

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

Разработка и верификация Proxy/Factory смарт-контрактов. Solidity

Время на прочтение3 мин
Количество просмотров2.3K

Factory смарт-контракты - контракты, являющаяся фабриками / заводами по производству других контрактов. Разберемся в их разработке на примере создания ERC-20 tokens Factory.

Создадим обычный контракт ERC-20, прибегнув к контракту OpenZeppelin. Допишем в конструктор _transferOwnership(owner). Это позволит тем, кто будет создавать контракты токенов через нашу Factory быть для них владельцем, иначе владельцем будет являться наш контракт фабрики контракта.

Читать далее
Рейтинг0
Комментарии0

Мульти-прокси смарт контракт стандарта EIP-2535 «Diamond»

Время на прочтение28 мин
Количество просмотров2.2K

Ссылка на видео-туториал и подробное объяснение

GitHub

В этом материале речь пойдет про стандарт EIP-2535, также широко известен как Diamond или Multi-Facet Proxy. Стандарт дает возможность создавать модульные, обновляемые смарт контракты, которые обладают рядом преимуществ перед такими стандартами обновляемых контрактов как Transparent и UUPS.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии2

Принципы SOLID коротко и простым языком (на JS)

Время на прочтение2 мин
Количество просмотров27K

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

Читать далее
Всего голосов 21: ↑10 и ↓11-1
Комментарии23

Обновляемые смарт-контракты: Что это такое и как создать свой собственный. Часть 2

Время на прочтение11 мин
Количество просмотров3.1K

В первой теоретической части мы поговорили про то, что такое обновляемый смарт-контракт и как работают обновления.

Напомним, что большинство вещей всегда требует некоторого обновления. Но тогда данные, хранящиеся в блокчейн, неизменяемы. Так как же тогда смарт-контракты могут быть обновляемыми?

Короткий ответ заключается в том, что смарт-контракты сами по себе не могут изменяться - они постоянны и неизменяемы после развертывания на блокчейне. Но dApp может быть разработан таким образом, чтобы один или несколько смарт-контрактов работали вместе, обеспечивая его "бэкенд". Это означает, что мы можем обновить схему взаимодействия между этими смарт-контрактами. Модернизация смарт-контракта не означает, что мы изменяем код развернутого смарт-контракта, а означает, что мы меняем один смарт-контракт на другой. Мы делаем это таким образом, что (в большинстве случаев) конечному пользователю не придется менять способ взаимодействия с dApp.

Читать далее
Рейтинг0
Комментарии1

Деревья Меркла и экономия газа в смарт-контрактах Solidity

Время на прочтение13 мин
Количество просмотров3.3K

В идеальном децентрализованном приложении мы бы хотели хранить все в блокчейне на смарт-контрактах — в хранилище Ethereum: данные не могут быть изменены несанкционированным способом. Но запись какой-либо информации, размером 32 байта обойдется нам в 20000 газа. На момент написания статьи это примерно $0.26, c одной стороны не много, но что если мы хотим хранить в хранилище какой-то значительный массив информации.

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

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

Видео-туториал: https://www.youtube.com/watch?v=1aC1_AlCuT8

Читать далее
Всего голосов 8: ↑6 и ↓2+4
Комментарии7

Руководство по AccessControl от OpenZeppelin

Время на прочтение9 мин
Количество просмотров1.6K

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

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

Читать далее
Рейтинг0
Комментарии0