<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Ethereum</title>
    <description/>
    <link>https://tproger.ru/tag/ethereum</link>
    <atom:link href="https://tproger.ru/tag/ethereum/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sat, 03 Oct 2026 18:41:50 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Ethereum</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Как Web3 меняет разработку веб-приложений: от серверов к блокчейну</title>
      <link>https://tproger.ru/articles/kak-web3-menyaet-razrabotku-veb-prilozhenij--ot-serverov-k-blokchejnu</link>
      <comments>https://tproger.ru/articles/kak-web3-menyaet-razrabotku-veb-prilozhenij--ot-serverov-k-blokchejnu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Диана Тажетдинова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-web3-menyaet-razrabotku-veb-prilozhenij--ot-serverov-k-blokchejnu</guid>
      <description><![CDATA[<p>Поговорили с экспертом и узнали, где Web3 даёт практическую пользу разработчикам: сравниваем подходы, исследуем рынок вакансий и особенности новой реальности.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-web3-menyaet-razrabotku-veb-prilozhenij--ot-serverov-k-blokchejnu">Как Web3 меняет разработку веб-приложений: от серверов к блокчейну</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[смарт-контракты]]></category>
      <category><![CDATA[DeFi]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 22 Sep 2025 12:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Раньше, чтобы запустить приложение, приходилось настраивать сервер и базу данных. В Web3 всё по-другому: вместо серверов — смарт-контракты, вместо базы — блокчейн. <a href="https://www.esparkinfo.com/web3/statistics">По прогнозам</a>, объём рынка Web3‑разработки вырастет с $4,43 млрд в 2024 году до $6,15 млрд в 2025. Кейсы<a href="https://ru.wikipedia.org/wiki/Plume_Network_%E2%80%93_The_Future_of_Real-World_Assets_on_Web3_%F0%9F%8C%90?utm_source=chatgpt.com"> Plume Network</a> и<a href="https://en.wikipedia.org/wiki/The_Graph?utm_source=chatgpt.com"> The Graph</a> показывают, что Web3 уже работает в реальных продуктах. Что, если нас уже сегодня ждет backend в виде блокчейна? Давайте разберём, как меняются инструменты, архитектуры и карьерные треки.</p><h2>Главные отличия Web3 от Web2</h2><p>Перед тем как углубиться в код и практику, полезно увидеть основные различия между привычной Web2-разработкой и новой логикой Web3.</p><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-09-22/3fa1cc2a-0755-4b71-af24-9b8a6f9d22ea.png" alt="" /></figure><p>Представим себе простой сервис для задач. В классическом Web2 его работа привычна: сервер обрабатывает запросы, база данных хранит задачи, а пользователь авторизуется через почту и пароль. Всё централизовано и зависит от владельца сервера.</p><p>В Web3 логика сильно меняется. Пользователь входит в систему с помощью криптокошелька, например, MetaMask. Каждая задача создаётся транзакцией и записывается в смарт‑контракт, а значит становится частью блокчейна. Удалить её уже нельзя — только отметить статус выполнения. Такой подход даёт прозрачность: любой участник сети может проверить, что задача действительно существует, и её статус изменён честно.</p><h2>Стек Web3: что понадобится на практике</h2><p>Чтобы построить работающий DApp, важно понимать, чем он отличается от обычного приложения. DApp — это децентрализованное приложение, в котором логика хранится в смарт-контрактах на блокчейне, а данные — в распределённых хранилищах, а не на сервере компании. Поэтому одного знания блокчейна мало: нужен полный набор инструментов — от языков и фреймворков до кошельков и сервисов подключения.</p><ul><li>Блокчейн: Ethereum, Layer‑2 (Arbitrum, Optimism, Base, Polygon), Solana.</li><li>Языки: Solidity (EVM), Rust (Solana), Go (инфраструктура и сервисы).</li><li>Библиотеки: ethers.js, wagmi.</li><li>Фреймворки: Hardhat, Foundry, Truffle.</li><li>Хранилища: IPFS/Arweave для файлов и метаданных.</li><li>Кошельки/подключение: MetaMask, WalletConnect (v2/WalletConnect Network), Web3Auth.</li></ul><blockquote>Точка входа для новичка — Alchemy, а также ethers.js.</blockquote><p><b>Пример.</b> Быстрое подключение кошелька (ethers.js).</p><h2>Архитектура DApp: из чего состоит современное Web3‑приложение</h2><p>Любое Web3‑приложение строится из нескольких слоёв, каждый со своей ролью. Фронтенд остаётся привычным SPA, но работает не с сервером, а напрямую с кошельком и смарт-контрактами. Контракты содержат бизнес‑логику и хранят ссылки на данные в децентрализованных хранилищах. Оракулы обеспечивают связь с внешним миром, например, передают цены или сообщения между разными блокчейнами. Важную часть играет off‑chain слой — сервисы вне блокчейна (индексаторы, аналитика), которые помогают быстрее искать и обрабатывать данные, при этом не перегружать сеть.</p><p><b>Пример.</b> Возьмём DeFi‑приложение. Пользователь открывает фронтенд и инициирует операцию swap(). В ответ фронтенд обращается к смарт‑контракту, который выполняет обмен токенов. Чтобы определить курс, контракт тянет актуальные данные через оракул. При этом тяжёлые артефакты, изображения или отчёты не хранятся в блокчейне напрямую — они лежат в IPFS. Сам контракт содержит только контент‑идентификаторы CID. Таким образом, получаем баланс: блокчейн отвечает за логику и безопасность, а децентрализованное хранилище — за данные.</p><h2>Практика: ваш первый DApp за вечер</h2><p>Давайте попробуем собрать простейшее приложение своими руками.</p><p><b>Шаг 0. Подготовка</b></p><p>Сначала убедитесь, что у вас стоит Node.js LTS и Git. Также нужен браузер с установленным MetaMask, где можно создать тестовый аккаунт. Чтобы оплачивать транзакции в тестовой сети, заранее возьмите немного тестовых монет через faucet — например, для Sepolia или Polygon Amoy.</p><p><b>Шаг 1. Проект</b></p><p>Создадим новый проект и установим Hardhat вместе с тулзами. Эта среда нужна для компиляции и деплоя контрактов.</p><p><b>Шаг 2. Контракт</b></p><p>В папке contracts/ создаём файл TaskTracker.sol и копируем туда код смарт-контракта из первого раздела. Это и будет бизнес-логика нашего приложения.</p><p><b>Шаг 3. Сценарий деплоя</b></p><p>Пишем скрипт, который разворачивает контракт в сети. Это простой скрипт на JavaScript, который вызывает методы Hardhat.</p><p><b>Шаг 4. Конфиг сети</b></p><p>В файле hardhat.config.js добавляем настройки для подключения к тестовой сети. Используем RPC-URL от Alchemy или Infura и приватный ключ от тестового аккаунта — его можно экспортировать из MetaMask, но использовать только для тестовой сети.</p><p><b>Шаг 5. Деплой в тестнет</b></p><p>Теперь запускаем скрипт деплоя. После выполнения увидите адрес контракта — он понадобится для фронтенда.</p><p><b>Шаг 6. Фронтенд (React + ethers.js + wagmi)</b></p><p>Собираем простое SPA: форма, чтобы добавить задачи, и кнопка «complete». Здесь мы используем ethers.js для обращения к контракту. Сделайте вызовы addTask и completeTask.</p><h2>Подводные камни Web3-разработки и что с ними делать</h2><p><b>Комиссии (gas): </b>любая запись в блокчейн стоит денег и иногда комиссия выше ценности операции — например, $10 за простую задачу.</p><ul><li>Что делать: использовать Layer-2 (Arbitrum/Optimism/Base/Polygon), выбирать сети с низкими комиссиями (Solana, Avalanche), оптимизировать контракты и батчи транзакций.</li></ul><p><b>Скорость: </b>подтверждение транзакции занимает секунды или десятки секунд, что заметно медленнее обычного сервера.</p><ul><li>Что делать: показывать «оптимистичный UI», кешировать данные, переносить часть логики off-chain, использовать быстрые сети (Solana, Near, Aptos).</li></ul><p><b>Безопасность:</b> код контракта неизменяем, и одна ошибка может стоить миллионов.</p><ul><li>Что делать: проходить аудит (CertiK, Trail of Bits), использовать проверенные библиотеки (OpenZeppelin), писать тесты в тестовых сетях (Goerli, Sepolia), внедрять баг-баунти и ролевую модель доступа.</li><li>Ресурс:<a href="https://consensys.io/diligence/smart-contract-security-best-practices/"> ConsenSys Diligence — Smart Contract Security Best Practices</a>.</li></ul><p><b>UX:</b> вход через кошелёк сложнее привычного логина/пароля. Нужно ставить расширение, пополнять баланс и подтверждать каждую транзакцию.</p><ul><li>Что делать: использовать аккаунт-абстракцию (ERC-4337), социальный логин, gasless транзакции через Paymaster, улучшать UI (подсказки, авто-фокус на MetaMask).</li></ul><p><b>Регуляция: </b>законы о Web3 пока разные в каждой стране. Легальное в одной юрисдикции может быть запрещено в другой (например, токенизация акций без лицензии).</p><ul><li>Что делать: консультироваться с юристами, следить за изменениями. Например, MiCA в ЕС — “Markets in Crypto-Assets Regulation” —  это единый регламент по криптоактивам в Евросоюзе.</li></ul><blockquote>Безопасность всегда должна быть на первом месте, потому что в Web3 есть риск потерять реальные деньги пользователей.</blockquote><h2>Карьерные возможности и перспективы</h2><p>Web3‑разработчиков уже активно ищут: <a href="https://web3.career/learn-web3/web3-intelligence-report">зарплаты в среднем предлагают выше</a>, чем у Web2‑коллег. Кроме программистов, востребованы смежные роли: аудиторы смарт‑контрактов, специалисты по безопасности, а также продакт‑менеджеры и аналитики, которые понимают специфику блокчейна.</p><p>Чтобы войти в профессию, начните с изучения Solidity и базовых паттернов смарт‑контрактов. Сделайте пару пет‑проектов и выложите код в GitHub. Отличный вариант прокачки — участвовать в хакатонах и грантовых программах от Ethereum Foundation или Solana Grants. Это даёт и опыт, и контакты, и иногда финансирование.</p><blockquote>Пара пет‑проектов + понимание блокчейна — хороший старт в Web3‑команду.</blockquote><h2>Будущее Web3</h2><p>Web3 не вытеснит Web2 полностью, но поменяет привычный подход к разработке. Разработчику это открывает новые вызовы: комиссии, безопасность и UX, но одновременно и новые возможности — прозрачные данные, токенизация, децентрализованные бизнес‑модели.</p><p>Для тех, кто только входит в сферу, это шанс попасть в индустрию на раннем этапе и быстро нарастить экспертизу. Простые пет‑проекты, хакатоны и знакомство с инструментами дают ощутимый старт.</p><p>Web3 будет развиваться параллельно с Web2, усиливая те области, где важны децентрализация, доверие и контроль за данными. Попробуйте задеплоить первый контракт — и вы сами почувствуете, что это не просто мода, а новый уровень возможностей.</p>]]></content:encoded>
    </item>
    <item>
      <title>2 млрд загрузок под ударом: в npm нашли вредоносные версии chalk, debug и еще 16 пакетов</title>
      <link>https://tproger.ru/news/--2-mlrd-zagruzok-pod-udarom--v-npm-nawli-vredonosnye-versii-chalk--debug-i-eshhe-16-paketov</link>
      <comments>https://tproger.ru/news/--2-mlrd-zagruzok-pod-udarom--v-npm-nawli-vredonosnye-versii-chalk--debug-i-eshhe-16-paketov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--2-mlrd-zagruzok-pod-udarom--v-npm-nawli-vredonosnye-versii-chalk--debug-i-eshhe-16-paketov</guid>
      <description><![CDATA[<p>В npm обнаружили вредоносные версии chalk, debug и ещё 16 пакетов: заражение коснулось проектов с 2 млрд загрузок, цель атаки — кража криптовалют</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--2-mlrd-zagruzok-pod-udarom--v-npm-nawli-vredonosnye-versii-chalk--debug-i-eshhe-16-paketov">2 млрд загрузок под ударом: в npm нашли вредоносные версии chalk, debug и еще 16 пакетов</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 09 Sep 2025 04:29:19 GMT</pubDate>
      <content:encoded><![CDATA[<p>Компания Aikido Security <a href="https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised">выявила</a> масштабную атаку на экосистему npm. Злоумышленники опубликовали вредоносные версии 18 популярных JavaScript-библиотек, включая chalk, debug, supports-color, ansi-styles, strip-ansi и другие.</p><p>Эти пакеты используются в миллионах проектов по всему миру — общее количество загрузок только за неделю превышает 2 млрд.</p><h2>Как работал вредоносный код</h2><p>Внедренный JavaScript-код маскировался внутри библиотек и выполнялся исключительно в браузерной среде. Основная цель — перехват криптовалютных транзакций через подмену данных:</p><ul><li>внедрение в методы fetch, XMLHttpRequest, а также Web3-объекты (window.ethereum и др.);</li><li>отслеживание и подмена адресов кошельков при вызовах вроде sendTransaction, approve, transfer;</li><li>использование «похожих» адресов для подмены без визуального отличия;</li><li>манипуляции с параметрами транзакций на этапе подписи;</li><li>сохранение внешней «нормальности» интерфейса, чтобы пользователь ничего не заметил.</li></ul><p>Таким образом, атака была нацелена на незаметное хищение криптоактивов прямо из интерфейсов Web3-приложений.</p><h2>Как злоумышленники получили доступ</h2><p>Один из мейнтейнеров, обладающий доступом к части библиотек, стал жертвой фишинговой атаки.</p><p>Он получил письмо с поддельного адреса support@npmjs.help, зарегистрированного 5 сентября 2025 года. После компрометации аккаунта были опубликованы вредоносные версии пакетов.</p><p>Автор позднее подтвердил взлом и удалил некоторые версии, но часть вредоносных сборок осталась доступной, включая simple-swizzle.</p><h2>Список затронутых пакетов</h2><p>Наиболее популярные зараженные библиотеки:</p><ul><li>chalk</li><li>debug</li><li>supports-color</li><li>strip-ansi</li><li>ansi-regex</li><li>wrap-ansi</li><li>color-name</li><li>color-convert</li><li>color-string</li><li>chalk-template</li><li>has-flag</li><li>has-ansi</li><li>slice-ansi</li><li>error-ex</li><li>simple-swizzle</li><li>backslash</li><li>и другие</li></ul><p>Большинство из них используются транзитивно — через другие зависимости.</p><h2>Что делать разработчикам</h2><ol><li>Проверить package-lock.json или yarn.lock на наличие зараженных версий.</li><li>Использовать npm audit, snyk, Safe Chain или аналогичные инструменты для анализа зависимостей.</li><li>Обновить или зафиксировать безопасные версии пакетов.</li><li>Если проект работает с криптовалютой, проверить, не было ли компрометации в процессе использования.</li></ol><h2>Почему это важно</h2><p>Эта атака стала одной из крупнейших в истории JavaScript-экосистемы и подчеркивает уязвимость цепочек поставки (supply chain) в open-source.</p><p>Даже небольшая уязвимость или фишинговая атака на одного мейнтейнера может поставить под угрозу миллионы пользователей по всему миру.</p>]]></content:encoded>
    </item>
    <item>
      <title>Поминки по хайпу: технологии, которые не смогли</title>
      <link>https://tproger.ru/articles/pominki-po-hajpu--tehnologii--kotorye-ne-smogli</link>
      <comments>https://tproger.ru/articles/pominki-po-hajpu--tehnologii--kotorye-ne-smogli?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Виктория Эберт]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/pominki-po-hajpu--tehnologii--kotorye-ne-smogli</guid>
      <description><![CDATA[<p>Почему метавселенная, NFT, Google Glass и 3D-ТВ провалились — разбор хайповых технологий, как хайп стал разочарованием ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/pominki-po-hajpu--tehnologii--kotorye-ne-smogli">Поминки по хайпу: технологии, которые не смогли</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Samsung]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Xen]]></category>
      <category><![CDATA[Lua]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[Twitter]]></category>
      <category><![CDATA[ARM]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[NFT]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 09 Jul 2025 10:00:15 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Метавселенные: киберпанк не наступил</h2><p>Все ждали, что вот-вот начнётся киберпанк: наши аватары будут тусоваться в 3D, ходить по виртуальным улицам и работать в офисе на Марсе. Но метавселенная не случилась и вместо этого мы <a href="https://news.ycombinator.com/item?id=43280564#:~:text=Without%20a%20robust%20economic%20model,erosion%20of%20real%2Dworld%20connections.">получили</a> пустые миры, лаги и виртуальную морскую болезнь. Чтобы попасть в эту «новую реальность», нужен мощный комп, дорогущий VR-шлем и вестибулярка космонавта. Массовому пользователю это не по карману и <a href="https://www.reddit.com/r/Futurology/comments/1ej412m/whatever_happened_to_the_metaverse/">не по душе</a>. Даже если вы добрались до метавечеринки — вас ждала примитивная мультяшная графика.</p><p>Метавселенная — красивый технологический концепт, но без реального запроса со стороны людей. Одни видели в ней VR и AR, другие — NFT и блокчейн, третьи — некий 3D-интернет. И стало непонятно: что это вообще было и зачем?</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-06-27/ae184ea5-b970-4174-adac-ad239ca6a175.png" alt="метавселенная" /><figcaption>Источник: Clara McMichael / digitaltrends.com</figcaption></figure><p>Метавселенная обещала стать новым поколением соцсетей, что именно там будет жить наше будущее общение и работа. Весь хайп смыл новый тренд: волна генеративного ИИ. Meta* <i>(признана в России экстремистской организацией и запрещена)</i> и другие техногиганты свернули свои эксперименты и переключились на нейросети.</p><p>У бизнеса с метавселенными тоже не сложилось: ни чёткой модели монетизации, ни реальных кейсов. Продажа виртуальной недвижимости в Decentraland, мерч для аватаров, баннеры в виртуальных тусовках — всё больше напоминает Web3-версию The Sims, чем серьёзную платформу с реальной экономикой. Так что будущее в 3D отложили до лучших времён.</p><p>Игровые платформы вроде Minecraft, Roblox, Fortnite — это по сути и есть настоящие метавселенные, которые давно живут своей жизнью. Среднестатистический пользователь от виртуальных тусовок отказывается: ему проще зайти в Discord или залипнуть в обычный стрим на Twitch, чем надевать шлем ради планёрки в Horizon Worlds.</p><blockquote>Я могу просто посмотреть стрим и получить лучший опыт. Надевать шлем не имеет смысла — никакой пользы</blockquote><p>Громкие обещания про «полное погружение» и «эффект присутствия» на практике <a href="https://www.businessinsider.com/metaverse-dead-obituary-facebook-mark-zuckerberg-tech-fad-ai-chatgpt-2023-5?">разбивались</a> о суровую реальность — кривую техническую реализацию. Сейчас платформы выглядят заброшенными: пустые сцены, аватары без ног и скучные шаблонные взаимодействия. Ещё одна проблема — отсутствие единого мира. Все платформы живут по отдельности, между ними нет порталов и возможности перемещаться. К тому же, в виртуальности были серьёзные проблемы с безопасностью — например, случаи <a href="https://www.theguardian.com/society/2025/jun/10/the-misogyny-of-the-metaverse-is-mark-zuckerbergs-dream-world-a-no-go-area-for-women">домогательств</a>.</p><p>Есть надежда, что метавселенная вернётся — когда технологии и контекст будут готовы. Когда VR-шлемы станут лёгкими, дешевыми и удобными, появятся реальные сценарии, а не просто презентации для инвесторов. Тогда, может быть, мы ещё туда заглянем.<b> А пока — rest in pixels, Metaverse.</b></p><h2>NFT-мания</h2><p>Пока одни тусовались в метавселенной и зарабатывали миллионы на продаже пикселей, другие гуглили, что такое OpenSea и почему JPEG стоит как однушка в Москве. Сейчас NFT называют либо финансовым пузырём, либо зачатками новой цифровой инфраструктуры.</p><p>Пандемия и локдаун дали интернету второе дыхание. Люди заскучали и начали скупать цифровое искусство, как раньше собирали марки, карточки или скины в играх. В 2021 году NFT стали мейнстримом: <a href="https://cryptopunks.app/">CryptoPunks</a>, <a href="https://boredapeyachtclub.com/">Bored Ape</a>, <a href="https://www.beeple-crap.com/">Beeple</a> — эти имена знали все. К цифровой лихорадке подключились бренды: <a href="https://www.adidas.com/us/blog/825513-into-the-metaverse-lets-go">Adidas</a>, <a href="https://www.nytimes.com/2022/05/26/style/nike-nft-sneaker.html">Nike</a> и даже <a href="https://corporate.mcdonalds.com/corpmcd/our-stories/article/40-anniversary-mcrib.html">McDonald’s</a> начали продавать цифровой мерч в метавселенных. Пиксельные обезьяны разлетались, как будто золото будущего: в январе 2022 NFT-маркетплейс OpenSea побил все рекорды, ведь месячный объём торгов <a href="https://www.reuters.com/business/future-of-money/cryptoverse-bonfire-nfts-2022-07-05/">составил</a> около $5 млрд. Владение NFT стало признаком цифрового престижа. Люди устанавливали токены себе на аватарки в Twitter, потому что это был цифровой Rolex: если у тебя был токен — ты в теме. А если нет — шёл читать <a href="https://tproger.ru/articles/nft-kak-iskusstvo-chto-jeto-i-kak-sozdat-nft-token-opyt-it-razrabotchika-kontur">гайды</a> на Tproger.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-06-27/e2640635-0d76-4d5d-ad8b-6ee25ee73691.png" alt="NFT" /><figcaption>Источник: Bored Ape Yacht Club</figcaption></figure><p>Но уже к лету того же года рынок начал сдуваться. В июне 2022 объем OpenSea <a href="https://www.reuters.com/business/future-of-money/cryptoverse-bonfire-nfts-2022-07-05/">упал</a> до ~$700 млн, а в октябре 2023 он <a href="https://www.rbc.ru/crypto/news/654b85cb9a7947b3071db244#:~:text=%D0%9F%D0%BE%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%BC%20%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3%D0%BE%20%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%B0%20The,%D0%91%D0%BB%D0%B8%D0%B6%D0%B0%D0%B9%D1%88%D0%B8%D0%B9%20%D0%BA%D0%BE%D0%BD%D0%BA%D1%83%D1%80%D0%B5%D0%BD%D1%82">составлял</a> лишь $91 млн. Минус 98% от пиковых значений. Что же пошло не так?</p><p>Большинство NFT не дают прав на владение цифровым активом. Вы покупаете не саму картинку, а ссылку на неё в блокчейне. Если сервер с изображением ляжет — останется только строчка кода, свидетельствующая о вашем хорошем вкусе. Многие NFT были просто картинками. Ни привязки к играм, ни доступа к сообществам, ни других функций — только красивая (или не очень) обёртка.</p><blockquote>Зачем мне вообще покупать этот NFT вместо настоящего произведения искусства?</blockquote><p>Тысячи NFT-проектов <a href="https://www.nfthailer.com/reports/q3-nft-market-report">выходили</a> каждый день, рынок быстро перенасытился, и в итоге NFT-платформы утонули в спаме и мошенничестве. Один из самых распространённых трюков — <a href="https://financialcrimeacademy.org/understanding-nft-wash-trading/">wash trading</a>: пользователь продаёт токен сам себе, чтобы искусственно раздуть спрос. Исследования <a href="https://www.coindesk.com/web3/2022/12/23/over-30b-of-nft-trading-volume-on-ethereum-is-wash-trading-research-suggests">показывают</a>, что по итогам 2022 года более половины объёма торгов NFT на Ethereum приходилось на липовые сделки. Кто-то считает, что NFT со временем обесценились. Но возможно, что они с самого начала были пустышками.</p><p>Ещё один удар по доверию — кражи и хаос с плагиатом. Работы художников массово превращали в NFT <a href="https://www.nbcnews.com/tech/security/nft-art-sales-are-booming-just-artists-permission-rcna10798">без их ведома</a>: копировали, заливали и продавали, как своё. Никто не спрашивал разрешения у авторов, и уж точно не предлагал процент с продаж. NFT также <a href="https://www.cbsnews.com/news/nft-art-environmental-costs/">критиковали</a> за углеродный след и загрязнение окружающей среды.</p><p>NFT как спекулятивный пузырь — фактически умер. Большинство коллекций потеряли всякий торговый смысл: объёмы упали, активные игроки исчезли, а токены превратились в мёртвые цифровые артефакты. Лихорадочные инвестиции, основанные на спекуляциях, просто сдулись.</p><p>Но сама концепция уникального цифрового актива живёт дальше. Токен как технология адаптируется и трансформируется. В играх NFT уже показали себя как востребованный юзкейс: игроки могут владеть, торговать и прокачивать виртуальные предметы. <a href="https://www.startwithnfts.com/posts/i-responded-to-a-quora-user-who-said-nfts-arent-valuable-heres-what-happened/">Эксперты</a> считают, что инфраструктура останется, и на её базе появятся проекты с реальной практической ценностью. А NFT превратится в элемент цифровой инфраструктуры — как инструмент доступа и сертификат владения. Цифровой «паспорт», который фиксирует принадлежность к сообществам, открывает возможности для участия в клубах и эксклюзивных событиях.</p><h2>3D‑телевизоры: история провала объёмного кино у вас дома</h2><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-06-27/196f3c5f-fea5-433b-a513-4063fa84cfcd.png" alt="3D TV" /><figcaption>Источник: VAVA</figcaption></figure><p>В начале 2010-х 3D-ТВ казались мегатрендом после хита «Аватар». Однако к 2016 году большинство крупных производителей <a href="https://theconversation.com/3d-television-is-dead-so-what-next-72192?">отказались</a> от выпуска моделей с поддержкой 3D. Многие пользователи так и не получили качественный опыт из-за технических ограничений и ранней стадии развития.</p><blockquote>Я знаю, почему 3D-телевизоры провалились: производители поспешили поймать волну кинотеатрального бумa, сделав технологию с тяжёлыми и требующими подзарядки очками. В то же время на горизонте появились большие плоские телевизоры без очков, которые выглядели гораздо лучше и удобнее для пользователей.</blockquote><p>Что пошло не так? Во-первых, сами 3D-очки. Их нужно было заряжать, носить поверх своих, а сидеть при этом строго под определённым углом, иначе магия пропадала. Многие <a href="https://www.reddit.com/r/metro/comments/1enuq1c/why_did_3d_tvs_die_out_this_crap_is_mindblowing/">отмечают</a>, что это было неудобно — очки были дорогими, тяжелыми, а некоторые зрители уставали уже на середине фильма: жаловались на напряжение в глазах, дискомфорт и головные боли. Технология, которая должна была удивлять, в итоге просто раздражала.</p><p>Контента почти не было, и пользователи, купив дорогой телевизор, сталкивались с вопросом: а что, собственно, смотреть? 3D-телевизоры были дороже своих 2D-аналогов, и с развитием 4K, HDR и OLED-технологий потребители начали отдавать предпочтение лучшему качеству изображения без 3D. Зачем платить за условную «глубину», если можно просто получить красивую живую картинку из коробки.</p><p>Несмотря на провал 3D-ТВ в их классическом виде, эксперты <a href="https://www.wired.com/story/3d-is-back/">не ставят</a> на них технологии крест. Как пишет WIRED, новый виток связан с автостереоскопическими дисплеями: они используют трекинг взгляда, линзы и AI, чтобы создавать объёмное изображение прямо на экране — без всяких аксессуаров.</p><h2>Google Glass: будущее было на носу</h2><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-06-27/6878713e-86e0-4dd2-b509-48b4a883ef32.png" alt="Google Glass" /><figcaption>Источник: Google</figcaption></figure><p>Google Glass подавали как прорыв — интерфейс будущего прямо у вас перед глазами. Но вместо футуризма — странная дужка с экранчиком сбоку. Стоила как хороший ноутбук, делала как плохой смартфон. Пользователи получали уведомления на уровне браслета и фото из 2005 года. Памяти почти нет, батарея умирает быстрее, чем вы успеете сказать «Окей, Google».</p><p>Соучредитель Google Сергей Брин позже <a href="https://techcrunch.com/2025/05/20/googles-sergey-brin-i-made-a-lot-of-mistakes-with-google-glass/">признал</a>, что не понимал, как устроены поставки и насколько сложно произвести такие очки массово и недорого. И это многое объясняет: в Google Glass вложили идею, но не довели её до жизнеспособного устройства.</p><p>Хотя запуск обставили красиво: дали очки техноинфлюенсерам, звёздам, первопроходцам — маркетинг остался без главного: никакой конкретики, ни сроков, ни объяснения, зачем это всё нужно. Продукт обсуждали, хайп был — но в продаже его не было. Сама общественность встретила Glass с настороженностью: главной проблемой стала <a href="https://www.wired.com/story/google-glass-reasonable-expectation-of-privacy/">конфиденциальность</a>. У очков не было явного индикатора съёмки, и люди не понимали, записывают их или нет.</p><p>Некоторые <a href="https://www.reddit.com/r/virtualreality/comments/1ai5chh/google_glass_was_ahead_of_its_time/">считают</a>, что Google Glass просто опередили своё время. Прототип показали ещё в 2013 году на Google I/O, а уже к 2015-му производство <a href="https://www.bbc.com/news/technology-30831128">свернули</a>. На практике очки оказались недостаточно удобными, многие обозреватели говорили, что они нелепо выглядят, а способов их применения никто так и не придумал. При цене в $1500 очки превратились в атрибут избранных гиков, а не в массовый гаджет.</p><p>По <a href="http://www.cio.com/article/2369965/consumer-technology/how-many-people-actually-own-google-glass-.html">оценкам</a> аналитиков, всего было продано не более 250 тыс. таких устройств, причем на старте Google отдала лишь 10 000 очков ограниченному кругу «избранных». Попасть к покупателю было сложно — очки продавали только по рекомендациям действующих владельцев. Функционально устройство не впечатляло: маленький прозрачный дисплей с разрешением 640×360, слабая 5-Мп камера, мало памяти и скромные 2–3 часа работы от батареи не соответствовали ожиданиям пользователей.</p><p>После провала на массовом рынке Google сменила стратегию на бизнес‑фокус. С 2014 года разрабатывалась корпоративная версия Glass Enterprise Edition, адаптированная для промышленных задач. Однако эти бизнес-успехи не спасли проект на массовом рынке, и Google окончательно <a href="https://support.google.com/glass-enterprise/customer/answer/13417888">закрыла</a> проект в 2023 году.</p><p>На фоне фиаско Google Glass, современные игроки делают выводы — и действуют иначе. Ray-Ban Meta* (признана в России экстремистской организацией и запрещена) не обещают революцию — они интегрируют ИИ и камеру в повседневную форму очков. Не «будущее на лице», а стильный способ снять сторис и получить подсказки от ИИ. Apple Vision Pro, напротив, сознательно уходит в премиум и не обещает быть массовым — только для профессионалов, с чётким сценарием: дополнительный дисплей, работа с контентом и Facetime. А Android XR (например, от Samsung) с <a href="https://www.techradar.com/computing/virtual-reality-augmented-reality/heres-what-we-know-about-the-5-android-xr-smart-glasses-currently-in-development">амбицией</a> создать экосистему, куда подключаются другие производители.</p><h2>Главные фейлы: почему хайп умер быстрее, чем мы успели надеть шлемы</h2><ul><li>Переоценка трендов: компании хотели <b>влететь в хайповый тренд</b>. В итоге технологии оказывались сырыми или неудобными.</li><li>Нет <b>ценности для пользователя</b>: эти продукты часто не решали реальных задач, а разработчики не объясняли, почему именно их стоит использовать.</li><li>Сложность и <b>неудобства</b>: тяжёлые VR-шлемы, громоздкие или нелепые устройства.</li><li>Непроработанные <b>риски</b>: проблемы с приватностью, мошенничеством и токсичностью подрывали репутацию и доверие.</li></ul><p>В итоге большинство хайповых технологий проваливаются не из-за идеи, а из-за недостатка внимания к пользовательскому опыту, адекватности технических решений и реальным потребностям рынка. Технологии должны идти в ногу с ожиданиями и возможностями людей, а не только с фантазиями инвесторов и маркетологов. Будущее — за теми, кто сумеет не просто создать инновацию, а сделать её удобной, полезной и понятной.</p>]]></content:encoded>
    </item>
    <item>
      <title>Ethereum растёт: что это значит для разработчиков DeFi</title>
      <link>https://tproger.ru/articles/ethereum-rastyot--chto-eto-znachit-dlya-razrabotchikov-defi</link>
      <comments>https://tproger.ru/articles/ethereum-rastyot--chto-eto-znachit-dlya-razrabotchikov-defi?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Григорий Тюрамович]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ethereum-rastyot--chto-eto-znachit-dlya-razrabotchikov-defi</guid>
      <description><![CDATA[<p>Ethereum снова в плюсе, и это не просто цифры — это новые возможности для разработчиков. Обсуждаем, как меняется DeFi, какие инструменты использовать и что важно учитывать при создании Web3-продуктов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ethereum-rastyot--chto-eto-znachit-dlya-razrabotchikov-defi">Ethereum растёт: что это значит для разработчиков DeFi</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[DeFi]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 12 Jun 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Ethereum снова растёт. На момент написания — выше 2700 долларов, и это уже не просто случайный всплеск. На фоне вялого рынка в начале года — выглядит бодро. Причин несколько: крупные игроки вроде BlackRock закупаются, DeFi снова оживился, а обновления сети наконец-то приносят плоды. Но главное — это влияет на нас, разработчиков.</p><p>Если ты когда-нибудь писал что-то под Web3 или просто интересовался, как всё это устроено, сейчас хороший момент снова посмотреть в сторону Ethereum. Дальше по пунктам — что именно стоит иметь в виду.</p><h2>Сеть стала быстрее и дешевле — это уже не шутки</h2><p>Ethereum 2.0 наконец начал работать не просто на бумаге. Транзакции идут быстрее, комиссии стабильнее, нагрузка меньше. Для нас это значит, что можно не закладывать в архитектуру кучу костылей, чтобы обойти медленный отклик или запредельные цены за газ.</p><p>Если раньше ты откладывал идею своего DeFi-продукта на потом — сейчас это самое потом.</p><h2>Больше денег — больше пользователей — больше запросов</h2><p>Когда эфир растёт, люди начинают активнее пользоваться протоколами. Кто-то хочет купить криптовалюту, кто-то — протестить очередной пул, а кто-то просто поиграться с токенами. В любом случае — у тебя на фронте или в бекенде прибавляется трафик.</p><p>И тут важно понимать, как себя поведёт твой код под нагрузкой. Если юзер решит купить Ethereum через твоё приложение, а у тебя всё повиснет — это минус карма и минус юзер.</p><h2>Работать с данными стало важнее, чем когда-либо</h2><p>Показывать актуальный курс, считать доходность, подсказывать пользователю, где выгоднее обменять — это уже не дополнительная фича, а базовая вещь.</p><p>Я для себя давно решил: проще пользоваться агрегаторами, чем пилить миллион обвязок под каждую биржу. Например, <a href="https://exnode.ru/?utm_source=tproger&amp;utm_medium=29.05.2025(g)">Exnode</a> хорошо помогает — глянул в пару кликов, где норм курс, и встроил это в продукт. Не как основа логики, а как ориентир. Удобно и не надо городить огород.</p><h2>DeFi снова жив, и это видно</h2><p>Новые протоколы запускаются почти каждый день. Layer2-сети дышат полной грудью. zkSync, Arbitrum, Base — инструменты уже не просто экспериментальные, с ними можно работать без ощущения, что ты тратишь время впустую.</p><p>Если ты давно хотел сделать что-то на стыке frontend + блокчейн — сейчас тот момент, когда это будет востребовано. Вполне возможно, кто-то через твоё приложение завтра будет покупать криптовалюту, не выходя из Telegram-бота.</p><h2>Вместо вывода</h2><p>Ethereum растёт. Это хороший знак — не только потому, что цифра в CoinMarketCap красивая, а потому что это оживляет экосистему. А значит, оживляет и спрос на наши с тобой скиллы.</p><p>Если давно хотел попробовать себя в Web3 — сейчас, кажется, пора. Даже если начнёшь с чего-то простого: калькулятора доходности, обменника или трекера портфеля — это уже будет полезно.</p><p>Инструменты стали лучше, данные — доступнее, и пользователи опять интересуются. Дальше — дело за нами.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как хакеры используют блокчейн для заражения вирусами через NPM</title>
      <link>https://tproger.ru/news/kak-hakery-ispolzuyut-blokchejn-dlya-zarazheniya-virusami-cherez-npm</link>
      <comments>https://tproger.ru/news/kak-hakery-ispolzuyut-blokchejn-dlya-zarazheniya-virusami-cherez-npm?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/kak-hakery-ispolzuyut-blokchejn-dlya-zarazheniya-virusami-cherez-npm</guid>
      <description><![CDATA[<p>Исследователи Phylum раскрыли масштабную вредоносную кампанию через NPM, использующую тайпсквоттинг для распространения вирусов и кражи данных разработчиков</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/kak-hakery-ispolzuyut-blokchejn-dlya-zarazheniya-virusami-cherez-npm">Как хакеры используют блокчейн для заражения вирусами через NPM</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 06 Nov 2024 13:15:28 GMT</pubDate>
      <content:encoded><![CDATA[<p>Специалисты выявили масштабную вредоносную кампанию, направленную на заражение устройств разработчиков через библиотеку node package manager (NPM).</p><p>Исследователи из компании Phylum <a href="https://arstechnica.com/security/2024/11/javascript-developers-targeted-by-hundreds-of-malicious-code-libraries/">сообщили</a>, что злоумышленники загрузили сотни вредоносных пакетов с именами, похожими на популярные библиотеки, такие как Puppeteer и Bignum.js, а также библиотеки для работы с криптовалютами.</p><p>Цель кампании — заразить устройства разработчиков, использующих эти пакеты.</p><h2>Новый метод сокрытия IP-адресов</h2><p>Уникальная особенность данной атаки заключается в том, что пакеты используют Ethereum-смарт-контракт для скрытия IP-адресов, к которым подключаются зараженные устройства.</p><p>Это необычный способ, поскольку вместо указания адресов прямо в коде, вредоносный пакет получает их через блокчейн-адрес на основной сети Ethereum.</p><p>Исследователи смогли отследить IP-адреса, используемые злоумышленниками, благодаря прозрачности данных на блокчейне, где хранится полная история значений:</p><ul><li>2024-09-23: hxxp://localhost:3001</li><li>2024-09-24: hxxp://45.125.67[.]172:1228</li><li>2024-10-21: hxxp://45.125.67[.]172:1337</li><li>2024-10-22: hxxp://193.233[.]201.21:3001</li><li>2024-10-26: hxxp://194.53.54[.]188:3001</li></ul><h2>Действия вредоносных пакетов</h2><p>После установки, вредоносный пакет работает в памяти, подключаясь к указанному IP-адресу и загружая дополнительные файлы JavaScript.</p><p>Он отправляет на сервер информацию о системе: данные о процессоре, видеокарте, объеме памяти, имени пользователя и версии операционной системы. Также он автоматически запускается при каждом перезагрузке устройства.</p><h2>Техника тайпсквоттинга и советы разработчикам</h2><p>Злоумышленники используют технику тайпсквоттинга — создание пакетов с именами, похожими на легитимные, но с незначительными изменениями, которые пользователи могут не заметить.</p><p>Тайпсквоттинг активно используется последние несколько лет для распространения вредоносных библиотек, что делает его излюбленным методом киберпреступников.</p><h2>Рекомендации для разработчиков</h2><p>Phylum советует разработчикам тщательно проверять имена пакетов перед установкой. В блоге компании указаны названия и IP-адреса вредоносных пакетов, чтобы пользователи могли избежать установки зараженных библиотек.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что такое децентрализованные финансы и как они работают</title>
      <link>https://tproger.ru/articles/chto-takoe-decentralizovannye-finansy-i-kak-oni-rabotayut</link>
      <comments>https://tproger.ru/articles/chto-takoe-decentralizovannye-finansy-i-kak-oni-rabotayut?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анна Ельцова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/chto-takoe-decentralizovannye-finansy-i-kak-oni-rabotayut</guid>
      <description><![CDATA[<p>Децентрализованные финансы (DeFi) — специальные сервисы, основанные на смарт-контрактах и блокчейне. Разбираемся, что они из себя представляют и зачем нужны.
</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/chto-takoe-decentralizovannye-finansy-i-kak-oni-rabotayut">Что такое децентрализованные финансы и как они работают</a>»</p>]]></description>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Криптовалюты]]></category>
      <category><![CDATA[DeFi]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 11 Jul 2024 08:30:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>В 2024 году объем рынка DeFi <a href="https://www.statista.com/outlook/fmo/digital-assets/defi/worldwide">достигнет</a> $26 млн, а к 2028 вырастет до $37 млн. Тогда же, по прогнозам, DeFi-продуктами будут пользоваться более 22 млн человек по всему миру. Такая популярность децентрализованных финансов — еще одна ступень на пути к повсеместному использованию криптовалюты, учитывая все разговоры о цифровых рублях и других валютах.</p><p>DeFi — это целая экосистема, которая упрощает банкинг, инвестирование, кредитование и другие финансовые операции. И для этого достаточно просто скачать приложение. Ниже разбираемся, как это работает и зачем это нужно.</p><h2>Что такое DeFi</h2><p>DeFi (Decentralized Finance) — это набор финансовых приложений и услуг, которые построены на блокчейнах, преимущественно на Ethereum. Эти приложения включают в себя всё от кредитования и займов до торговли и страхования.</p><p>Основная идея заключается в создании открытой, прозрачной и доступной финансовой системы. При этом не нужно обращаться в банки — сохраняется полная анонимность пользователя.</p><p>Представьте, что вам нужно занять деньги. В традиционной системе вы бы пошли в банк, заполнили кучу документов, прошли проверку кредитной истории, и если банк одобрит ваш запрос, вы получите займ. В децентрализованных финансах (DeFi) все происходит иначе:</p><ol><li>Вы заходите на DeFi-платформу и вместо проверки кредитной истории вы размещаете свои криптовалюты в качестве залога (например, Ethereum или Bitcoin).</li><li>На основе залога вы получаете займ в другой криптовалюте или стабильной монете (например, DAI или USDC).</li></ol><p>Стоимость операций в протоколах DeFi определяют пользователи: чем больше спрос на нужную криптовалюту, тем выше комиссия — с неё продавцы и получают доход. Однако юзеры могут сами занижать процент в отличие от традиционного банкинга, где он устанавливается свыше на все транзакции.</p><h2>Технологии внутри DeFi</h2><p>DeFi завязана на peer-to-peer операциях — все транзакции происходят без посредников (банков) между пользователями на открытом рынке. Децентрализованные финансы используют модель p2p-обмена, но с помощью приложений и смарт-контрактов на блокчейне.</p><h3>Блокчейн</h3><p>Блокчейн (или, если вас очень просят переводить термины на русский язык, «цеповяз») — это распределенная и защищённая база данных. В блокчейне транзакции записываются в блоки и проверяются с помощью автоматизированных процессов. Если транзакция подтверждена, блок шифруется, затем создается другой блок с информацией о предыдущем и новых транзакциях.</p><p>Изменить, кстати, блокчейн невозможно — тогда полетит вся система. В общем, безопасность с большой буквы.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2024-07-09/7719ed51-00a8-47e2-8d44-374970ff8ca6.png" alt="" /></figure><p>Эта технология позволяет пользователям хранить персональные ключи к виртуальным токенам или крипте, которые работают как пароли. Собственность на токены передаётся другому юзеру через кошелек с таким же закрытым ключом, и за счет блокчейна обратная передача невозможна.</p><p>В DeFi блокчейн нужен, чтобы пользователи могли совершать транзакции, брать займы и торговать на бирже без какого-либо контроля со стороны финансовых институтов. Технология записывает все транзакции и данные смарт-контрактов по сети. И решающую роль здесь играют Etherium и Solana, способные поддерживать смарт-контракты.</p><h3>Смарт-контракты</h3><p>Это база DeFi. Смарт-контракты — аналог обычных контрактов, только цифровых и автоматизированных. Именно они обеспечивают прозрачные транзакции без посредников. Разработчики пишут и развёртывают их на блокчейне, поддерживающем умные-контракты — как мы уже выяснили, это Etherium, Solana и ещё Polka dot. По сути, это как 1С, только круче: с помощью смарт-контрактов можно запланировать ежемесячные платежи или даже запустить свою биржу.</p><p>Вообще, в разработке смарт-контрактов стоит отдать должное девелоперам Etherium. Сначала технология работала по принципу Proof-of-Work (как Биткоин), а потом, чтобы Эфир мог оперативнее обрабатывать огромное количество транзакций, создатели перевели её на Proof-of-Stake. Благодаря этому мы имеем DeFi в современном виде.</p><h3>Децентрализованные приложения (dApps)</h3><p>Их можно скачать на компьютер или телефон и получать финуслуги из любой точки мира (без пятидневного ожидания от европейского банка). Приложения построены на базовом блокчейне — внутри можно брать кредиты, торговать на бирже, дарить подарки и совершать покупки без участия третьих лиц. Только вы, приложение и man in finance (6’5, blue eyes), который успел купить крипту десять лет назад.</p><p>Например, если вам нужен кредит, вы выходите на p2p-рынок и ищете продавца с более выгодными условиями и процентами — он одолжит вам определённое количество криптовалюты.</p><p>Вот несколько таких платформ:</p><ul><li>CriptoKitties</li><li>Uniswap</li><li>Aave</li><li>Alchemix</li><li>Yearn</li><li>MakerDAO</li><li>ENS</li></ul><p>Большинство из них построены на Etherium. Цены меняются в зависимости от спроса и предложения. Но помните: нужно оставаться аккуратными с p2p-кредитованием на DeFi-платформах, торговлей на криптобиржах и в целом с покупкой/продажей криптовалюты — это инвестиционный риск (про Патрики знаем, плавали).</p><h2>Немного подробнее: где используется DeFi</h2><p>Изначально это была история про кредитование и обмен, но сейчас с развитием индустрии количество направлений DeFi увеличилось. Вот некоторые из них:</p><ul><li><b>Провайдеры ликвидности. </b>Ликвидность — это возможность быстро продавать активы. Провайдеры ликвидности, как правило, представляют собой пулы, в которых пользователи размещают средства, чтобы биржи могли предоставлять своим пользователям возможности для продажи.</li><li><b>Децентрализованное страхование.</b> Да, в какой-то момент разработчики поняли, что в смарт-контрактах могут быть ошибки, а криптокошелёк и вовсе могут украсть. Тогда придумали децентрализованное страхование: пользователи дают ликвидность на покрытие ущерба, и получают с этого процент.</li><li><b>NFT.</b> Да, рынок немного «подуспокоился», но энтузиастов, которые коллекционируют обезьян, всё ещё много.</li><li><b>Рынки прогнозов.</b> Можно делать ставки на исход любого события. История рискованная, поэтому всегда делайте ставку на себя.</li><li><b>Стейблкоины.</b> Если переводить на русский — стабильные монеты. Это валюты с фиксированной ценой — она обеспечивается фиатной и децентрализованной криптой (знакомые нам ETH и BTC).</li></ul><h2>Подводные камни есть</h2><p>Несмотря на быстрое развитие DeFi-индустрии и все преимущества — анонимность, круглосуточный и легкий доступ к активам и займам и обход банков — система не выглядит идеальной. Вот несколько возможных проблем:</p><ul><li><b>Хакеры «хакерствуют», закон пока не «законится».</b> Помним, что любая система уязвима (как говорили в фильме «Кто я»). И DeFi-платформы являются одними из самых взламываемых в мире криптовалюты. Кроме того, сфера до сих пор полностью не регулируется с правовой точки зрения (хотя инициативы со стороны американского правительства <a href="https://www.rbc.ru/crypto/news/65c3477a9a79477180bd4a80">есть</a>), поэтому вопросы с расследованиями и скандалами остаются открытыми. Это в определённой степени нормально, учитывая, насколько быстро растет сфера.</li><li><b>Смарт-контракты могут рухнуть.</b> Несмотря на то что они обеспечивают прозрачность и безопасность, они написаны не на бумаге, а в компьютере, и не ручкой, а кодом. А любой код может дать сбой в какой-то момент, что может привести к потере средств.</li><li><b>Могут подняться комиссии.</b> Если валюта нестабильна, пользователям придётся платить больший процент, чтобы быстро закрыть все транзакции — это может привести к резкому увеличению комиссий.</li><li><b>Непостоянные убытки.</b> Они связаны с обеспечением ликвидности в протоколах автоматизированных маркетмейкеров. Когда вы предоставляете ликвидность пулу на этих платформах, вы вносите вклад в оба криптоактива (обычно в соотношении 50/50), чтобы облегчить торговлю, а взамен зарабатываете на комиссии: получаете долю комиссионных за торговлю криптовалютой, генерируемых протоколом. Непостоянные убытки возникают, когда цены на два токена в пуле ликвидности значительно расходятся с течением времени.</li><li><b>Rug Pull.</b> Или «подтасовка». Это тип мошенничества, при котором создатели проекта DeFi намеренно обманывают инвесторов или пользователей, резко выводя ликвидность или средства из проекта, а пользователи остаются с «носом», точнее, с обесценившимися токенами.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/101078/2024-07-09/265f4a19-ccd9-479a-8a9b-539fad75c478.jpeg" alt="" /></figure><p>Децентрализованные финансы — ещё один шаг на пути к миру «Киберпанка» и «Первому игроку приготовиться». Они позволяют совершать операции с криптой быстро, анонимно, прозрачно и без посредников за счет смарт-контрактов. Но всегда нужно помнить, что сфера только начинает зарождаться, а изъяны есть в любой системе.</p>]]></content:encoded>
    </item>
    <item>
      <title>Рейтинг лучших программистов в мире 2023: раунд 3</title>
      <link>https://tproger.ru/articles/rejting-luchwih-programmistov-v-mire-2023-raund-3-244360</link>
      <comments>https://tproger.ru/articles/rejting-luchwih-programmistov-v-mire-2023-raund-3-244360?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/rejting-luchwih-programmistov-v-mire-2023-raund-3-244360</guid>
      <description><![CDATA[<p>В третьем раунде батла за звание лучшего программиста в мире схлестнутся Билл Гейтс и Виталик Бутерин, Никлаус Вирт и Сатоши Накамото.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/rejting-luchwih-programmistov-v-mire-2023-raund-3-244360">Рейтинг лучших программистов в мире 2023: раунд 3</a>»</p>]]></description>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Bitcoin]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Pascal]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 27 Jul 2023 08:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Сегодня за звание лучшего программиста в мире будут бороться две пары.</p><p>Первая пара:</p><ul><li>Билл Гейтс, основатель Microsoft,</li><li>Виталик Бутерин, основатель Ethereum.</li></ul><p>Вторая пара:</p><ul><li>Никлаус Вирт, создатель языка Паскаль,</li><li>Сатоши Накамото, создатель биткойна.</li></ul><p>Выберите из них, кого вы лично считаете лучшим программистом в мире, но помните: не ориентируйтесь на их популярность, востребованность или устоявшиеся топы лучших программистов.</p><p>В этом турнире важны только народная любовь и ваша субъективная оценка.</p><p>Подробнее об условиях батла читайте в <a href="https://tproger.ru/articles/startuet-batl-luchwih-programmistov-mira-2023/">анонсе</a>.</p><p>По итогам второго раунда Бьёрн Страуструп, создатель С++, обогнал Джеймса Гослинга, создателя Java.</p><p>Также Гвидо ван Россум, создатель Python, проиграл Андерсу Гейлсбергу, создателю Turbo Pascal, Delphi, C# и TypeScript.</p><p>Результаты прошлого раунда можно посмотреть <a href="https://tproger.ru/articles/rejting-luchwih-programmistov-v-mire-2023-raund-2/">здесь</a>.</p><p>Подпишитесь на тег <a href="https://tproger.ru/tag/luchshij-programmist-2023/">Лучший программист 2023</a> и следите за обновлениями в личной ленте, чтобы не пропустить финал битвы.</p><p><b>Турнирная таблица:</b></p><figure><img src="https://media.tproger.ru/uploads/2023/07/2864be14-e9fd-42da-b1c9-094eb1f92a1d.png" alt="" /></figure><p>Голосование продлится до завтра, 28 июля 2023 года, до 11 часов по московскому времени.</p>]]></content:encoded>
    </item>
    <item>
      <title>Рейтинг лучших программистов в мире 2023: анонс</title>
      <link>https://tproger.ru/articles/startuet-batl-luchwih-programmistov-mira-2023</link>
      <comments>https://tproger.ru/articles/startuet-batl-luchwih-programmistov-mira-2023?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/startuet-batl-luchwih-programmistov-mira-2023</guid>
      <description><![CDATA[<p>Объявляем батл за звание лучшего программиста мира. Читатели Tproger смогут выяснить, кто самый крутой айтишник в мире.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/startuet-batl-luchwih-programmistov-mira-2023">Рейтинг лучших программистов в мире 2023: анонс</a>»</p>]]></description>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[C#]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Ruby]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Bitcoin]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Pascal]]></category>
      <category><![CDATA[Павел Дуров]]></category>
      <category><![CDATA[Илон Маск]]></category>
      <category><![CDATA[Лучший программист 2023]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 24 Jul 2023 08:01:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Ежегодно, перед Новым годом, мы проводим <a href="https://tproger.ru/articles/battl-jazykov-programmirovanija-2022-zavershilsja-2/">батл лучших языков программирования</a>. Этот батл мы очень любим: он весёлый, а результаты бывают непредсказуемыми.</p><p>Начитавшись новостей о противостоянии Илона Маска и Марка Цукерберга, которое перетекает из борьбы бизнесов в борьбу физическую и наоборот, мы решили провести новый летний батл за звание лучшего программиста мира.</p><p>Читатели Tproger смогут проголосовать за своего фаворита и выяснить, кто на самом деле самый крутой айтишник.</p><p>Правила батла просты:</p><ol><li>В батле участвует 16 всемирно известных программистов.</li><li>Ежедневно соревнуются две пары.</li><li>За любимого программиста можно проголосовать в течение 24 часов.</li><li>Пары составляются рандомно, так что выбирайте программиста, который субъективно, лично вам нравится больше.</li><li>В финале мы определим тройку победителей.</li><li>Старт — 25 июля, финал — 1 августа.</li></ol><p>Забирайте эту запись в закладки, ведь именно в неё будут добавляться ссылки на последующие этапы голосования.</p><p><b>Турнирная таблица:</b></p><figure><img src="https://media.tproger.ru/uploads/2023/07/14f247b0-4d7c-4f6f-ac24-319da3157686.png" alt="" /></figure><p>Старт уже завтра — 25 июля в 11:00 МСК. Следите, участвуйте, голосуйте!</p>]]></content:encoded>
    </item>
    <item>
      <title>Разработка на блокчейне: от стека-зоопарка — к SDK на одном языке и с поддержкой low-code</title>
      <link>https://tproger.ru/articles/razrabotka-na-blokchejne-ot-steka-zooparka-k-sdk-na-odnom-jazyke-i-s-podderzhkoj-low-code</link>
      <comments>https://tproger.ru/articles/razrabotka-na-blokchejne-ot-steka-zooparka-k-sdk-na-odnom-jazyke-i-s-podderzhkoj-low-code?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Николай Землянский]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/razrabotka-na-blokchejne-ot-steka-zooparka-k-sdk-na-odnom-jazyke-i-s-podderzhkoj-low-code</guid>
      <description><![CDATA[<p>Разберём смарт-контракты и от зоопарка разномастных решений придём к единому SDK на одном языке программирования и с поддержкой low-code.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/razrabotka-na-blokchejne-ot-steka-zooparka-k-sdk-na-odnom-jazyke-i-s-podderzhkoj-low-code">Разработка на блокчейне: от стека-зоопарка — к SDK на одном языке и с поддержкой low-code</a>»</p>]]></description>
      <category><![CDATA[Kotlin]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Пост пользователя]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 15 Jul 2021 16:55:12 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>По мотивам выступления Дениса Васина, руководителя прикладной разработки платформы Waves Enterprise, на Blockchain Life 2021</i></p><p>Зачем нужны смарт-контракты? Сфер применения у них много. Cмарт-контракт, исполняемый внутри блокчейна, гарантирует нам то, что у некоторого NFT-токена в настоящий момент только один владелец. DeFi — сегмент децентрализованных финансов — основан на смарт-контрактах целиком. Любое DeFi-приложение — это фактически набор смарт-контрактов, правил, по которым функционирует экономическая система.</p><p>В смарт-контрактах рассчитывается, сколько каких токенов мы можем взять под какой залог, рассчитываются, например, правила ликвидации, когда стоимость нашего залога в результате колебаний рынка упала. Или, например, в децентрализованных автономных организациях (DAO) — все управление работает через смарт-контракты. Держатели токенов организации проводят голосование. Его результат регистрируется в смарт-контракте, и он обеспечивает необратимость принятого решения. В принципе, весь существующий сегодня публичный блокчейн работает на смарт-контрактах.</p><h2>Внутри смарт-контрактов: уязвимости Solidity</h2><p>Давайте заглянем внутрь смарт-контрактов. Для них по крайней мере в популярнейшем Ethereum используется язык Solidity. Пример функции из одного реального контракта в сети:</p><p>Что у нас здесь? Видим метод withdraw balance() — этот кусок кода отвечает за то, чтобы забирать какое-то количество эфира из контракта. Вроде бы всё просто и понятно. Но даже эти несколько строк уже содержат критическую уязвимость, которую, скорее всего, не знакомый с Solidity человек не заметит.</p><p>Уязвимость эта связана с re-entrancy. Смотрим на третью строчку кода: здесь мы используем метод msg.sender.call.value и добавляем то количество денег, которое хотим забрать. Что же не так?</p><p>В Ethereum широко поддерживается композиция^. Пользователями смарт-контракта могут быть не только владельцы закрытого ключа, но и другие контракты. В sender’е может оказаться контракт, который после передачи ему управления методом call снова вызовет метод withdraw balance() и заберёт деньги. За счёт того, что вызов userBalances[msg.sender] = 0 находится после вызова другого контракта, данный метод оказывается уязвим.</p><p>Одна из самых знаменитых атак DAO — на Ethereum в 2016 году — была сделана через схожую уязвимость. С контракта вывели несколько миллионов долларов, Ethereum форкнулся, сеть развалилась на две.</p><p>Прошло пять лет, но в контрактах до сих пор попадаются уязвимости, связанные с re-entrancy. Да, контракты, оперирующие протоколами с большими суммами денег, подвергаются аудиту. Как говорится, рано или поздно любой контракт проходит аудит: вы заплатите за него либо аудиторам, либо хакерам.</p><p>Но контракты, которые разрабатываются на скорую руку — часто это форки известных проектов, сделанные, например, для новых токенов — сохраняют возможность для таких re-entrancy или более сложных атак, которые могут привести ко взлому протокола. Поэтому Solidity — не самый надежный язык для написания смарт-контрактов. Вот ещё один пример:</p><p>Перед нами ассемблерная вставка. Их можно размещать в Solidity, поскольку это достаточно низкоуровневый язык, где стоит думать об аллокации переменных в памяти, чтобы уменьшить стоимость газа. Для этих целей или, например, для того, чтобы использовать хранилище на другом адресе, мы можем использовать inline assembly.</p><p>Я как разработчик смарт-контрактов скептически отношусь к использованию парадигмы настолько низкого уровня — потому что так мы больше думаем про техническую реализацию, а не про бизнес. Но что поделать, ведь Solidity был разработан семь лет назад, стал первопроходцем в создании смарт-контрактов на блокчейне. И по сей день сохранил оригинальное низкоуровневое «видение».</p><h2>Другие минусы экосистемы</h2><p>Разберёмся теперь, что в принципе происходит в процессе выполнения смарт-контракта. У нас есть майнер блока, и он выполняет смарт-контракты, которые находятся в блоке. После выполнения смарт-контрактов начинается процесс PoW (proof of work) — подбор хеша определенной сложности. Процесс PoW-майнинга гораздо более ресурсоёмок, чем процесс обработки самого контракта. На исполнение контракта тратится очень малая часть машинного времени по сравнению с подбором PoW-хеша. Это довольно обидно, потому что разработчикам приходится тратить уйму времени на написание оптимального по газу кода: раскладывать переменные, оптимизировать записи и так далее. Хотя по сути это избыточная работа, которая на сам смарт-контракт не влияет.</p><p>Как мы уже сказали, Solidity небезопасен по своей природе. С ним можно легко выстрелить себе в ногу из-за неправильной последовательности вызовов. А использование кода, который позволяет напрямую работать с виртуальной машиной эфира, только усугубляет потенциальную опасность.</p><p>Эти две причины привели к возникновению целого направления — <i>аудит смарт-контрактов</i>. В последнее время это очень востребовано: энтузиасты форкают Uniswap и пишут свои смарт-контракты. Аудиторские конторы не отстают и задирают цены — десятки долларов за строчку кода. Так саморегулируется рынок, но, как мне кажется, это очень дорого.</p><p>Если свести особенности Solidity вместе, перед нами предстанет весьма непростая система. Оптимизация по газу, оптимизация переменных, написание кода на достаточно низкоуровневом языке, где нет большого количества примитивов — например, даже встроенной библиотеки для работы со строками (хотя для кого-то это некритично, ведь некоторые протоколы вполне себе обходятся без строк).</p><p>За счёт такой сложности разработчики на блокчейне стоят сравнительно дорого. Но сейчас разработка на блокчейне становится мейнстримом. Люди делают свои De-Fi протоколы, деген-фармы, NFT и всё прочее, не разбираясь с Solidity. Поэтому <i>растёт потребность в более высокоуровневом инструменте</i>, который позволит сразу уменьшить количество ошибок в разработке и снизить порог входа как для новичков в программировании, так и для специалистов по другим языкам.</p><p>Даже комьюнити Ethereum в некоторой степени разделяет подобные взгляды. Виталик Бутерин, создатель Ethereum, в качестве более простой и безопасной альтернативы Solidity предложил <b>Vyper</b>. Этот язык похож на Python, имеет ряд ограничений, которых нет в Solidity, но благодаря которым разработка контрактов становится проще.</p><h2>Дело не только в смарт-контрактах</h2><p>Мы рассмотрели проблему со смарт-контрактами, и она не последняя. Для работы DeFi требуются внешние источники данных и инструменты работы с ними — оракулы. Когда мы закладываем эфир под залог, необходимо, чтобы система знала текущую стоимость эфира — иначе она не будет понимать, когда нужно ликвидировать залог. Вопрос оракулов решается с помощью популярного протокола ChainLink, который фактически поставляет данные из реального мира в блокчейн.</p><figure><img src="https://media.tproger.ru/uploads/2021/07/pasted-image-0.png" alt="" /></figure><p>Роль дополнительных инструментов в блокчейне настолько важна, что без них он превращается в  дорогую, медленную и в целом ужасную по своим характеристикам key-value базу данных. Всё может быть прекрасно с записью, с поддержанием консенсуса… но ответить на простые вопросы вроде «какие топ-10 аккаунтов имеют больше всего эфира» нода сама по себе не в состоянии: у нее нет таких средств, нет даже языка запросов.</p><p>Для полноты картины стоит упомянуть, что кое-какая стандартизированная логика в смарт-контрактах типа ERC-20/ERC-721 или в NFC-токенах всё-таки присутствует, но работает она исключительно для простых запросов в узкой предметной области. Чтобы проследить, например, историю владения NFT на эфире, нужно разматывать весь контракт до основания, искать в транзакциях события. Это очень сложно и неудобно. Поэтому возникают инструменты, которые позволяют индексировать данные блокчейна и предоставлять их в простом, доступном виде. Сегодня наиболее известным из таких инструментов является The Graph.</p><p><b>The Graph</b> — протокол, который позволяет нам писать собственные так называемые индексаторы. Они нужны, чтобы прочитать данные с какого-либо контракта — события, вызовы — и построить удобно читаемую через API модель данных в реляционной базе данных.</p><p>Зачем это надо? Простой пример: Uniswap — известная децентрализованная биржа, которая позволяет нам в любой момент покупать/продавать токены. У Uniswap есть потребность — отрисовать стандартный биржевой график. Делается это сейчас с помощью The Graph. На AssemblyScript — это подвид TypeScript, нацеленный на логику и скорость исполнения — пишут индексатор. Начиная с указанного блока он проходит по блокчейну и для каждого блока запоминает результат: какова была стоимость разных пар токенов в событиях покупок/продаж. Эти данные он складывает в обычную базу с доступом через GraphQL API в виде привычных нам «свечек», которые потом рисует интерфейс Uniswap.</p><figure><img src="https://media.tproger.ru/uploads/2021/07/pasted-image-0-1.png" alt="" /></figure><p>Сырые данные блокчейна скрыты глубоко от наших глаз, и это приводит к серьёзным задержкам в синхронизации данных — как случилось, например, с эфир-совместимым протоколом Binance Smart Chain. Новые данные появляются так быстро, что индексаторы не успевают их выводить. Из-за этого пользователи могут отправить транзакции и не увидеть их результат в веб-сервисах. Но это не «блокчейн сломался» и не «токены украли» — это просто индексатор отстал от блокчейна.</p><figure><img src="https://media.tproger.ru/uploads/2021/07/pasted-image-0-2.png" alt="" /></figure><p>The Graph — это обратный оракул с механизмом обеспечения доверия. Он включает индексаторы, которые по итогам процесса индексирования и достижения консенсуса получают токены вознаграждения. Если консенсус не достигнут, токены слешатся. Таким образом реализуется механизм доверия к этим данным.</p><h2>Причём здесь энтерпрайз?</h2><p>На протяжении нескольких лет эволюция разработки на публичных блокчейнах пришла к разрозненному набору инструментов, которые создаются разными командами. Выше мы разобрали лишь часть этого набора. При этом без всех инструментов — Vyper, Etherscan, The Graph и так далее — полноценного приложения не построишь.</p><figure><img src="https://media.tproger.ru/uploads/2021/07/pasted-image-0-3.png" alt="" /></figure><p>Такой зоопарк инструментов неудобен для компаний. Очень мало разработчиков знают одновременно Solidity и Vyper, да ещё и AssemblyScript владеют. Поднять сразу все нужные компетенции для корпоративного блокчейна тяжело. Но необходимо, чтобы пройти одну из самых проблемных стадий для блокчейна — adoption, принятие решения как основного. Ведь если на блокчейн возложить лишь вспомогательные функции, его польза сводится к минимуму.</p><p>Публичные блокчейны столкнулись с этим во время «криптозимы» — периода активного поиска новых сценариев использования, который длился вплоть до распространения DeFi, начала «оттепели» летом 2020-го. Но это всего лишь оттепель — корпоративный блокчейн по-прежнему развивается медленно. Даже когда находится бизнес-применение технологии, все процессы спотыкаются о требования к разработчикам.</p><h2>Waves Enterprise SDK</h2><p>Мы в Waves Enterprise решили собрать в одной коробке набор инструментов, который бы инкапсулировал все лучшие практики разработки публичных блокчейнов. Мы занимаемся именно энтерпрайз-блокчейном и понимаем основные требования заказчиков к инструментам:</p><ul><li>использование распространённого технологического стека;</li><li>отсутствие нескольких языков в рамках одного проекта;</li><li>предсказуемая, гарантированная поддержка от вендора.</li></ul><p>Их мы учли при создании <b>Waves Enterprise SDK</b>. Он инкапсулирует лучшие паттерны из мира блокчейн-разработки, использует стандартные корпоративные языки программирования (Java, Kotlin) и единый набор инструментов как для смарт-контрактов, так и для приложений, которые берут из них данные.</p><p>Рассмотрим пример смарт-контракта в нашем SDK — это порт ERC-20 токена:</p><p>Это код на Kotlin, который использует невысокоуровневые функции, чтобы проверить, кто кому сколько дал прав на перевод токенов, отследить баланс, по которому дали разрешение. В чём преимущество этого кода по сравнению с Solidity?</p><ul><li>нет скрытых уязвимостей: невозможны re-entrancy атаки.</li><li>не нужно думать об оптимизации по газу — комиссия фиксирована.</li><li>пишется на более распространенном языке — после нашего обучения за один день Java-разработчики уже начинали писать свои контракты.</li></ul><p>Но, как мы обсуждали, смарт-контракты — это ещё не всё. Нужно получить данные, информацию по обновлению контракта. У нас в SDK для этого есть библиотека, которая заменяет The Graph, и в этой библиотеке тоже всё пишется на Kotlin. Достаточно создать ротацию BlockListener, уточнить, какие ключи в блокчейне мы слушаем, — и можно писать произвольный код, который разложит данные транзакции в объектную модель для дальнейшей работы.</p><p>В классическом Ethereum, чтобы вызвать контракт, нужно использовать библиотеку Web3j на JS. Нужен отдельный код, чтобы вызвать контракт, собрать транзакцию. У нас это уже реализовано в рамках единого языка стандартными инструментами. То есть наш SDK реализует полный жизненный цикл программной разработки на блокчейне в одной коробке.</p><h2>Делаем ещё проще: lowcode-разработка</h2><p>Итак, у нас есть единая парадигма разработки на основе кодинга. Но что если разрабатывать программное обеспечение без него? В публичных чейнах есть такая возможность.</p><p>Есть такой стартап — Furucombo — визуальный конструктор, который даёт возможность складывать DeFi-протоколы как кубики и получать готовую DeFi-стратегию. Раньше для стратегии нужно было писать код смарт-контракта, в котором в рамках одной транзакции вызывались бы разные протоколы. Сейчас мы складываем кубики, нажимаем Run — и всё готово. Так реализуется low-code подход к разработке — с помощью drag’n’drop и графического интерфейса. По большому счету, такой подход требует лишь знаний предметной области: в случае с Furucombo это DeFi, а в корпоративном мире — это бизнес-процессы компании, знание того, что мы хотим оптимизировать и зачем применять блокчейн.</p><p>Low-code разработка становится все более и более популярной. Вот выжимка из отчета Gartner по теме:</p><figure><img src="https://media.tproger.ru/uploads/2021/07/pasted-image-0-4.png" alt="" /></figure><p>Почти четверть пользователей, пришедших к low-code, вообще никогда не занимались программированием! И 70% из них освоили low-code менее чем за месяц. Тогда как самый простой курс программирования с нуля на питоне — это минимум полгода. Почти две трети абсолютных новичков разработали своё приложение менее чем за три месяца. Low-code позволяет быстро и просто автоматизировать типовые бизнес-процессы и снижать TTM, быстрее релизить приложение на рынке, что сегодня критически важно.</p><p>В экосистеме Waves Enterprise существует партнерский продукт EasyChain, который позволяет собирать приложения на основе нашего блокчейна аналогичным low-code способом.</p><figure><img src="https://media.tproger.ru/uploads/2021/07/pasted-image-0-5.png" alt="" /></figure><p>С помощью визуального конструктора пользователь рисует в EasyChain Studio свой бизнес-процесс, через API он публикуется и попадает в блокчейн. Дальше со смарт-контрактом можно работать через API, через Studio или через эксплорер бизнес-процессов. Для любого бизнес-процесса можно сделать собственный интерфейс пользователя — через веб- или мобильное приложение.</p><h2>Code и low-code: разрабатываем смарт-контракт</h2><p>Сравним обычную и low-code разработку лоб в лоб на примере простого смарт-контракта уровня hello world. Вот, собственно, code-версия:</p><p>В Waves Enterprise все смарт-контракты представляют собой docker-образы, которые хранятся в docker registry. Кто-то скажет, что это небезопасно и «не тру». Но на самом деле это безопасно, поскольку в блокчейне хранится хеш от образа контракта, и этого достаточно для защиты неизменности кода.</p><p>Теперь попробуем сделать то же самое через no-code инструмент — вышеупомянутую Easy Chain Studio. Создаём стартовую точку, начальное состояние контракта, добавляем состояние SayHello и финишное состояние. Затем соединяем кубики стрелочками.</p><figure><img src="https://media.tproger.ru/uploads/2021/07/pasted-image-0-6.png" alt="" /></figure><p>Набросок логики есть, осталось научить контракт говорить Hello. Для этого добавим переменную процесса result: она будет хранить в себе выводимый результат. Теперь необходимо определить входные данные. Нажмем на стрелку перехода к SayHello. Указываем, что пользователю нужно ввести данные и что переход совершается извне. Добавляем свойство name. Теперь необходимо собрать строчку SayHello. Для этого переменной result мы присвоим значение ‘Hello’ + signal.name.</p><p>На этом всё, идти в API и делать вызовы не надо — можно уже тестировать процесс. Мы выбираем среду, нажимаем Deploy и Run.</p><figure><img src="https://media.tproger.ru/uploads/2021/07/pasted-image-0-7.png" alt="" /></figure><p>После запуска система даёт подсказку, что мы можем сделать на первом шаге. Единственное, что мы можем сделать — это прописать значение параметра, например «Blockchain Low Code Life». Вводим, отправляем и идём в эксплорер блокчейна посмотреть, как всё прошло:</p><figure><img src="https://media.tproger.ru/uploads/2021/07/pasted-image-0-8.png" alt="" /></figure><p>Перед нами информация о вызове смарт-контракта. Видим, что в качестве параметра мы, как и предполагалось, отправили «Blockchain Low Code Life» и в переменной Result получили «Hello Blockchain Low Code Life». Для обычного пользователя второй, low-code способ создания выглядит гораздо дружелюбней.</p><p>Подведём итог. <b>От зоопарка разномастных решений в начале статьи мы пришли к единому SDK на одном языке программирования, да ещё и с поддержкой low-code.</b> Таким образом мы снижаем порог входа в блокчейн-разработку и максимально упрощаем самый важный шаг для технологии — adoption. И наш блокчейн оказывается удобоварим не только для программистов широкого профиля, но и для всех, кто способен структурированно описать бизнес-процессы на уровне шаблонов и переменных — например, для аналитиков.</p>]]></content:encoded>
    </item>
    <item>
      <title>Китайские майнеры «сломали» ограничения RTX 3060, внедрённые NVIDIA</title>
      <link>https://tproger.ru/news/kitajskie-majnery-slomali-ogranichenija-rtx-3060-vnedrjonnye-nvidia</link>
      <comments>https://tproger.ru/news/kitajskie-majnery-slomali-ogranichenija-rtx-3060-vnedrjonnye-nvidia?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/kitajskie-majnery-slomali-ogranichenija-rtx-3060-vnedrjonnye-nvidia</guid>
      <description><![CDATA[<p>Видеокарта показала около 45 Мх/сек вместо урезанных алгоритмами 20-25 Мх/сек, правда на фото добывают Octopus, а не Ethereum.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/kitajskie-majnery-slomali-ogranichenija-rtx-3060-vnedrjonnye-nvidia">Китайские майнеры «сломали» ограничения RTX 3060, внедрённые NVIDIA</a>»</p>]]></description>
      <category><![CDATA[Алгоритмы и структуры данных]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Криптовалюты]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 11 Mar 2021 11:51:49 GMT</pubDate>
      <content:encoded><![CDATA[<p>Ранее NVIDIA <a href="https://tproger.ru/news/nvidia-uhudshit-proizvoditelnost-svoih-videokart-pri-majninge/">заявила</a> о намерении начать борьбу с майнингом на её видеокартах. Первым шагом в этом направлении стало ограничение производительности RTX 3060 при добыче криптовалюты. Но, как оказалось, «рукастые энтузиасты» из Китая без особых проблем обошли запреты NVIDIA.</p><figure><img src="https://media.tproger.ru/uploads/2021/03/1-24.jpg" alt="" /><figcaption>Фотография, доказывающая, что в целом майнеры не парятся об ограничениях NVIDIA</figcaption></figure><p>В сети появилось фото, на котором новейшая видеокарта компании демонстрирует эффективность в районе 45 Мх/сек при майнинге. Для сравнения, алгоритмы NVIDIA ранее опускали это значение до 20-25 Мх/сек в случае обнаружения фарминга электронной валюты.</p><p>Правда, Wccftech <a href="https://wccftech.com/chinese-cryptocurrency-miners-allegedly-bypass-nvidias-geforce-rtx-3060-hash-rate-limiter-delivers-up-to-50-mh-s-in-ethereum/">пишет</a>, что на RTX 3060 майнят не Ethereum (против которого и настроены алгоритмы «зелёных»), а Octopus. С другой стороны, так ли это важно? В любом случае, грядущий ажиотаж вокруг видеоадаптера приведёт к его длительному дефициту.</p><p>Источник: <a href="https://wccftech.com/chinese-cryptocurrency-miners-allegedly-bypass-nvidias-geforce-rtx-3060-hash-rate-limiter-delivers-up-to-50-mh-s-in-ethereum/">Wccftech</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Google опубликовала массив данных блокчейна Ethereum для использования в BigQuery</title>
      <link>https://tproger.ru/news/ethereum-data-in-bigquery</link>
      <comments>https://tproger.ru/news/ethereum-data-in-bigquery?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Артем Гаврилов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/ethereum-data-in-bigquery</guid>
      <description><![CDATA[<p>Датасет блокчейна Ethereum для анализа смарт-контрактов обновляется ежедневно и собран проектом Ethereum ETL, ранее компания выложила данные Bitcoin.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/ethereum-data-in-bigquery">Google опубликовала массив данных блокчейна Ethereum для использования в BigQuery</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 04 Sep 2018 11:04:49 GMT</pubDate>
      <content:encoded><![CDATA[<p>Google <a href="https://cloud.google.com/blog/products/data-analytics/ethereum-bigquery-public-dataset-smart-contract-analytics">представила</a> в своем блоге <a href="https://bigquery.cloud.google.com/dataset/bigquery-public-data:ethereum_blockchain">набор данных</a> блокчейна Ethereum для анализа смарт-контрактов. Датасет обновляется ежедневно и доступен всем желающим для использования в BigQuery. Ранее в 2018 году компания опубликовала <a href="https://bigquery.cloud.google.com/dataset/bigquery-public-data:bitcoin_blockchain">набор данных Bitcoin</a>.</p><h3>Цель сбора данных</h3><p>API блокчейна Ethereum содержит набор часто используемых функций: проверку баланса кошелька, статус транзакции и других. Однако отсутствовали конечные точки интерфейса, которые бы учитывали все данные, содержащиеся в блокчейне. Для их сбора BigQuery использует проект <a href="https://github.com/medvedev1088/ethereum-etl">Ethereum ETL</a> и по задумке компании станет платформой как для анализа криптовалют, так и для других операций. В пример приведена возможность выводить количество транзакций и их стоимость за день:</p><figure><img src="https://media.tproger.ru/uploads/2018/09/image3_5ZwALAb.max-1700x17001.jpg" alt="" /></figure><p>Специалисты из Google утверждают, что это поможет в принятии бизнес-решений, например, улучшить архитектуру Ethereum и корректировать балансовые отчёты. По их словам, BigQuery использует технологию <a href="https://ru.wikipedia.org/wiki/OLAP">OLAP</a>, подходящую для общих и частных случаев анализа, без использования стороннего API. Созданное на платформе Google Cloud ПО умеет:</p><ul><li>синхронизировать блокчейн Ethereum c компьютерами, на которых запущен <a href="https://github.com/paritytech/parity-ethereum">Parity</a>;</li><li>предоставлять ежедневную выборку данных из блокчейна, включая результаты транзакций смарт-контрактов, например, перевода токенов;</li><li>денормализовать и сохранять данные в BigQuery для дальнейшего использования.</li></ul><h3>Пример использования</h3><p>Собранная информация <a href="https://www.kaggle.com/bigquery/ethereum-blockchain">доступна</a> на Kaggle. В качестве одного из примеров специалисты использовали информацию об OmiseGO Token Airdrop. В середине сентября 2017 года количество адресатов существенно возросло, в то время, как количество отправителей осталось прежним.</p><p>На графике ниже отображены первые 50 тыс. транзакций с участием минимум двух партнёров. Точками показаны адреса, линиями — передача токенов между ними. Чем больше токенов передавалось между адресами, тем ближе точки находятся друг к другу. Группы часто обменивающихся адресов выделили цветами для большей наглядности. График построили, используя <a href="https://gephi.org/">Gephi</a>, а расчёт групп произвели с помощью алгоритма Modularity.</p><figure><img src="https://media.tproger.ru/uploads/2018/09/image1_aYEKmKd.max-1300x13001.jpg" alt="" /></figure><p>Google <a href="https://tproger.ru/news/bigquery-ml/">запустила</a> бета-тест BigQuery ML в конце июля 2018 года, чтобы предоставить пользователям инструмент для работы с моделями машинного обучения. Создавать и запускать модели стало возможным на структурированных и полуструктурированных наборах данных внутри BigQuery, используя стандартные SQL-запросы.</p>]]></content:encoded>
    </item>
    <item>
      <title>Облачная платформа Microsoft Azure теперь позволяет создавать блокчейн-приложения</title>
      <link>https://tproger.ru/news/microsoft-azure-ethereum-blockchain</link>
      <comments>https://tproger.ru/news/microsoft-azure-ethereum-blockchain?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Светлана Хачатурян]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/microsoft-azure-ethereum-blockchain</guid>
      <description><![CDATA[<p>Интеграция Azure с Ethereum позволяет создавать блокчейн-приложения и разворачивать бизнес-сценарии в один клик без глубоких знаний о блокчейне.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/microsoft-azure-ethereum-blockchain">Облачная платформа Microsoft Azure теперь позволяет создавать блокчейн-приложения</a>»</p>]]></description>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 28 Mar 2018 11:56:39 GMT</pubDate>
      <content:encoded><![CDATA[<p>Microsoft <a href="https://azure.microsoft.com/ru-ru/blog/improved-multi-member-blockchain-networks-now-available-on-azure/">объявила</a> о начале интеграции Azure с блокчейном Ethereum для совершенствования аспектов безопасности бизнес-процессов в корпоративном секторе. С помощью обновлённой платформы пользователи могут создавать собственные приложения на основе цепочек блоков.</p><h3>Кому доступно?</h3><p>Сервис ориентирован на людей, не обладающих глубокими познаниями в сфере облачных вычислений или блокчейна. Упрощённый интерфейс позволяет разворачивать бизнес-сценарии в один клик и поддерживает одновременную работу нескольких пользователей.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/0F4A5754-9AB4-4596-B15A-F81F1275AAB4.png" alt="" /></figure><p>Система также позволяет кастомизировать процесс отслеживания состояния приложения: участники сети могут настраивать отображение показателей нагрузки на процессор, память и диск узлов для майнинга и транзакций.</p><p>С особенностями подключения и создания собственного блокчейн-приложения можно ознакомиться в <a href="https://gallery.technet.microsoft.com/Ethereum-Consortium-b0e1bc65">проектной документации</a>.</p><p>Разобраться с дремучей технологией цепочек блоков поможет наш небольшой <a href="https://tproger.ru/translations/blockchain-explained/">гайд</a> с примером реализации на JavaScript.</p>]]></content:encoded>
    </item>
    <item>
      <title>iOS-версия CryptoKitties вышла в Китае, Гонконге и Тайване</title>
      <link>https://tproger.ru/news/cryptokitties-released-in-china</link>
      <comments>https://tproger.ru/news/cryptokitties-released-in-china?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рамис Ганиев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cryptokitties-released-in-china</guid>
      <description><![CDATA[<p>Мобильная CryptoKitties появилась в китайском App Store для первых 5 000 игроков. К запуску добавили Golden Dragon Cat и коллекцию Artist Series.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cryptokitties-released-in-china">iOS-версия CryptoKitties вышла в Китае, Гонконге и Тайване</a>»</p>]]></description>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Криптовалюты]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 09 Mar 2018 13:57:24 GMT</pubDate>
      <content:encoded><![CDATA[<p>Команда разработчиков Axiom Zen <a href="https://medium.com/cryptokitties/big-news-on-cryptokitties-ios-app-launch-in-china-hong-kong-and-taiwan-bf767719fe22">запустила</a> мобильную версию Ethereum-игры CryptoKitties. Первыми пользователями iOS-приложения стали жители Китая, Гонконга и Тайваня, а в других странах оно выйдет после тестирования. Изначально запуск <a href="https://tproger.ru/news/cryptokitties-to-mobile/">был запланирован</a> на 16 февраля, но релиз <a href="https://medium.com/cryptokitties/when-is-cryptokitties-coming-to-greater-china-bc9deaf4aece">перенесли</a> из-за долгой проверки в App Store. Сейчас приложение уже доступно в китайском App Store и не требует установки сторонних инструментов для обмена криптовалютой. Напомним, что для игры в браузере <a href="https://tproger.ru/news/cryptokitties-rule-the-world/">требовалось</a> установить расширение MetaMask.</p><h3>Особенности китайской версии CryptoKitties</h3><p>Для избежания перегрузки сети Ethereum число первых игроков ограничено 5 000 пользователями. Чтобы войти в их число, нужно перейти на официальную страницу игры в мессенджере WeChat и ввести адрес электронной почты.</p><p>В честь запуска мобильной версии на аукционе «котиков» появилась «Золотая Кошка-дракон» (Golden Dragon Cat) со стартовой стоимостью 888 эфиров (около 500 000 $):</p><figure><img src="https://media.tproger.ru/uploads/2018/03/cryptokitties-app-mini.jpg" alt="" /></figure><p>Также в игре появилась новая коллекция котиков «Artist Series». В нее будут добавляться питомцы, нарисованные известными художниками и дизайнерами. Первой знаменитостью, которая нарисует котиков для новой коллекции, станет художница Момо Ванг (Momo Wang). Она известна как автор персонажа Тузки (Tuzki) — популярного в Китае зайца, активно использующегося в рекламе и в качестве стикеров в мессенджерах. В 2007 году Момо Ванг заняла 46 место в списке самых влиятельных людей Китая.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/momo-yang-tuzki-1.jpg" alt="" /></figure><p>Эксперты предполагают, что «котики» от художников станут популярными и увеличат число транзакций в блокчейне Ethereum. Напомним, в начале декабря 2017 года CryptoKitties <a href="https://tproger.ru/news/cryptokitties-destroy-ethereum/">нарушила</a> стабильность сети Ethereum, увеличив количество ожидающих транзакций в 10 раз.</p><p><a href="https://tproger.ru/news/cryptokitties-rule-the-world/">CryptoKitties</a> — браузерная, а теперь уже и мобильная игра, на основе блокчейна Ethereum. Игрокам предлагается коллекционировать, продавать и скрещивать виртуальных кошек.</p>]]></content:encoded>
    </item>
    <item>
      <title>В P2P-сети Ethereum «залатали» два варианта уязвимости Eclipse</title>
      <link>https://tproger.ru/news/eclipse-ethereum-vulnerability-fixed</link>
      <comments>https://tproger.ru/news/eclipse-ethereum-vulnerability-fixed?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Светлана Хачатурян]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/eclipse-ethereum-vulnerability-fixed</guid>
      <description><![CDATA[<p>Атаки Eclipse могли перенаправить пользователей Ethereum на скомпрометированную копию сети. Исследователи смягчили два метода, но для третьего решения пока нет.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/eclipse-ethereum-vulnerability-fixed">В P2P-сети Ethereum «залатали» два варианта уязвимости Eclipse</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 04 Mar 2018 20:28:21 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработчики второй в мире по капитализации криптосети Ethereum <a href="https://arstechnica.com/information-technology/2018/03/ethereum-fixes-serious-eclipse-flaw-that-could-be-exploited-by-any-kid/">закрыли</a> серьёзную брешь в безопасности, позволявшую любому подключённому к Интернету человеку произвольно манипулировать чужим доступом к публичному регистрационному журналу.</p><h3>Вычислительное «затмение»</h3><p>Так называемые атаки типа Eclipse предотвращают подключение пользователя к легальным узлам сети peer-to-peer, перенаправляя их в скомпрометированную версию блокчейна. В рамках этой платформы злоумышленники могут запускать на целевых машинах мошеннические алгоритмы. Например, дважды проводить одни и те же денежные транзакции или подключать вычислительную мощность чужого устройства к своей зловредной кампании.</p><p>Этот вопрос был проработан несколькими независимыми группами исследователей. Экспертам удалось реализовать три варианта Eclipse-атак.</p><p>Первый эксплуатирует «лазейку» Ethereum, назначающую пир по криптографическому ключу. Он основан на генерации большого числа таких ключей двумя сетевыми узлами с разными IP-адресами. Если злоумышленнику удаётся спровоцировать отказ в обслуживании в атакуемом устройстве, он может оперативно переподключить перезагрузившийся компьютер к собственной копии сети. Для этого необходимо забросать узел «жертвы» входящими пирами до того, как он успеет установить исходящее соединение.</p><p>Второй вариант Eclipse по принципу схож с первым, но в нём участвует большее число атакующих узлов. Отправляя «жертве» множество пакетов и тем самым засоряя целевую базу данных, мошенник может успеть подсоединить временно изолированный узел к зловредной сети.</p><p>Третий способ заключается в перестановке времени на атакуемом узле на 20 или более секунд вперёд относительно других узлов в этой же сети P2P. Для защиты от повторной отправки старых аутентификационных данных протокол Ethereum автоматически блокирует сообщения, отстающие от текущего времени больше чем на 20 секунд. Таким образом, переведя подчинённые узлы на одно время с «жертвой», злоумышленник отрезает целевое устройство от других легитимных узлов и заставляет его принимать сообщения только от собственных.</p><h3>Есть решение?</h3><p>Все три варианта атак Eclipse были обнаружены около трёх лет назад, однако обезопасить от них сеть разработчикам удалось только сейчас. При этом «заплатки» пока изобретены только для первых двух методов.</p><p>От первого варианта атаки удалось защититься введением обязательного создания исходящих соединений к другим пирам. Реализацию второго типа атаки удалось усложнить заданием строгого ограничения на число исходящих соединений в рамках одной подсети до 10. Также в сеть внедрена система отслеживания нелегитимных версий блокчейна, автоматически высылающая предупреждения об ошибках.</p><p>Правда, эти способы защиты работают только для классических вычислительных машин. По <a href="https://tproger.ru/news/quantum-computers-vs-bitcoin/">оценкам</a> исследователей, мощности нескольких квантовых компьютеров среднего звена хватит, чтобы снести всю сеть Bitcoin (и любой другой криптовалюты).</p>]]></content:encoded>
    </item>
    <item>
      <title>Исследователи нашли уязвимости в смарт-контрактах Ethereum</title>
      <link>https://tproger.ru/news/smart-contracts-ethereum-can-be-hacked</link>
      <comments>https://tproger.ru/news/smart-contracts-ethereum-can-be-hacked?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рамис Ганиев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/smart-contracts-ethereum-can-be-hacked</guid>
      <description><![CDATA[<p>Копия блокчейна Ethereum выявила уязвимости в 34 200 смарт-контрактах: из 3000 проверенных взломали 89 %. В настоящей сети ущерб достиг бы 6 млн долларов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/smart-contracts-ethereum-can-be-hacked">Исследователи нашли уязвимости в смарт-контрактах Ethereum</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Криптовалюты]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 24 Feb 2018 17:50:58 GMT</pubDate>
      <content:encoded><![CDATA[<p>Исследователи из Лондона и Сингапура <a href="https://motherboard.vice.com/en_us/article/8xddka/millions-of-dollars-in-ethereum-are-vulnerable-to-hackers-right-now-smart-contract-bugs">выяснили</a>, что около 34 200 смарт-контрактов Ethereum уязвимо для хакеров. Поиск незащищенных контрактов проводился на копии блокчейна, поэтому активы пользователей остались на месте.</p><h3>Ход исследования</h3><p>Чтобы обнаружить уязвимости, исследователи скачали копию блокчейна Ethereum и выполняли разнообразные действия с находящимися в ней смарт-контрактами. Это было похоже на взлом торгового автомата со сладостями: они кинули в приемник несколько монет и нажимали на случайные кнопки, ожидая «конфетки».</p><p>Из миллиона смарт-контрактов уязвимыми оказались 34 200. Из этого числа исследователи взяли 3000 и успешно взломали 89 %. Если бы это был настоящий блокчейн, а не копия, они смогли бы украсть 6 млн долларов.</p><h3>Относительная безопасность</h3><p>Исследователи не раскрыли список уязвимых смарт-контрактов, поэтому содержащиеся в них активы находятся в условной безопасности. Сотрудник Университетского колледжа Лондона Илья Сергей (Ilya Sergey) объявил, что если кто-то захочет найти уязвимые контракты, им придется выполнить тот же объем работы.</p><p><a href="https://ru.wikipedia.org/wiki/%D0%A1%D0%BC%D0%B0%D1%80%D1%82-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%B0%D0%BA%D1%82">Смарт-контракты</a> — это самоисполняемые программы блокчейна Ethereum. С их помощью можно передавать деньги, а также устраивать аукционы и финансовые пирамиды.</p><p>В ноябре 2017 года пользователь DevOps199 <a href="https://tproger.ru/news/ethereum-bug-in-parity-wallet/">нашел</a> уязвимость в кошельке Parity, через которую заморозил Ethereum-активы на 285 млн долларов.</p>]]></content:encoded>
    </item>
    <item>
      <title>CryptoKitties расширяются на мобильные платформы</title>
      <link>https://tproger.ru/news/cryptokitties-to-mobile</link>
      <comments>https://tproger.ru/news/cryptokitties-to-mobile?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Светлана Хачатурян]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cryptokitties-to-mobile</guid>
      <description><![CDATA[<p>Мобильная версия CryptoKitties сначала появится в Китае и Сингапуре 16 февраля, добавив котов Gen 0 и питомцев в уникальных костюмах.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cryptokitties-to-mobile">CryptoKitties расширяются на мобильные платформы</a>»</p>]]></description>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Криптовалюты]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 06 Feb 2018 08:57:36 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработчики нашумевшего смарт-контракта <a href="https://tproger.ru/news/cryptokitties-rule-the-world/">CryptoKitties</a> <a href="https://www.reddit.com/r/CryptoKitties/comments/7veyet/cryptokitties_is_coming_to_your_phonewith_new/">анонсировали</a> выход мобильной версии игры. Жители Китая и Сингапура смогут опробовать новинку 16 февраля (в Лунный Новый год). Дата мирового запуска не разглашается.</p><h3>Изменения</h3><figure><img src="https://media.tproger.ru/uploads/2018/02/D689B44B-C430-41E4-AB7F-B1BAA903B9F7.jpeg" alt="" /></figure><p>В мобильной версии обещаны разные «плюшки»: например, новые коты «Gen 0», которые добавляются в игру каждые 15 минут, а ещё «модные котики» в уникальных костюмах.</p>]]></content:encoded>
    </item>
    <item>
      <title>В сети Ethereum создан смарт-контракт CryptoCelebrities для обмена карточками знаменитостей</title>
      <link>https://tproger.ru/news/cryptocelebrities-new-ethereum-smart-contract</link>
      <comments>https://tproger.ru/news/cryptocelebrities-new-ethereum-smart-contract?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Светлана Хачатурян]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cryptocelebrities-new-ethereum-smart-contract</guid>
      <description><![CDATA[<p>В CryptoCelebrities карточки знаменитостей представлены токенами смарт-контракта Ethereum: после покупки цена карточки сразу увеличивается вдвое.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cryptocelebrities-new-ethereum-smart-contract">В сети Ethereum создан смарт-контракт CryptoCelebrities для обмена карточками знаменитостей</a>»</p>]]></description>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 31 Jan 2018 15:21:14 GMT</pubDate>
      <content:encoded><![CDATA[<p>31 января состоялось открытие новой блокчейн-платформы <a href="https://cryptocelebrities.co">CryptoCelebrities</a>, позволяющей обмениваться карточками с фотографиями известных личностей.</p><h3>Особенности</h3><p>Новый проект, созданный на основе блокчейна Ethereum, позиционирует свои монеты — CryptoCelebrity — как коллекционные объекты, существующие в единственном экземпляре и подлежащие специальной процедуре верификации. В один клик можно стать «владельцем» любой популярной персоны.</p><figure><img src="https://media.tproger.ru/uploads/2018/01/Snimok-jekrana-2018-01-26-v-16.50.57.jpg" alt="" /></figure><p>Каждая «звёздная» карточка представляет собой отдельный токен смарт-контракта. Они продаются за Ethereum по системе повышающих коэффициентов: как только кто-то приобретает CryptoCelebrity, её цена моментально увеличивается вдвое. Так продолжается до тех пор, пока стоимость карточки не превысит 0,05 ETH. Далее цены растут в следующем порядке:</p><ul><li>x1,2 от 0,05 ETH до 0,5 ETH;</li><li>х1,15 от 0,5 ETH.</li></ul><p>Торговаться не получится: строгий алгоритм ценообразования позволяет приобретать токены только по фиксированной цене. При этом коллекционеры вообще не могут договариваться: карточку получает тот, кто заплатил выставленную цену. После подтверждения покупки CryptoCelebrity переходит к новому владельцу, а предыдущему на кошелек переводится её увеличенная стоимость за вычетом комиссии сервиса и 3 % выплаты самой звезде, чей облик запечатлён на коллекционном токене.</p><p>Это не первый развлекательный смарт-контракт, выстроенный на платформе Ethereum. Напомним, что в начале декабря <a href="https://tproger.ru/news/cryptokitties-rule-the-world/">была запущена</a> игра CryptoKitties, которая приобрела такую популярность, что на некоторое время <a href="https://tproger.ru/news/ethereum-users-ask-to-pause-cryptokitties/">затормозила</a> <a href="https://tproger.ru/news/cryptokitties-destroy-ethereum/">работу</a> всей сети «эфира».</p>]]></content:encoded>
    </item>
    <item>
      <title>Держатели криптовалюты Ethereum просят разработчиков CryptoKitties приостановить работу игры</title>
      <link>https://tproger.ru/news/ethereum-users-ask-to-pause-cryptokitties</link>
      <comments>https://tproger.ru/news/ethereum-users-ask-to-pause-cryptokitties?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Светлана Хачатурян]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/ethereum-users-ask-to-pause-cryptokitties</guid>
      <description><![CDATA[<p>В соцсетях появилась просьба приостановить работу новой вирусной игры CryptoKitties. «Милые котики» стали настоящей угрозой для криптовалюты Ethereum.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/ethereum-users-ask-to-pause-cryptokitties">Держатели криптовалюты Ethereum просят разработчиков CryptoKitties приостановить работу игры</a>»</p>]]></description>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Криптовалюты]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 07 Dec 2017 16:39:18 GMT</pubDate>
      <content:encoded><![CDATA[<p>Нашумевшая <a href="https://tproger.ru/news/cryptokitties-rule-the-world/">игра CryptoKitties</a> стала причиной <a href="https://tproger.ru/news/cryptokitties-destroy-ethereum/">сбоя</a> в функционировании сети криптовалюты Ethereum. Растущее число желающих стать участником нового вирусного смарт-контракта провоцирует длительные задержки в сделках.</p><h3>Крик о помощи</h3><p>Пользователи популярной криптовалюты <a href="https://np.reddit.com/r/CryptoKitties/comments/7hxgqn/call_to_the_devs_can_you_pause_your_website/">обращаются</a> к разработчикам игры с просьбой приостановить работу сайта с криптокотиками, чтобы сеть успела нагнать большой разрыв между сделками и транзакциями. Как сообщили держатели Ethereum, эта сеть не может обрабатывать более 8TX/s и не успевает подстраиваться под быстрорастущий объем сделок. Все операции с Эфириумом проходят крайне медленно, и обмен «милыми зверушками» также сильно тормозит.</p><figure><img src="https://media.tproger.ru/uploads/2017/12/ether-pending-chart.jpg" alt="" /></figure><p>Следует отметить, что многие держатели валюты Ethereum крайне негативно отзываются о новой вирусной игре. Они считают, что этот смарт-контракт был создан специально для обрушения «газа», и требуют разработчиков «стерилизовать котов и остановить эту болезнь, пока она не заразила всю сеть».</p>]]></content:encoded>
    </item>
    <item>
      <title>Игра CryptoKitties нарушила стабильность работы сети Ethereum</title>
      <link>https://tproger.ru/news/cryptokitties-destroy-ethereum</link>
      <comments>https://tproger.ru/news/cryptokitties-destroy-ethereum?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вячеслав Шарунов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cryptokitties-destroy-ethereum</guid>
      <description><![CDATA[<p>CryptoKitties заняла 25% ресурсов Ethereum и увеличила очередь транзакций в 20 раз; разработчики предложили поднять цену газа до 25 гвей.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cryptokitties-destroy-ethereum">Игра CryptoKitties нарушила стабильность работы сети Ethereum</a>»</p>]]></description>
      <category><![CDATA[Криптография]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 05 Dec 2017 19:41:30 GMT</pubDate>
      <content:encoded><![CDATA[<p>Совсем недавно запущенная <a href="https://tproger.ru/news/cryptokitties-rule-the-world/">игра CryptoKitties</a> снискала широкую популярность в мире. По данным компании-разработчика, 4 декабря число зарегистрированных пользователей составляло уже 27 тысяч человек. В течение последних выходных было зафиксировано, что 25% всех доступных ресурсов сети Ethereum используется именно криптокотиками и их хозяевами. Это сделало CryptoKitties самым объёмным по числу транзакций смарт-контрактом в мире. На момент написания статьи котята занимают вторую позицию рейтинга.</p><p><a href="https://medium.com/@CryptoKitties/cryptokitties-birthing-fees-increases-in-order-to-accommodate-demand-acc314fcadf5">По заявлениям</a> разработчиков, они не ожидали такого стремительного роста популярности их приложения. К сожалению, у этой медали есть и обратная сторона. Работа сети Ethereum почти встала. Всё благодаря увеличившемуся числу ожидающих транзакций — с начала декабря оно <a href="https://etherscan.io/chart/pendingtx">возросло</a> в 20 раз. Единственным решением сложившейся проблемы является увеличение цены газа, необходимого для проведения транзакций. Таким образом разработчики хотят добиться замедления процесса разведения котов.</p><h3>Предложения по решению проблемы</h3><p>Первым делом разработчики предложили установить цену газа для проведения транзакций на отметке в 25 гвей. Но возможность переопределения цены осталась. Разработчики настоятельно не рекомендуют этого делать, иначе все попытки вернуть сеть в стабильное состояние будут напрасны, поскольку даже одна сделка с низкой ценой может привести в действие эффект домино.</p><p>Во-вторых, плата за появление нового котёнка на свет, которую необходимо отдать после вязки двух кошек, теперь составляет 0,015 ETH вместо 0,002 ETH. Отметим, что подобный налог на рождаемость повышается уже второй раз. Изначально он составлял 0,001 ETH.</p><p>В своём официальном пресс-релизе представители студии AxiomZen подробно <a href="https://medium.com/@CryptoKitties/cryptokitties-birthing-fees-increases-in-order-to-accommodate-demand-acc314fcadf5">объяснили</a> повышение платы за рождение нового котёнка, а также выразили свои соболезнования по поводу необходимого увеличения платы на газ:</p><blockquote>Мы знаем, что подобное повышение цен замедлит процесс разведения котиков, тем самым ухудшив ваше ощущение от игры. И мы невероятно разочарованы этим. Мы всё прекрасно понимаем и хотели бы найти другое решение сложившейся проблемы, но не в силах этого сделать.</blockquote>]]></content:encoded>
    </item>
    <item>
      <title>На виртуальных блокчейн-котиков потратили больше 2,5 млн $</title>
      <link>https://tproger.ru/news/cryptokitties-rule-the-world</link>
      <comments>https://tproger.ru/news/cryptokitties-rule-the-world?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Иван Бирюков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cryptokitties-rule-the-world</guid>
      <description><![CDATA[<p>Подробно разбираем, как устроена игра CryptoKitties, в которой пользователи могут разводить криптокотят и торговать ими за Ethereum.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cryptokitties-rule-the-world">На виртуальных блокчейн-котиков потратили больше 2,5 млн $</a>»</p>]]></description>
      <category><![CDATA[Криптография]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 04 Dec 2017 09:12:58 GMT</pubDate>
      <content:encoded><![CDATA[<p>Запущенный несколько дней назад студией AxiomZen проект <a href="https://www.cryptokitties.co/">Cryptokitties</a> напоминает цифровую версию карточек Pokemon, основанную на блокчейне Ethereum. И его популярность растёт бешеными темпами.</p><p>Люди тратят безумные суммы реальных денег на игру. На момент публикации материала объём транзакций превысил 2,5 миллиона долларов, при этом самый первый котик (с ID, равным 1) был продан за рекордные 247 монет эфира (около 118 тысяч долларов, или почти 7 миллионов рублей). При этом самого дешёвого котёнка можно купить за 30 рублей, что наглядно показывает разброс цен.</p><h3>Как устроена игра?</h3><p>Но если отбросить абсурдность затеи в экономическом смысле, CryptoKitties — это действительно хороший способ познакомиться с Ethereum-блокчейном. Игра работает на пяти смарт-контрактах Ethereum, а пользователи взаимодействуют с ней через свой Ethereum-адрес. Сейчас проще всего делать это через Chrome-расширение <a href="https://metamask.io/">MetaMask</a>, позволяющее обмениваться эфириумом прямо в браузере. Затем нужно перейти на сайт <a href="https://www.cryptokitties.co/">CryptoKitties</a>, который по сути является интерфейсом для взаимодействия со смарт-контрактами для продажи и разведения котят.</p><figure><img src="https://media.tproger.ru/uploads/2017/12/Bezymjannyj.png" alt="" /></figure><p>Сейчас игра является самым популярным смарт-контрактом в сети, генерируя от 10 до 15 процентов транзакций. Для сравнения, чуть меньше 9 процентов приходится на EtherDelta, популярную децентрализованную биржу криптовалют.</p><p>Такой объём трафика существенно замедляет проведение транзакций купли/продажи в игре, да и сам прецедент является своеобразным вызовом для всей сети Ethereum. Компания даже повысила «налог на рождаемость» котиков, чтобы удержать трафик блокчейна в рамках.</p><p>Но вернёмся к игре.</p><h3>Как играть в CryptoKitties?</h3><p>Игра началась со ста «котят-основателей» (Founder Kitties). До декабря каждые 15 минут появлялся 1 котёнок нулевого поколения (Gen 0), который продавался по цене, равной умноженному на 1,5 среднему арифметическому последних пяти проданных котят — но в течение 24 часов цена падала, пока кто-нибудь не купил бы его. Сейчас же новых котят можно получить только размножением.</p><p>Каждый может продать своего котёнка на аукционе, указав стартовую и конечную цены. Например, если выставить котёнка на 24-часовой аукцион со стартовой ценой 1 ETH и конечной 0 ETH и кто-то купит его через 12 часов после начала, то он заплатит 0,5 ETH.</p><figure><img src="https://media.tproger.ru/uploads/2017/12/screen-shot-2017-12-03-at-5-19-45-pm.png" alt="" /></figure><p>Котят также можно разводить. В игре этот процесс называется Siring (осеменение). Владелец «кота» предлагает свои услуги «осеменителя» хозяину «кошки» за эфир. Таким образом, у одного игрока появляется заработанный эфириум, а у другого — новый котёнок.</p><p>У каждого котика есть кулдаун на повторное размножение, длящийся от часа до недели. Разумеется, что чем меньше этот промежуток, тем ценнее котёнок на рынке.</p><p>Каждый котёнок обладает 256-битным геномом, в котором хранится генетическая последовательность его характеристик: цвет фона, длительность кулдауна, усы, полосы и т.д. Некоторые из генов могут быть рецессивными: например, у котёнка без полос может родиться полосатый.</p><p>Важно отметить, что в игре нет «шкалы редкости» характеристик. Она независимо определяется сообществом, которое «голосует эфиром». Например, котята с золотым фоном продаются дороже других.</p><p>Изменять в котятах пользователи могут только имя, в котором они зачастую рекламируют ценные характеристики:</p><figure><img src="https://media.tproger.ru/uploads/2017/12/screen-shot-2017-12-03-at-6-14-48-pm.png" alt="" /></figure><p>Прямо сейчас на сайте игры нельзя увидеть геном каждого котёнка, но поскольку исходные коды игры открыты, кто-нибудь наверняка найдёт способ настроить систему рекомендаций при «вязке». Тем не менее, в процессе есть некоторая доля случайности, которая позволяет получить более ценного котёнка.</p><p>Котята ранних поколений обычно стоят дороже, как в силу «редкости», так и потому, что у них обычно короче промежутки между вязками.</p><p>Разработчики зарабатывают, получая 3,75 % от всех транзакций купли/продажи и вязки. Отметим, что если продать котёнка напрямую через смарт-контракт, а не через сайт, то комиссия не спишется.</p><h3>Каковы планы разработчиков?</h3><p>В отличие от многих проектов, создатели CryptoKitties планировали развивать его вне зависимости от популярности. Мак Флавелль, руководитель проекта, рассказал TechCrunch, что команда распланировала улучшения игры на год вперёд. Основными целями являются улучшение интерфейса на всех платформах и упрощение знакомства с игрой.</p><p>Больше информации об игре можно найти в <a href="https://www.cryptokitties.co/faq">объёмном FAQ</a> на её сайте.</p>]]></content:encoded>
    </item>
    <item>
      <title>Виталик Бутерин представил планы развития Ethereum 2.0</title>
      <link>https://tproger.ru/news/ethereum-2-0-roadmap</link>
      <comments>https://tproger.ru/news/ethereum-2-0-roadmap?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Елена Литвинова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/ethereum-2-0-roadmap</guid>
      <description><![CDATA[<p>Виталик Бутерин выделил для Ethereum конфиденциальность, безопасность консенсуса, надёжность смарт-контрактов и масштабируемость, включая шардинг.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/ethereum-2-0-roadmap">Виталик Бутерин представил планы развития Ethereum 2.0</a>»</p>]]></description>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 29 Nov 2017 16:43:32 GMT</pubDate>
      <content:encoded><![CDATA[<p>Виталик Бутерин, сооснователь Ethereum, выступил на конференции <a href="https://ethertw.github.io/bbt2017/">Beyond Block</a> в Тайбэе, посвященной проблемам Эфириума, и рассказал о своем видении будущего платформы.</p><p>Были выделены 4 проблемные области, требующие доработки:</p><ul><li>конфиденциальность;</li><li>безопасность консенсуса;</li><li>безопасность смарт-контрактов;</li><li>масштабируемость.</li></ul><p>Команда Ethereum активно работает над каждым из первых трех пунктов. Так, хардфорк Byzantium позволяет решить проблему конфиденциальности при помощи <a href="https://z.cash/ru/blog/zksnarks-in-ethereum.html">zk-SNARK</a>, криптографических инструментов, лежащих в основе Zcash. Протокол Casper разрабатывается для обеспечения безопасности консенсуса. Новый язык программирования Viper и процедура формальной верификации может обеспечить надежность и безопасность смарт-контрактов.</p><p>Однако вопрос масштабируемости стоит весьма остро. Виталик считает достаточно сложным создание системы, совмещающей все три компонента — децентрализацию, масштабируемость и безопасность. Любые две части могут быть совмещены без проблем, полагает он.</p><figure><img src="https://media.tproger.ru/uploads/2017/11/sharding.jpg" alt="" /></figure><p>По словам Бутерина, цель Ethereum — достичь тысячи транзакций в секунду без использования мастер-нод. Это станет возможным с внедрением шардинга, впервые представленного в рамках Ethereum. Идея шардинга заключается в том, чтобы разделить структуру на основную цепочку и подцепочки, в которые можно будет вносить изменения, не затрагивая основной блокчейн.</p><figure><img src="https://media.tproger.ru/uploads/2017/11/1_BZfEBRze_bsf_2V-fe3KOQ.jpg" alt="" /></figure><p>По предварительным оценкам, срок реализации всех этапов <a href="https://coinspot.io/world/vitalik-buterin-predstavil-dorozhnuyu-kartu-razvitiya-efiriuma/">дорожной карты</a> составит от 3 до 5 лет.</p>]]></content:encoded>
    </item>
    <item>
      <title>«Лаборатория Касперского» представила Polys, первую блокчейн-систему для голосований</title>
      <link>https://tproger.ru/news/polys-new-blockchain-voting-system</link>
      <comments>https://tproger.ru/news/polys-new-blockchain-voting-system?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Светлана Хачатурян]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/polys-new-blockchain-voting-system</guid>
      <description><![CDATA[<p>Экспериментальная Polys на смарт-контрактах Ethereum проверяет бюллетени и считает голоса в анонимных онлайн-голосованиях.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/polys-new-blockchain-voting-system">«Лаборатория Касперского» представила Polys, первую блокчейн-систему для голосований</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 17 Nov 2017 10:17:42 GMT</pubDate>
      <content:encoded><![CDATA[<p>Концепция создания платформы для онлайн-голосования — это непосредственная потребность современного разномастного общества, взаимодействующего в обширном виртуальном пространстве. Однако разворачивание «обычного» голосования в Сети — дело рисковое, ведь киберпреступники не дремлют и могут с легкостью фальсифицировать результаты.</p><p>В ответ на это «Лаборатория Касперского» представила свой экспериментальный проект Polys — новое коммерческое решение, способное обеспечить пользователей возможностью проводить безопасные, анонимные и масштабируемые онлайн-голосования, результаты которых никем не могут быть изменены.</p><h3>Новые возможности</h3><p>Polys, основанный на смарт-контрактах технологии <a href="https://tproger.ru/translations/ethereum-from-scratch/">Ethereum</a> (иногда ее еще называют Blockchain 2.0), оснащен децентрализованной системой проверки бюллетеней и подсчета голосов. По словам представителей «Лаборатории Касперского», преимущества безопасности блокчейн открывают новые горизонты в реализации платформы для онлайн-голосования. Новая система гарантирует:</p><ul><li>анонимность,</li><li>минимизацию риска взлома и фальсификации голосов,</li><li>возможность проверки корректности внесения данных,</li><li>защиту от досрочного раскрытия результатов голосования.</li></ul><p>Разработчики уверены, что успешный запуск подобного проекта поможет проводить честные и равные голосования, а также поднимет уровень доверия к децентрализованным системам на основе блокчейн.</p><p>В настоящее время код экспериментальной системы находится в открытом доступе на GitHub. Также можно бесплатно попробовать провести голосование в новом формате на функционирующей <a href="https://polys.me/">тестовой версии</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Уязвимость в Ethereum-кошельке Parity заморозила активы на 285 миллионов долларов</title>
      <link>https://tproger.ru/news/ethereum-bug-in-parity-wallet</link>
      <comments>https://tproger.ru/news/ethereum-bug-in-parity-wallet?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вячеслав Шарунов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/ethereum-bug-in-parity-wallet</guid>
      <description><![CDATA[<p>Ошибка в библиотеке мультиподписного кошелька Parity сделала контракты пользователей непригодными и заблокировала активы на 285 миллионов долларов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/ethereum-bug-in-parity-wallet">Уязвимость в Ethereum-кошельке Parity заморозила активы на 285 миллионов долларов</a>»</p>]]></description>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 08 Nov 2017 13:49:25 GMT</pubDate>
      <content:encoded><![CDATA[<p>Parity Technologies, компания-разработчик популярного электронного кошелька Parity, <a href="https://paritytech.io/blog/security-alert.html">сообщила</a> о найденной проблеме, заморозившей Ethereum-кошельки пользователей.</p><h3>Группа риска</h3><p>Данная уязвимость затрагивает только созданные после 20 июля 2017 года кошельки с мультиподписями, в которых для осуществления перевода необходимо предоставить подписи нескольких человек. Другими словами, большинство проведённых с того времени ICO (initial coin offerings, первичное размещение криптовалюты) попадают в группу риска.</p><h3>Баг в исправлении другого бага</h3><p>В заявлении компании отмечается, что баг находился в предыдущем патче от 20 июля, который, в свою очередь, исправлял ошибку в системе безопасности. С её помощью злоумышленникам удалось украсть со счетов многих пользователей порядка 30 миллионов долларов. Также представители Parity Technologies добавили:</p><blockquote>Обновление кошелька от 20 июля содержало баг, позволявший превращать библиотеку смарт-контракта кошелька Parity в кошелёк с мультиподписями и становиться его владельцем, вызывая функцию initWallet. Оказалось, что некий пользователь воспользовался этим багом, превратив библиотеку контрактов в кошелёк, при этом сделав контракты с мультиподписями непригодными, поскольку вся их логика содержалась в коде библиотеки.</blockquote><p>Проблема, по всей видимости, связана с тем, что кошелёк Parity подчиняется принципам работы смарт-контрактов.</p><h3>Ущерб на миллионы долларов</h3><p>Поскольку кошельки с мультиподписями популярны в крупных компаниях, в которых ответственность за бухгалтерию несут несколько людей, можно сделать вывод, что найденный баг существенным образом нарушил работу именно такого вида коммерческих кошельков.</p><p><a href="https://pastebin.com/auYnE9vL">Список кошельков</a> содержит более 70 счетов, на которых содержится порядка 900 тысяч монет Ethereum. В денежном эквиваленте эта сумма равна 285 миллионам долларов. Точное количество замороженных кошельков и фактический ущерб могут быть на порядок выше. Представители Polkadot уже подтвердили заморозку одного из своих кошельков с суммой в 90 миллионов долларов.</p><h3>Решение проблемы</h3><p>Остаётся неясным, как именно Parity Technologies будут размораживать счета пользователей. Одним из предлагаемых решением является hard-fork, при котором разработчики в одностороннем порядке создают новую версию сети, часть правил которой отличается от оригинальной. Однако, данный способ до сих пор не получил поддержки у большинства пользователей.</p><p>Цена Ethereum после новости об обнаружении уязвимости упала с 305 $ до 291 $, тем самым достигнув минимума за две недели торгов.</p><figure><img src="https://media.tproger.ru/uploads/2017/11/ethereum.jpg" alt="" /></figure>]]></content:encoded>
    </item>
    <item>
      <title>Власти Китая запретили ICO</title>
      <link>https://tproger.ru/news/china-banned-ico</link>
      <comments>https://tproger.ru/news/china-banned-ico?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вячеслав Шарунов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/china-banned-ico</guid>
      <description><![CDATA[<p>Народный банк Китая признал ICO незаконными, заморозил новые проекты и обязал получивших прибыль от размещения вернуть средства.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/china-banned-ico">Власти Китая запретили ICO</a>»</p>]]></description>
      <category><![CDATA[Bitcoin]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 04 Sep 2017 12:55:53 GMT</pubDate>
      <content:encoded><![CDATA[<p>Народный банк Китая признал привлечение средств за счёт первичных размещений криптовалюты (ICO — initial coin offerings) незаконным. Данное заявление запрещает все дальнейшие операции с криптовалютами в стране как для частных лиц, так и для финансовых организаций.</p><p>Как заявили представители регулятора, все новые проекты на базе ICO будут заморожены, а на существующих платформах пройдут финансовые проверки. Все лица, которые получили прибыль на размещении ICO, обязуются вернуть всю прибыль. Две крупнейшие в Китае криптовалютные площадки ICOage и ICO.info, согласно официальным представителям, добровольно приостановили работу.</p><p><a href="http://www.mas.gov.sg/News-and-Publications/Media-Releases/2017/MAS-clarifies-regulatory-position-on-the-offer-of-digital-tokens-in-Singapore.aspx">По оценкам</a> многих аналитиков, ICO уязвимы для рисков отмывания денег и могут быть источником финансирования международного терроризма из-за анонимного характера транзакций и лёгкости, с которой крупные суммы денег могут быть получены в короткий промежуток времени.</p><p>Общая сумма, полученная от продажи токенов, превзошла инвестиционные расходы из традиционных венчурных капиталов в первой половине 2017 года и составила по некоторым данным порядка $1,6 миллиарда. Китай же являлся самым активным игроком рынка ICO, участники которого за первые шесть месяцев года смогли привлечь почти $400 миллионов.</p><p>Рынок уже отреагировал падением курса основных криптовалют. За последние 24 часа курса эфира <a href="https://coinmarketcap.com/">упал</a> на 10%, биткойна — на 4%. Однако подобный обвал уже случался в 2013 году, когда Китай запретил покупку криптовалюты за китайский юань. Однако, цена на биткойн за период в 4 года успела отыграть потерянные позиции и установить невероятный курс в $5000 за единицу.</p>]]></content:encoded>
    </item>
    <item>
      <title>Сетевой протокол Ethereum с нуля. Часть первая. Соединение</title>
      <link>https://tproger.ru/translations/ethereum-from-scratch</link>
      <comments>https://tproger.ru/translations/ethereum-from-scratch?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ihor.m 💼]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/ethereum-from-scratch</guid>
      <description><![CDATA[<p>В этой статье мы разберемся в основных концепциях работы сети Ethereum и напишем Python-скрипт для ее пингования.Ethereum — это криптовалюта, где код может исполняться посредством блокчейна. Предполагается, что у читателя есть базовое понимание Python, Git и сетевых концепций, таких как TCP и UDP.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/ethereum-from-scratch">Сетевой протокол Ethereum с нуля. Часть первая. Соединение</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 25 Aug 2017 18:21:45 GMT</pubDate>
      <content:encoded><![CDATA[<p>В этой статье мы разберемся в основных концепциях работы сети Ethereum и напишем Python-скрипт для ее пингования.</p><p>Ethereum — это криптовалюта, где код может исполняться посредством блокчейна. Эта возможность позволяет создавать «умные контракты», которые будут выполняться автоматически. Давайте разберемся, как работают «умные контракты» и протокол Ethereum в целом.</p><p>Предполагается, что у читателя есть базовое понимание Python, Git и сетевых концепций, таких как TCP и UDP.</p><h2>Концепция криптовалюты</h2><p>Под криптовалютой подразумевается механизм, который использует децентрализованное хранение и передачу информации. В централизованных системах всегда есть доверенная третья сторона, которая отслеживает все учетные данные и занимается обработкой транзакций. Без посредника сторонам может быть трудно доказать, что то, о чем они говорят, действительно принадлежит им. Такую систему использует большинство банков мира.</p><p>Криптовалюты решают проблему децентрализованного регулирования, так как каждый элемент сети ведет учет всех проходящих в ней транзакций. Для поддержания консенсуса после проведения транзакции данные о ней передаются в сеть вместе с математической задачей, которую решают узлы сети и распространяют далее. Это обновление, протекающее по сети, и является доказательством того, что транзакция была проведена успешно и имеет место быть.</p><h2>Настройка среды разработки</h2><p>Все нижеприведенные действия производились на Amazon Linux и должны быть осуществимы на OS X и большинстве дистрибудивов Linux.</p><p>Давайте создадим виртуальную среду для этого проекта:</p><p>Виртуальная среда не позволит произойти конфликту модулей Python.</p><p>Для активации виртуального окружения запустите команду:</p><p>Это приведет к изменению некоторых переменных среды. Теперь Python будет использовать пакеты только из виртуальной среды, pip будет ставить пакеты только туда.</p><p>Вы можете убедиться, что все сработало, проверив путь к среде:</p><p>Для того, чтобы не запускать виртуальную среду каждый раз при входе в систему, можете добавить следующие строки в ~/.bashrc:</p><p>Это довольно удобно использовать при работе над проектом.</p><p>Примечание Используемая версия Python 2.7.12 не гарантирует, что все будет работать с другим версиями.</p><p>Версию можно проверить командой:</p><p>Последнее, что нужно сделать — создать пакетный скелет с библиотекой pipiecutter:</p><p>Будем использовать minimal skeleton, который позволяет производить публикацию в pip и выполнять тестирование:</p><p>Вам потребуется ответить на некоторые вопросы для настройки проекта. Назовем проект pyethtutorial. После этого вы можете настроить Git для его отслеживания.</p><p>Также давайте установим пакет nose. Он понадобится для тестирования:</p><p>Теперь давайте проверим, что все работает. В pyethtutorial/tests есть один тест, который поможет нам в этом убедиться:</p><p>Для запуска всех тестов используйте команду nosetests в каталоге проекта:</p><p>Все работает. Идем дальше.</p><h2>Реализация</h2><p>Нам нужно выяснить, как общаться с другими узлами сети.<br />Вот отрывок из <a href="https://github.com/ethereum/wiki/wiki/Ethereum-Wire-Protocol">документации по протоколу Ethereum</a>:</p><blockquote>Одноранговая связь между узлами, на которых запущенны клиенты Ethereum, выполняется с использованием протокола devp2p.</blockquote><p>Что приводит нас к <a href="https://github.com/ethereum/wiki/wiki/%C3%90%CE%9EVp2p-Wire-Protocol">протоколу devp2p</a>:</p><blockquote>Узлы devp2p обмениваются сообщениями с использованием RLPx — транспортного протокола, использующего шифрование. Одноранговые узлы могут предлагать и принимать соединения на любых TCP-портах, однако по умолчанию порт, на котором может быть установлено соединение, будет 30303.Узлы devp2p находят соседние узлы с помощью протокола обнаружения DHT.</blockquote><p>Таким образом по умолчанию мы отправляем пакеты через порт 30303, используя протокол RLPx. Протокол devp2p имеет два разных режима: основной, который использует TCP, и режим обнаружения, который использует UDP. UDP работает таким образом: вы подключаетесь к определенным серверам, называемыми «узлами начальной загрузки» (для BitTorrent это router.bittorrent.com и router.utorrent.com), которые предоставляют вам небольшой список одноранговых узлов для подключения. После получения списка узлов вы можете подключиться к ним. Сервера в свою очередь будут делиться своими списками узлов с вами. Это будет продолжаться до тех пор, пока у вас не будет полного списка узлов в сети.</p><p>Звучит достаточно просто, но давайте сделаем это еще проще. В спецификации RLPx есть раздел «Обнаружение узла». В нем описано, как сообщения отправляются через UPD порт 30303, задавая следующую структуру пакетов:</p><p>И различные типы пакетов:</p><p>Типы сообщений представлены C-подобными структурами данных. Самое простое, что мы можем сделать сейчас — это реализовать пакет PingNode, который состоит из объекта version, двух объектов EndPoint и timestamp. Объекты EndPoint состоят из IP-адреса и двух целых чисел, представляющих порты UDP и TCP соответственно.</p><p>Чтобы отправить пакеты на аппаратный интерфейс, они кодируются по стандарту RLP. В документации говорится:</p><blockquote>Функция кодирования RLP принимает элемент. Элемент определяется следующим образом:<br />Строка (то есть массив байтов) является элементом.<br />Список элементов – это элемент.Кодирование RLP определяется следующим образом:<br />Для одного байта, значение которого находится в диапазоне [0x00, 0x7f], этот байт является его собственной RLP-кодировкой.<br />В противном случае, если длина строки составляет 0-55 байт, кодировка RLP состоит из одного байта со значением 0x80 плюс длина строки, за которой следует строка. Таким образом, диапазон первого байта [0x80, 0xb7].<br />Если длина строки больше 55 байтов, то RLP-кодировка состоит из одного байта со значением 0xb7 плюс длина в строки в двоичной форме, за которой следует длина строки, за которой следует строка. Например, строка длиной 1024 будет кодироваться как \ xb9 \ x04 \ x00, за которой следует строка. Таким образом, диапазон первого байта равен [0xb8, 0xbf].<br />Если общая полезная нагрузка списка (т. е. длина всех элементов) составляет 0-55 байт, то RLP-кодирование состоит из одного байта со значением 0xc0 плюс длина списка, за которым следует последовательность RLP-кодировок каждого элемента. Таким образом, диапазон первого байта [0xc0, 0xf7].<br />Если общая полезная нагрузка списка составляет более 55 байтов, то RLP-кодирование состоит из одного байта со значением 0xf7 плюс длина полезной нагрузки в двоичной форме, за которой следует длина полезной нагрузки, за которой следует последовательность RLP-кодировок объектов. Таким образом, диапазон первого байта [0xf8, 0xff].</blockquote><p>Прежде чем что-либо можно будет закодировать в RLP, нужно преобразовать структуру в «элемент»: либо строку, либо список элементов (определение является рекурсивным). Как сказано в документации, RLP просто кодирует «структуру» и оставляет интерпретацию байтов содержимого протоколу более высокого порядка.</p><p>Начнем реализацию самого протокола. Будем использовать библиотеку rlp для RLP-кодирования и декодирования. Для установки используем pip install rlp.</p><p>У нас есть все необходимое для отправки пакета PingNode. Далее мы создадим PingNode, упакуем его и отправим. Чтобы упаковать данные, мы начнем с RLP-кодирования структуры, потом добавим байт, чтобы обозначить тип структуры, добавим криптографическую подпись и, наконец, добавим хеш для проверки целостности пакета. Приступим.</p><p>pyethtutorial/discovery.py:</p><p>Первый класс — это класс EndPoint. Ожидается, что порты будут целыми числами и адрес будет находиться в формате 127.0.0.1. Адрес передается в библиотеку ipaddress, поэтому мы можем использовать его служебные функции, например, преобразование представления с точками в двоичный формат, что и происходит в методе pack. Для установки этого пакета используйте pip install ipaddress. Метод pack подготавливает объект, который будет использоваться rlp.encode, преобразуя его в список строк. Для портов на странице спецификации RLP сказано: «Целые числа Ethereum должны быть представлены в бинарной форме», а спецификация Endpoint перечисляет их типы данных как uint16_t или беззнаковые 16-битные целые числа. Таким образом, используется метод struck.pack с строкой формата &gt;H, что означает «big-endian unsigned 16-bit integer».</p><p>Следующий класс — это PingNode. Вместо того, чтобы задавать значения позже, введем исходные байтовые значения для packet_type и version. Для метода pack мы можем использовать исходное значение версии, так как оно уже находится в байтах. Для адресов будем использовать struct.pack со строкой формата &gt;I. Также добавим 60 к отметке времени, чтобы дать дополнительные 60 секунд и пакет успел прибыть в пункт назначения. (В документации сказано, что пакеты с устаревшей временной меткой не обрабатываются.)</p><p>Последний класс — PingServer. Этот класс открывает сокеты, подписывает, хеширует сообщения и отправляет их на другие серверы. Конструктор принимает объект EndPoint. Далее при создании сервера загружается секретный ключ, который мы должны инициализировать.</p><p>Ethreum использует систему асимметричного шифрования, основанную на эллиптических кривых secp256k1. Для реализации понадобится библиотека secp256k1-py. Установим pip install secp256k1.</p><p>Чтобы сгенерировать ключ, вызовем конструктор Private Key с None в качестве аргумента, а затем запишем вывод функции serialized() в файл:</p><p>Помещаем файл в каталог с проектом. Не забудьте добавить его в .gitignore, если вы используете Git, чтобы случайно его не опубликовать.</p><p>Метод wrap_packet кодирует пакет: hash || signature || packet-type || packet-data</p><p>Первое, что нужно сделать, — добавить тип пакета в RLP-код пакетных данных. Затем хэшированная полезная нагрузка подписывается с помощью функции ecdsa_sign_recoverable и ключа. Параметр raw установлен в значение True, потому что мы сами сделали хеширование (иначе функция использовала бы собственную хеш-функцию). Затем мы обрабатываем подпись и добавляем ее перед полезной нагрузкой. Наконец, вся полезная нагрузка хэшируется, и этот хэш добавляется в пакет. Теперь пакет готов к отправке.</p><p>Возможно, вы заметили, что мы еще не определили функцию keccak256. Ethereum использует нестандартный алгоритм sha3, называемый keccak-256. Библиотека pysha3 реализует ее. Используйте pip install pysha3 для установки.</p><p>В pyethtutorial/crypto.py мы определяем keccak256:</p><p>Вернемся к PingServer. Следующая функция udp_listen обрабатывает входящие передачи. Она создает объект сокета, который привязывается к UDP-порту сервера. Затем определяется функция receive_ping, которая принимает входящие данные, выводит их и возвращает объект Thread, который будет запускать get_ping, поэтому мы можем отправлять пинги одновременно с приемом входящих данных.</p><p>Последний метод ping создает объект PingNode, формирует сообщение с помощью wrap_packet и отправляет его с использованием UDP.</p><p>Теперь мы можем настроить скрипт, который будет отправлять некоторые пакеты.</p><p><b>send_ping.py:</b></p><p>Запустим код и получим следующий вывод:</p><p>Мы успешно запинговали самих себя.</p><h2>Пытаемся пинговать соседний узел</h2><p>Хорошими кандидатами для приема наших сообщений будут те самые узлы начальной загрузки. В документации сказано:</p><blockquote>Чтобы начать работу, geth использует узлы начальной загрузки, адреса которых записаны в исходном коде.</blockquote><p><a href="https://github.com/ethereum/go-ethereum">Geth</a> — это Ethereum-клиент, реализованный на Go. В этом репозитории файл <a href="https://github.com/ethereum/go-ethereum/blob/ff2c966e7f0550f4c0cb2b482d1af3064e6db0fe/params/bootnodes.go">/bootnodes.go</a> содержит списки узлов начальной загрузки в специальном формате:</p><p>public_key_hex@ip_address:port</p><p>Ниже перечислены основные узлы сети:</p><p>Для примера используется узел US-WEST, но вы можете использовать любой из этого списка. Например, ближайший к вам.</p><p>Сейчас send_ping.py выглядит так:</p><p>Давайте проверим, что выйдет:</p><p>Ждет ответа, но его нет. Разберемся, что пошло не так.</p><h2>Решение</h2><p>Оказывается, что Ethereum использует адрес возврата из заголовка UPD, а не тот, который мы ему передаем в PingNode.</p><p>53042 – это порт из заголовка UDP. Сокет отправляет пакет с этим заголовком, потому что он не привязан к какому-либо порту заранее. Ниже в комментариях отмечены проблемы с PingServer:</p><p>Проблема в том, что udp_listen и ping используют разные сокеты (созданные на строках 3 и 15), а тот, который используется ping, не привязан к порту 30303, поэтому он использует произвольный порт.</p><p>Чтобы исправить это, нужно переопределить порт в методе __init__ на сервере. Окончательный результат выглядит примерно так:</p><p>Сокет инициализирован в __init__ и указан в udp_listen и ping.</p><p>Теперь попробуем запустить send_ping.py:</p><p>Мы получили сообщение от узла начальной загрузки! Отлично.</p>]]></content:encoded>
    </item>
  </channel>
</rss>