Мой Стек | Блокчейн-Разработка
Разбираем Инструменты которые я использую на повседневной основе
1. Бекенд Разработка (скрипты, API, автоматизация, тестирование)
Python - разработка скриптов (взаимодействие с API, автоматизация) - работа с блокчейном непосредственно через серверную часть проектов.
Для взаимодействия с блокчейном использую web3.py библиотеку (про нее тут)
+ Сейчас работаю с Docker, т.к с он ополезен для развертывания смарт-контрактов и сервисов в различных средах (например, для запуска локальных узлов Ethereum).
2. Фронтенд Разработка
Для интеграции блокчейна в Браузер и приложения использую JavaScript + TypeScript
О библиотеках для взаимодействия с Блокчейном на JS/TS писал тут
Для Динамического Обновления приложений использую React
Наконец для создания Быстрых Приложений разбираюсь с Next.js (React Фреймворк)
Пишите что используете вы :)
Разбираем Инструменты которые я использую на повседневной основе
1. Бекенд Разработка (скрипты, API, автоматизация, тестирование)
Python - разработка скриптов (взаимодействие с API, автоматизация) - работа с блокчейном непосредственно через серверную часть проектов.
Для взаимодействия с блокчейном использую web3.py библиотеку (про нее тут)
Solidity - разработка смарт-контрактов (база по смарт-контактам)
OpenZeppelin для разработки контрактов для ERC20, ERC721 и других токенов.
Наконец для тестирования и развертывания контрактов использую HardHat.
+ Сейчас работаю с Docker, т.к с он ополезен для развертывания смарт-контрактов и сервисов в различных средах (например, для запуска локальных узлов Ethereum).
2. Фронтенд Разработка
Для интеграции блокчейна в Браузер и приложения использую JavaScript + TypeScript
О библиотеках для взаимодействия с Блокчейном на JS/TS писал тут
Для Динамического Обновления приложений использую React
Наконец для создания Быстрых Приложений разбираюсь с Next.js (React Фреймворк)
Пишите что используете вы :)
🔥10❤4🐳3
Python | Пишем скрипты
Придумал Серию Постов где мы, скажем за месяц, научимся написанию скриптов на пайтон с самого нуля
Затронем Работу с:
🧠 Базой
🤑 Далее Работа с DApps / CEX биржами и приложениями
💰 Изучение API для централизованных обменов (Binance API, KuCoin, Bybit).
⚔️ Закрепляем все безопасностью
Список будет обновляться :)
Придумал Серию Постов где мы, скажем за месяц, научимся написанию скриптов на пайтон с самого нуля
Затронем Работу с:
🧠 Базой
Infura & Alchemy
Основа работы с транзакциями: создание, подписывание, отправка.
Взаимодействие с контрактами (чтение и запись данных)
Работа с кошельками и ключами (использование HD-кошельков)
Как работают DApps и какие интерфейсы они используют
Работа с Python библиотеками для взаимодействия с DApps
Взаимодействие с контрактами DApp через Python.
Чтение и выполнение смарт-контрактов.
Знакомство с основными DEX (Uniswap, PancakeSwap, и т.д.).
Взаимодействие с ликвидностью на DEX.
Написание скриптов для выполнения обменов, свопов и арбитражных операций.
Разработка торговых ботов для CEX.
Использование REST API и WebSocket для получения рыночных данных и выполнения ордеров
Понимание безопасной работы с криптовалютами и ключами.
Разработка безопасных приложений (хранение приватных ключей).
Основы защиты от атак на блокчейне и в приложениях.
Список будет обновляться :)
Please open Telegram to view this post
VIEW IN TELEGRAM
20🔥28😍5🐳2
Провайдеры | Подключаемся к блокчейну
Подготовим Python Окружение - писал тут
База
Существует несколько видов провайдеров:
1. Http/Https - провайдеры (API)
наиболее распространенный способ взаимодействия с блокчейном
Infura
Alchemy
QuickNode
Chainstack
пример кода
2. WebSocket-провайдеры
(будем использовать в асинхронных конструкциях далее)
3. IPC (Inter-Process Communication)
4. Локальные узлы
Это провайдеры, работающие локально, например Hardhat, Ganache.
Задание на сегодня
1. Регистрация на Infura + получения своего API ключа
2. Создание своего проекта и проверка работы скрипта выше
Следующий шаг - работа с транзакциям🗣
Подготовим Python Окружение - писал тут
База
Провайдер - мост для взаимодействия приложений с блокчейном.
Существует несколько видов провайдеров:
1. Http/Https - провайдеры (API)
наиболее распространенный способ взаимодействия с блокчейном
Infura
Alchemy
QuickNode
Chainstack
пример кода
from web3 import Web3
infura_url = "https://sepolia.infura.io/v3/INFURA_KEY"
web3 = Web3(Web3.HTTPProvider(infura_url))
if web3.is_connected():
print("connected")
print("Current bock ", web3.eth.get_block_number())
else:
print("not connected")
2. WebSocket-провайдеры
Используются для взаимодействия в реальном времени с блокчейном, например, для получения событий или подписок. Подходит для задач, где важно минимизировать задержку.
(будем использовать в асинхронных конструкциях далее)
3. IPC (Inter-Process Communication)
Используется для прямого взаимодействия с локальным узлом через Unix-сокеты или named pipes.
Имеет высокую производительность, но требует локального запуска узла.
w3 = Web3(Web3.IPCProvider('/путь/к/geth.ipc'))
4. Локальные узлы
Это провайдеры, работающие локально, например Hardhat, Ganache.
w3 = Web3(Web3.HTTPProvider("http://127.0.0.1:8545")) - локальная сеть для тестов
Задание на сегодня
1. Регистрация на Infura + получения своего API ключа
2. Создание своего проекта и проверка работы скрипта выше
Следующий шаг - работа с транзакциям
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍2🤩2🐳2
Транзакции | Python Оптимизация
Сегодня разбрем как отпралять транзакции с помощью скриптов на Python
Написал Материал & добавил код
teletype.in/@vartcall/python_transactions
Приятного изучения🙏
Сегодня разбрем как отпралять транзакции с помощью скриптов на Python
Написал Материал & добавил код
teletype.in/@vartcall/python_transactions
Приятного изучения
Please open Telegram to view this post
VIEW IN TELEGRAM
50🔥7😍3🏆3
СМАРТ-КОНТРАКТЫ | Python edition
В статье кратко разберем взаимодействие со смарт-контрактами на python
teletype.in/@vartcall/smart_contracts_python
Приятного изучения🛌
В статье кратко разберем взаимодействие со смарт-контрактами на python
teletype.in/@vartcall/smart_contracts_python
Приятного изучения
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6🤩1🏆1
Генерация Кошельков | Python
Кратко разбираем создание новых Ethereum кошельков с помощью python скриптов
teletype.in/@vartcall/wallet_create_python
Приятного изучения⚔️
Кратко разбираем создание новых Ethereum кошельков с помощью python скриптов
teletype.in/@vartcall/wallet_create_python
Приятного изучения
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1🐳1
Dapps Автоматизация | python
Кратко разбираем взаимодейтвие с Dapps на Python
https://teletype.in/@vartcall/python_dapps_interaction
Приятного изучения☕️
Кратко разбираем взаимодейтвие с Dapps на Python
https://teletype.in/@vartcall/python_dapps_interaction
Приятного изучения
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩6🔥2😍1🐳1
Централизованные Биржи | Python взаимодействие
Кратко разбираем взаимодействие с централизованными биржами на python
https://teletype.in/@vartcall/cex_interaction_python
Приятного изучения🤝
Кратко разбираем взаимодействие с централизованными биржами на python
https://teletype.in/@vartcall/cex_interaction_python
Приятного изучения
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3😍2❤🔥1👍1🐳1
🦍 Docker - Настройка, Применение
крипто-безопасность 2.0
Docker - инструмент для создания тестирования и развертывания приложений в изолированных контейнерах
Зачем?
1. Управление - создаём отдельный контейнеры под - Проект и Сервисы (Infura, Chainlink, IPFS)
2. Оптимизация Зависимостей
В DockerFile прописываем все необходимые команды и настройки для установки зависимостей -> docker собирает образ -> Используем этот образ в любом проекте
3. Изоляция
Все контейнеры работают независимо от других контейнеров. Так проект безопасностнее и его легче масштабировать
4. Передача
Как-то так, набираем активности и дропаю подробную инструкцию по настройке docker под крипто-проекты 💫
крипто-безопасность 2.0
Docker - инструмент для создания тестирования и развертывания приложений в изолированных контейнерах
Зачем?
1. Управление - создаём отдельный контейнеры под - Проект и Сервисы (Infura, Chainlink, IPFS)
2. Оптимизация Зависимостей
В DockerFile прописываем все необходимые команды и настройки для установки зависимостей -> docker собирает образ -> Используем этот образ в любом проекте
🧠 В результате объединяем все контейнеры через Docker Compose и усправляем всем проектом.
Упрощает развертывание и тестирование
3. Изоляция
Все контейнеры работают независимо от других контейнеров. Так проект безопасностнее и его легче масштабировать
4. Передача
Создаем Docker образ нашего проекта -> передаём весь проект через Docker Hub 🔽
Человек получивший этот образ может загрузить его, редактировать и запустить на своей машине (все зависит от разрешений в docker образе)
Как-то так, набираем активности и дропаю подробную инструкцию по настройке docker под крипто-проекты 💫
🤩7❤🔥4🔥4👍2
$TRUMP токену посвящается
16 часов назад Дональд Трамп запустил свой мем-токен $TRUMP на solana, который уже успел отлично себя показать - (9кк объема за 24 часа+ 27 место в CoinMarketCap) + торги в $30
пост трампа с сайтом контракта был опубликован в X, поэтому я хочу разобрать как быстро проверить смарт-контракт токена (мини-аудит)
Наша Тактика
1. Подключаем solana-py библиотеку
2. Подключаемся с RPC SOLANA
3. Получаем инфу по контракту
4. Декодируем и Анализируем байткод контракта
Вариант База:
Используем API Solana чекеров и Анализируем токен
Хочу написать такой скрипт, разберемся как работают такие чекеры изнутри. Ваша активность - мой софт 💫
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉22🤩10😍7🏆1
Безопасный Софт | Python, JavaScript
топ "правил" разработки качественного софта
1. Хранение приватных ключей
не храним приватники просто в коде, есть решения
Python os - библиотека для работы с операционной системой и доступ к переменным окружения
JavaScipt dotenv - также работа с переменными окружения только под JS/TS
2. Архитектура
Разделяем проект на независимые модули, каждый модуль отвечает за одну задачу + минимизация зависимостей между модулями.
Инструменты
SonarQube - анализ кода на ошибки, технический долг и архитектурные проблемы.
Structure101 - визуализация архитектуры кода и выявление лишних зависимостей.
3. Тестирование
Юнит-тесты: Проверка отдельных функций.
Интеграционные тесты: Проверка работы модулей вместе.
End-to-End тесты: Проверка всей системы в реальных условиях.
Проверка % протестированного кода - Istanbul для JavaScript и Coverage py для Python
справка
Места для хранения приватников
- HashiCorp Vault
- AWS Secrets Manager
- Google Secret Manager
- Azure Key Vault
Вот и первая часть, делаем следующую 🔥 ❤️ 💫
топ "правил" разработки качественного софта
1. Хранение приватных ключей
не храним приватники просто в коде, есть решения
Python os - библиотека для работы с операционной системой и доступ к переменным окружения
JavaScipt dotenv - также работа с переменными окружения только под JS/TS
2. Архитектура
Разделяем проект на независимые модули, каждый модуль отвечает за одну задачу + минимизация зависимостей между модулями.
Инструменты
SonarQube - анализ кода на ошибки, технический долг и архитектурные проблемы.
Structure101 - визуализация архитектуры кода и выявление лишних зависимостей.
3. Тестирование
Юнит-тесты: Проверка отдельных функций.
Интеграционные тесты: Проверка работы модулей вместе.
End-to-End тесты: Проверка всей системы в реальных условиях.
Проверка % протестированного кода - Istanbul для JavaScript и Coverage py для Python
справка
Места для хранения приватников
- HashiCorp Vault
- AWS Secrets Manager
- Google Secret Manager
- Azure Key Vault
Вот и первая часть, делаем следующую 🔥 ❤️ 💫
❤10🔥2🤩1
💫 Аудит Контрактов | Старт
Аудит - проверка, анализ и тестирования кода смарт-контракта для выявления ошибок, уязвимостей и недостатков в его функциональности, логике и безопасности.
Цель - смарт-контракт выполняет свои задачи корректно и безопасно, защищая средства и данные пользователей.
Виды Аудита 🔽
В нашем случае - делаем следующее
💰 пока мы работаем с Python план следующий
- Анализ Байткода через Ethescan API
- Тестирование через web3py & brownie
- Интеграция с HardHat & Truffle
🔥 ❤️ 💫 отличный старт, продолжаем публикации по аудиту, далее затронем и JS/TS
Аудит - проверка, анализ и тестирования кода смарт-контракта для выявления ошибок, уязвимостей и недостатков в его функциональности, логике и безопасности.
Цель - смарт-контракт выполняет свои задачи корректно и безопасно, защищая средства и данные пользователей.
Виды Аудита 🔽
Предварительный (Pre-Deployment Audit) - перед развертыванием смарт-контракта в основной сети.
Консультационный (Consultative Audit) - на этапах проектирования и разработки, для избежания типичных ошибок и уязвимостей например анализ архитектуры и проектной документации
Постразвертывательный (Post-Deployment Audit) - после развертывания контракта в основной сети чтобы убедиться что контракт работает корректно и безопасно в реальной сети.
Непрерывный (Continuous Audit) - на протяжении всего жизненного цикла проекта для проверки безопасности и аномальной активности
Аудит обновлений (Upgrade Audit) - перед или после обновления смарт-контракта (обновления безопасны и не нарушают работу контракта)
Аудит для сертификации (Compliance Audit) - когда проект должен соответствовать стандартам или регулятивным требованиям 🔽
(проверка соответствия стандартам ERC-20, ERC-721, ERC-1155, подготовка отчета для публикации (для инвесторов, пользователей), предоставление гарантий безопасности третьим сторонам)
Экстренный аудит (Emergency Audit) после обнаружения уязвимости или инцидента для быстрого устранения угроз
В нашем случае - делаем следующее
Консультационый аудит - изучаем архитектуру и логики контракта.
Аналитический аудит - выявить проблемы безопасности, функциональности и оптимизации.
Технический анализ экосистемы - взаимодействие токена с другими контрактами (например, стейкинг или пулы ликвидности)
- Анализ Байткода через Ethescan API
- Тестирование через web3py & brownie
- Интеграция с HardHat & Truffle
🔥 ❤️ 💫 отличный старт, продолжаем публикации по аудиту, далее затронем и JS/TS
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤2😍2
Пишем безопасный софт | Python & JavaScript
1. Приватные Ключи
Среди всех вариантов лучшим будет хранение в Doppler
2. Проверка стороннего кода
Snyk & Trivy - сканеры безопасности для проверки кода в завимостях
3. Защита API
OAth 2.0 & JWT для контроля доступа к API
Тулзы
Cloudflare - защита от ddos для API
AWS WAF - управление трафиком и защита API на AWS
Traefic - прокси сервер с поддержкой лимитов запросов
Далее разбираем тестирование, управление и логироуание🔫
1. Приватные Ключи
Среди всех вариантов лучшим будет хранение в Doppler
2. Проверка стороннего кода
Snyk & Trivy - сканеры безопасности для проверки кода в завимостях
3. Защита API
OAth 2.0 & JWT для контроля доступа к API
Тулзы
Cloudflare - защита от ddos для API
AWS WAF - управление трафиком и защита API на AWS
Traefic - прокси сервер с поддержкой лимитов запросов
Далее разбираем тестирование, управление и логироуание
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩8😍5🐳3❤1
🐙 СОФТ БЕЗОПАСНОСТЬ
Изоляция
Благодаря Docker создаем контейнер для модуля, отвечающего за подписания транзакций, и он будет изолирован от других частей приложения.
Асинхронность 🔽
выполняют задачи, не блокируя выполнение других процессов
важно при работе с внешними API, которые могут отвечать медленно из-за задержек сети или нагрузки на сервер.
Логирование
Для более красивого вывода логов в консоль -> Loguru библиотека
Набираем активность - я выпускаю подробный материал на эту тему😎
Изоляция
Благодаря Docker создаем контейнер для модуля, отвечающего за подписания транзакций, и он будет изолирован от других частей приложения.
(в docker приложение работает изолированно, ограничивая влияние уязвимостей на другие части системы.)
Асинхронность 🔽
выполняют задачи, не блокируя выполнение других процессов
важно при работе с внешними API, которые могут отвечать медленно из-за задержек сети или нагрузки на сервер.
Для Node.js асинхронность реализуется через “Promise” (возвращает результат (или ошибку) в будущем)
+ async/await синтаксис для работы с Promise делает код более читаемым.
Библиотека asyncio в Python предоставляет async/await функции также для работы с асинхронностью
Такие функции позволяют продолжать выполнение других задач, пока приложение ожидает ответа от API.
Логирование
запись важной информации о работе приложения (действия пользователя, состояние системы и ошибки)
Winston (Node.js) поддеритвает различные уровни логов (info, error, debug и т.д.).
npm install winstonLogging (Python) - поддерживает уровни логирования (DEBUG, INFO, WARNING, ERROR, CRITICAL).
Стандартная библиотека Python
Для более красивого вывода логов в консоль -> Loguru библиотека
pip install loguruНабираем активность - я выпускаю подробный материал на эту тему
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆14🔥5❤3😍2🐳1
WebSocket - Протокол связи, обеспечивающий постоянное двусторонней соединение
например между клиентом и сервером
главная фишка обмен данными в реальном времени без необходимости повторных запросов
Обработка Транзакций
-> Получаем данные транзакций с RPC блокчейна
-> Отправляем в Telegram по Api
Инструменты
Блокчейн - Python + Web3py
Взаимодействие с Telegram - Telegram Bot Api
Получаем автоматизацию отслеживания транзакций, далее можно это расширять до NFT транзакций, отслеживания Defi процессов и т.д
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15😍5👍3❤1🎉1🐳1🏆1
настройка проекта
1. Зависимости
Библиотеки web3 & pytelegrambotapi
WebSocket провадер для получения событий Alchemy / Infura.
Создаем Telegram бот и получаем его API токен - BotFather
2. Процесс работы софта
- Подключение к блокчейну через WebSocket
- Фильтр событий, связанных с нужным адресом
- Настройка отправки сообщений через API Telegram + встраивание уведомлений в обработку событий
- Деплой бота через DigitalOcean или AWS
При добавлении поддержки других блокчейнов, используем сооответвующие настройки WebSocket
3. Настройка Docker (что это)
деплоить будем через него, так единый docker образ проекта
- Создаем DockerFile - базовый образ с зависимостями
- Создать .dockerignore - Исключаем из сборки ненужные файлы
- Сетевые настройки - порты для доступа к WebSoket открыты и доступны
- Управление секретами - писал тут
- Собираем Образ через Docker build и запускаем через docker run
+ Настроить автоматический перезапуск контейнера в случае падения бота
Вот такой план, далее пошагово будем тут реализовывать 💫 ❤️ 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4😍4🔥3🐳1
Ситуация - замена расширений кошельков пользователей на вредоносные через supply chain attack
Хакеры могли получить доступ к серверу, с которого распространяются обновления расширений, и смогли заменить легитимную версию
Уязвимые расширения были активны в период с 10:00 AM (UTC+0) 21 января по 10:00 AM (UTC+0) 24 января 2025 года.
(если устанавливали или пользовались кошельком в это время - переустанавливаем его и выводим средства)
Таким образом, из-за недостатками контроля безопасности при распространении обновлений расширений была компрометация через supply chain attack, где злоумышленники получили доступ к обновлениям или загрузке расширений.
суммарно $3.2 в ethereum утеряно
> Кошелек 1
> Кошелек 2
> Кошелек 3
> Кошелек 4
Решением таких ситуаций будет диверсификация активов и использование multisig кошельков -> Safe Wallet & TotalSig
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤🔥2❤1👏1😍1🐳1
Функционал
> Подключаемся к Ethereum через WebSocket Infura.
> Мониторим новые блоки и фильтрует транзакции по заданному адресу.
> Обрабатываем события, отправляя уведомления при обнаружении транзакций.
> Добавлена задержка между проверками для предотвращения превышения лимитов API.
> Настроен Telegram-бот для отправки уведомлений.
> Логируем успешные и ошибочные попытки отправки сообщений.
активничаем и дропаю быстрее
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14🤩7🎉5😍1🍓1