Код для кода: как язык программирования Python применяется в криптоиндустрии
Самый популярный язык программирования давно зарекомендовал себя в мире блокчейна и криптовалют. Коротко опишем основные библиотеки и проекты на Python.
Программирование в индустрии
Содержание статьи:
Трудно представить, насколько сильно наша жизнь зависит от программного кода. Криптомире существует во многом только благодаря ему. В мире имеется много языков программирования, многие из которых широко используются криптопроектами, а некоторые даже были специально созданы под эту среду.
Да, код Биткоина был написан на C++, однако с момента его появления свет увидело много других проектов, реализованных на самых разных языках программирования. И Python далеко не последний. Скорее напротив, он находится в авангарде блокчейн-разработок.
Пайтон – самый популярный язык программирования в мире. Рейтинги популярности языков ставят Python на первое место с большим отрывом (например: Tiobe или PYPL). Но, как известно, у криптовалютой индустрии своя специфика. Достаточно ли Python хорош, чтобы полностью завоевать эту область человеческой деятельности?
Что такое Python
Начнем с небольшого экскурса в природу самого языка и того, что сделало его самым популярным в мире.
Python – высокоуровневый язык программирования общего назначения. Простыми словами: это удобный для программистов язык, который обладает самой широкой сферой применения. Впрочем, таких языков, помимо Python, великое множество. От остальных Пайтон отличает способность вобрать отличный набор полезных качеств, которые помогли завоевать любовь программистов.
Понятный синтаксис, который позволяет с удобством писать и читать программы на Python. Тем, кто хоть немного знает английский, будет достаточно просто разобраться с базовым синтаксисом.
Python – мультипарадигменный язык программирования, то есть поддерживает разные парадигмы.
Python – интерпретируемый язык. Это значит, что строчки кода исполняются сразу, без компилирования всей программы. Это позволяет быстрее находить и исправлять ошибки.
Широкая поддержка. Чем популярнее язык, тем больше сообщество, которое будет его поддерживать. Существует великое множество материалов и ресурсов, облегчающих изучение и работу на Python.
В Python существует огромное количество библиотек. Это, если просто, уже написанный кем-то код, который может быть использован другими программистами. То есть достаточно импортировать уже готовую библиотеку и сразу пользоваться ее функционалом, не придумывая велосипед с нуля. Библитеки есть для самого разного: от работы с изображениями до нейросетей, сложных математических исследований или машинного обучения
В сухом остатке перед нами предстает удобный, простой в освоении, но в то же время мощный и универсальный язык программирования, который завоевал огромную популярность в мире. А что насчет криптомира?
Можно ли на Python создать блокчейн
Конечно, и при том относительно просто. Мы, разумеется, не будем приводить здесь код или писать подробный гайд, подобное в изобилии можно найти в сети (например, здесь). Отметим лишь, что большая часть работы уже проделана создателями библиотек, поэтому при написании блокчейна можно легко опереться на готовые решения и не писать с нуля.
Например, библиотека hashlib поможет в создании хеша, а популярная datetime позволит добавить временные отметки для блоков. Для запросов можно использовать библиотеку Requests, и, в принципе, на любую типовую задачу в Python скорее всего будет готовая библиотека.
Разумеется, и для криптовалют, и для блокчейна существует множество библиотек. В PyPI, каталоге пакетов Python по ключевому слову blockchain находится 1408 проектов. Рассмотрим некоторые из них.
Основные крипто-библиотеки в Python
Разделим библиотеки по области применения.
Биткоин
Bitcoin – библиотека для работы с Биткоином. Позволяет сгенерировать закрытый (приватный) ключ, открытый (публичный) ключ и биткоин-адрес.
Кошельки. В Python есть множество библиотек, позволяющих создавать биткоин-адреса и получать криптовалюту. Например, bitcoinlib, HD Merchant Wallet.
Ethereum
web3.py – библиотека Python для взаимодействия с Ethereum. Обычно используется в децентрализованных приложениях (dApp), чтобы помочь с отправкой транзакций, взаимодействием со смарт-контрактами, чтением данных блоков и так далее.
eth-utils – еще одна библиотека для работы с Эфириумом, которая включает в себя некоторые популярные функции и классы, которые разработчики блокчейна используют для взаимодействия с сетью.
py-evm – реализация виртуальной машины Ethereum, написанная на Python.
eth-tester – библиотека, которая создает среду разработки, которая обходит процесс синхронизации с блокчейном. Вместо этого тестер подключается к моделируемому узлу Ethereum со свободными разрешениями и фиктивной валютой, на которой можно тестировать приложения.
py-solc-x – библиотека для компиляции смарт-контрактов на Solidity.
Безопасность
Mythril – инструмент оценки безопасности для байт-кода EVM. Он обнаруживает уязвимости безопасности в смарт-контрактах, созданных на Эфириуме, Hedera, Quorum, Vechain, Roostock, Tron и других EVM-совместимых блокчейнах.
Slither – платформа статического анализа Solidity, написанная на Python. Она позволяет обнаруживать уязвимости и улучшать код смарт-контрактов.
Woke – еще один фреймворк для безопасности и тестирования контрактов на Solidity.
Другие криптовалюты и проекты
Многие проекты в индустрии криптовалют в той или иной степени поддерживают разработку на Python.
SolanaPy – библиотека для взаимодействия с Solana.
CosmPy – библиотека Python для взаимодействия с сетями блокчейнов на основе Cosmos SDK. CosmPy можно использовать для передачи токенов, развертывания и взаимодействия со смарт-контрактами.
xrpl-py – библиотека Python для взаимодействия с XRP.
Трейдинг и биржи
CCXT ( CryptoCurrency eXchange Trading) – библиотека, которая используется для работы с криптовалютными биржами. CCXT обеспечивает доступ к рыночным данным для хранения, анализа, визуализации, создания индикаторов, алгоритмической торговли, тестирования стратегий, программирования ботов и разработки другого программного обеспечения, связанного с трейдингом и биржами.
Web3-Ethereum-Defi – низкоуровневая библиотека Python для извлечения торговых данных DeFi из различных блокчейнов.
Есчь библиотеки для крупных бирж, например:
Python Binance предоставляет интерфейс для взаимодействия с биржей Binance для покупки или продажи криптовалют. Также на нем можно создать своего собственного торгового бота;
CoinBase – официальная библиотека биржи.
Цены криптовалют
BitcoinAverage, Cryptocompare – поставщики API. Позволяют отслеживать цены и курсы криптовалют. Для коммерческого использования необходимо получить API-ключ.
Forex Python – бесплатная библиотека, позволяющая получить цены (в том числе исторические) биткоина в разных валютах.
Это, разумеется, далеко не полный перечень специализированных библиотек, упрощающих работу с блокчейном и криптовалютами на Python. Однако перечисленного вполне достаточно, чтобы составить мнение о популярности этого языка среди разработчиков решений для индустрии.
Уже существующие проекты на Python
Несмотря на то, что Python не является очевидным языком-кандидатом для создания блокчейнов (так как обычно предпочтение отдается другим), существует несколько криптовалют, написанных именно на Пайтоне.
Chia. Криптовалюта, в которой фарминг (аналог майнинга в терминологии Chia) основан на объеме выделенной памяти. Код написан на Python. Chia предлагает уникальный алгоритм консенсуса – доказательство пространства-времени (proof-of-spacetime – PoSt). Также поддерживает смарт-контракты.
Lamden – высокопроизводительная блокчейн-платформа на основе Python для создания децентрализованных приложения (dApp).
Bittensor – децентрализованный проект, посвященный ИИ и машинному обучению. Как известно, Пайтон крайне популярен в этих областях науки, поэтому неудивительно, что Bittensor использует Python и в работе своей децентрализованной экосистемы.
Несмотря на то, что довольно сложно назвать крупные проекты в мире криптовалют, которые были полностью написаны на Python, его значение не стоит недооценивать. Множество более мелких проектов активно задействуют именно этот язык. И, учитывая количество Python-программистов, легко предположить, что количество подобных проектов будет только расти.
Вывод
Самый популярный язык программирования современности находится на очень хорошем счету у представителей криптомира. Для этого есть все причины: функциональность позволяет разворачивать на нем сложные проекты, а широкая поддержка программистов по всему миру обеспечивает хорошее развитие. Появляются специализированные библиотеки, упрощающие написание программ. С учетом нынешней популярности, крайне вероятно, что присутствие Python в мире блокчейнов и криптовалют будет только увеличиваться со временем.