Что такое API в криптовалюте – инструкция для трейдеров

 

Содержание

Делаем приём платежей криптовалютой своими руками

Время от времени замечаю вопросы о том, как принимать платежи Bitcoin на своём сайте без использования сторонних сервисов. Это достаточно просто, но надо учитывать, что есть подводные камни.

В этой статье я постараюсь максимально подробно, без акцента на каком-либо языке программирования, описать, как сделать приём платежей Bitcoin (а также, при желании — Litecoin, Dash, Bitcoin Cash, Steep, ONION и т.п.), начиная с разворачивания полной ноды и заканчивания проверкой поступления платежа.

Предварительные требования

Подразумевается, что вы имеете сайт, размещенный на VPS, к которой у вас есть root доступ, а также готовы тратить по $15+ на оплату сервера для кошелька.

Установка кошелька

Первым делом надо выделить отдельный сервер для размещения кошелька. Почему именно отдельный сервер? Отдельный сервер позволит снизить риски вывода всех ваших средств злоумышленником в случае взлома основного сайта. Ну и не стоит забывать, что для хранения blockchain требуется много места на диске (~150Gb места на диске и т. п. — подробности по ссылке).

Какие есть варианты дешевых серверов? Их масса, на мой взгляд самый адекватный — сервера от hetzner.de или chipcore.com. На chipcore.com, например, можно взять dedicated с диском на 500Gb (хватит на BTC и еще пару блокчейнов) всего за 990 рублей (примерно 17 баксов). Если знаете что-то дешевле — пишите в комментариях, очень интересно (думаю, не только мне).

После того, как вы осмысленно приняли решение о том, что хотите принимать криптовалюты на своём сайте и купили сервер (либо использовали имеющийся), надо установить bitcoin ноду.

На сервере должна быть установлена любая подходящая операционная система, самый простой вариант — Ubuntu 16.10 (да, на самом деле — это не лучший выбор, лучше установить 16.04 либо дождаться 18.04 и подождать еще пару месяцев для стабилизации). Как правило, заморачиваться с разбивкой диска нет смысла и можно смело использовать 2-4Gb на swap и остальное пускать на корневой раздел (/ или root).

После того, как сервер будет доступен, первое, что надо сделать — отключить авторизацию по паролям и настроить авторизацию по ssh ключам. Сделать это достатчно просто, есть хорошее описание от DigitalOcean.

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

Устанавливаем bitcoind

Это всё, что требуется для установки ноды

Настройка bitcoind

Первым делом надо создать пользователя bitcoin :

и создать служебные директории:

Теперь осталась самая мелочь – корректно настроить ноду для приёма JSON RPC запросов.

Минимальный конфиг будет выглядеть так:

Его надо положить по адресу /etc/bitcoin/bitcoin.conf . И не забыть установить корректного владельца:

Важно: использование USERNAME и PASSWORD — deprecated метод и немного не безопасный. Более правильно использовать rpcauth, пример можете найти по ссылке.

Далее, достаточно настроить systemd сервис для запуска ноды (в том числе после перезагрузки).

Для этого можно просто скопировать юнит файл, размещенный по адресу в директорию /etc/systemd/system/ :

После чего запустить его и настроить автозапуск:

Теперь можно проверить рабостопособность ноды:

Если всё ок — в ответ придёт примерно такое сообщение:

Настройка сервера основного сайта

Осталось только настроить сервер, на котором расположен ваш сайт.

Наиболее безопасный и простой способ сделать доступным на бекенде API кошелька — прокинуть ssh туннель через сервис systemd (ну или любой другой init сервис). В случае использования systemd конфигурация сервиса максимально проста:

Эту конфигурацию нужно разместить по пути /etc/systemd/system/sshtunnel-btc.service .

После этого ставим сервис в автозапус и запускаем:

Для проверки можно постучаться на порт локалхоста и проверить, что всё ок:

Документация API

Со списком всех методов удобнее всего ознакомиться по ссылке.

Вызывать их очень просто даже через curl, пример запроса мы уже использовали ранее при получении информации о ноде методом getinfo.

Есть два варианта передачи параметров — массивом либо словарём.

Ниже можно увидеть примеры запроса на получение нового адреса с передачей параметров массивом и словарём:

Простой API клиент

Для использования удобно написать простую обертку с нужными нам функциями (либо использовать имеющуюся библиотеку для вашего языка). Пример для ruby:

После этого можно удобно пользоваться им в примерно таком виде:

Аналогиный пример для node.js:

Который можно использовать примерно следующим образом:

Для Python всё еще проще – официальный способ — использование:

Собственно, с PHP также нет никаких проблем (рекомендуется использовать http://jsonrpcphp.org/):

Хорошая подборка документации находится здесь.

Приведенные выше примеры являются немного доработанными версиями перечисленных по ссылке.

Интеграция с сайтом

Осталась достаточно простая часть — настроить обработку получения платежей и генерации адресов для пополнения.

Сам процесс интеграции приема платежей криптой выглядит примерно так:

  • При запросе на оплату от пользователя показываем ему адрес, куда переводить средства
  • В фоновом режиме (самый простой вариант — по cron) проверяем список транзакций кошелька и при поступлении новой — начисляем средства / меняем статус оплаты.

Для генерации адресов для приёма можно использовать несколько разных подходов – создание нового адреса для каждого депозита, либо использование постоянного адреса для аккаунта пользователя.

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

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

Для генерации адреса пополнения нужно вызвать метод getnewaddress, который в ответе вернёт новый адрес для пополнения. Для удобства можно передать аккаунт в качестве параметра (account), к которому будет привязан созданный адрес. Иногда это может быть удобно для просмотра транзакций по конкретному пользователю.

Для проверки баланса подходят несколько методов. Самый простой способ — на каждый сгенерированный адрес для пополнения создавать запись в базе данных, после чего проверять для каждой из записей через метод getreceivedbyaddress поступления средств (не самый производительный вариант, но для большинства ситуаций подходит).

Еще хорошим вариантом будет получение информации через listtransactions о последних операциях и для них уже искать пользователя, который получает балансы. Какой вид реализации использовать — выбирать вам.

Важный момент при проверке транзакций — корректно указать кол-во подтверждений для защит от различных атак. Для большинства криптовалют обычно их можно найти в White Paper.

Для bitcoin рекомендуемое значение на данный момент — 6 подтверждений для небольших сумм. Здесь всё хорошо описано.

Примеры кода здесь уже не буду писать, потому что это сильно зависит от используемой технологии.

Заключение

Хотелось написать еще про интеграцию других кошельков, более подробно про требования к серверу и про вывод, как принимать платежи, если сайт размещен не на VPS с root доступом и т. д., но понял, что статья и так получилась большая, поэтому, если будет интересно — лучше опубликую это в одной следующих статей.

Что такое API и как используются в торговле криптовалютой?

апи в криптовалюте

API (интерфейс прикладного программирования) способствовал децентрализации современной экономики, облегчая онлайн-торговлю и давая тысячам розничных продавцов возможность начать свой бизнес. Торговля через API интерфейсы также используется онлайн-бизнесами всех видов, как в традиционных отраслях, так и в криптоиндустрии. В этой статье будет дано общее понятие, что это такое, как работает и чем это может помочь трейдеру на рынке криптовалют.

Что такое API в криптовалюте?

В общем виде, API — это интерфейс, который позволяет двум и более несвязанным цифровым системам взаимодействовать друг с другом. В том же смысле, что сервер фондовой биржи позволяет взаимодействовать как трейдеру, так и брокерским компаниям. «API» — это аббревиатура от английского термина — Application Programming Interface.

Спецификация API описывает способ, которым каждая из включенных в общий пул система должна взаимодействовать с самим API. Это, например, язык программирования, который должен использоваться, формат цифровых сообщений, которые передаются туда и обратно, как быстро сообщения могут быть отправлены, система кибербезопасности и т.д.

схема апи

Специально для торговли криптовалютой платформа API позволяет трейдерам, пользователям взаимодействовать с криптовалютной биржей (через программное обеспечение), что позволяет получать рыночные данные в реальном масштабе времени, совершать сделки и управлять клиентским счетом.

До появления Интернета, чтобы совершить сделку, нужно было связаться с брокером, который связывал покупателей и продавцов. Сегодня процесс упростился, но суть осталась прежней — API действует как электронный посредник и предоставляет точную и постоянно обновляемую информацию.

API-интерфейсы используются рядом онлайн-приложений. По сути, API похож на встроенный мессенджер для существующих приложений. Для новичков это можно простыми словами пояснить на примере. Представим, что планируется поездка и нужно найти самые дешевые авиабилеты. Открывается информационный букинг — агрегатор и заполняются все детали поездки: куда и когда нужно поехать, бронь отеля, заявка на трансфер, оформление страхового полиса. Запрос отправляется через API, и агрегатор сопоставляет содержимое различных веб-сайтов по продаже авиабилетов, требуемых услуг с клиентским запросом.

Без API агрегатору пришлось бы искать веб-сайты различных сервисов по отдельности и искать нужную информацию по каждому типу услуги. API упрощает это. Это позволяет конечному пользователю быстро получить всю необходимую информацию в одном месте и сэкономить деньги и время на планировании поездки. Подобным же образом работает эта система и для торговли на электронных биржевых платформах.

Вот некоторые из системных задач, которые можно решить с помощью API:

  • Скачать исторические рыночные данные (графики, таблицы);
  • Потоковая передача рыночных данных в реальном времени – трансляция котировок активов с криптовалютной биржи в онлайн режиме;
  • Ставить и отменять торговые ордера в общей торговой системе биржи;
  • Просматривать остатки на счетах, управлять ими, скачивать торговые системы и терминалы, роботов, совершать финансовые транзакции – ввод, вывод, хранение активов и многое другое.

Какую роль API играет в торговле криптовалютой?

Рынок криптовалюты меняется очень быстро: новые проекты запускаются ежедневно, а существующие стремительно растут. Для тех, кто работает в крипто — индустрии, может оказаться непростой задачей оставаться в курсе всех изменений и принимать обоснованные решения на рынке. Основные функции API в этом ключе:

  1. API-интерфейсы или платформа для трейдинга на крипторынке. Все рыночные данные предоставляются биржам и пользователям через API и обновляются каждую секунду. Сюда входят курс обмена крипты и фиата, рыночная капитализация и объем торгов. API-интерфейсы Exchange, API-интерфейсы Bitcoin, API-интерфейсы Ethereum и многие другие существуют для объединения торговых платформ с рыночными данными и предоставления возможности клиентам торговать.
  2. Другой тип функции — это «API выполнения». Она позволяет пользователям интегрировать свои кошельки и другие необходимые сторонние приложения с биржами. Эта функция API обеспечивает связь между криптовалютными инструментами, предоставляет пользователям более точную картину рынка и экономит их время. Таким образом, вместо того, чтобы запускать несколько одновременно приложений – типа кошелька, торговой платформы и таблицы котировок, они могут получать весь сервис на одной платформе, фактически на одном мониторе.
  3. API упрощают алгоритмическую торговлю криптовалютой, с помощью торговых роботов. В отличие от традиционных рынков, которые время от времени закрываются, торговля криптовалютой никогда не прекращается. Однако люди не могут бодрствовать 24 часа в сутки, 7 дней в неделю, и им также необходимо оптимизировать свои стратегии. Поэтому API-интерфейсы упрощают алгоритмическую торговлю для профессиональных криптовалютных инвесторов.
  4. API не только полезны, когда дело доходит до реализации торговых стратегий — они также помогают трейдерам их создавать. Эффективная стратегия требует анализа огромных объемов рыночных данных, а API-интерфейсы помогают крипто трейдерам эффективно обрабатывать эти данные и находить стратегии для получения прибыли. Как только стратегия будет готова, она может выполняться крипто — ботами и программным обеспечением с использованием API-интерфейсов для получения рыночных данных в реальном времени и принятия предварительно смоделированных решений.

Выбор оптимальной API системы для трейдинга криптой

Некоторые криптовалютные API-интерфейсы предоставляют несколько функций. Но чтобы работать лучше и быстрее, рекомендуется объединить несколько API-интерфейсов для оптимальной производительности в каждой из решаемых задач. Такими задачами могут быть:

Купить, продать или отправить криптовалюту.

Если необходима API для торговли криптовалютой, то основными критериями должны быть стабильность, время безотказной работы, стоимость, торговые функции и формат обслуживания клиентов. По этим критериям можно выбрать 2 биржи криптовалют:

Эти биржи гораздо менее популярны по сравнению с такими гигантами, как Coinbase или Binance, но зато язык платформы и функции удобны и понятны для пользователей из любой страны.

Управление криптовалютными кошельками и ресурсами хранения крипты.

Если нужен API, который поможет эффективно управлять крипто –кошельком рекомендуется использовать:

  • Blockchain Wallet API
  • Gemini

Платформа «Gemini» — это не только безопасный функционал для получения курса криптовалют или трейдинга, но и сервис, который дает большую гибкость в управлении кошельком. Gemini также обеспечивает страхование цифровых активов, которое защищает от таких вещей, как нарушение безопасности или взлом, мошеннический перевод.

Blockchain. В отличие от Gemini, здесь нельзя торговать криптовалютами. Тем не менее, этот сервис обеспечивает отличную функциональность, когда дело доходит до управления кошельком, например отправки и получения платежей в биткоинах, получения баланса кошелька, перечисления денег по крипто – адресам и т.д.

Получение котировок в онлайн режиме и исторических данных по ценам

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

Лучшие API-интерфейсы для получения текущих / исторических курсов обмена криптовалют, как правило, дороги. Но есть ряд API, которые делают это почти бесплатно. Вот список из самых оптимальных ресурсов:

  • CCXT
  • BraveNewCoin
  • Blockchain Exchange Rates API
  • CoinGecko

Хороший способ найти надежный API — это поиск отличного информационного ресурса. Ветераны отрасли, такие как ChangeNOW, Kraken, Binance или Bittrex, очень хорошо знают, что нужно трейдерам. Это удобно спроектированные, хорошо документированные и простые в использовании ресурсы, которые помогут найти API с любой совместимостью выбранных торговых инструментов и стратегий.

Что такое API, и как они используются в криптовалютной торговле?

Давайте узнаем, что такое API и какую роль они играют в торговле криптовалютами.

Что такое API?

API – это интерфейс прикладного программирования, который помогает приложениям взаимодействовать друг с другом. В повседневной жизни мы постоянно используем API, однако не всегда осознаём, что имеем дело именно с ними.

Например, когда мы ищем в интернете дом для покупки, мы находим веб-сайт, в котором API сайта используется для получения информации из соответствующей базы данных недвижимости этого ресурса. Вот примеры часто используемых API:

  • Google Maps, MapQuest и т.д. – API, который предоставляет доступ к информации со спутников и GPS-карт;
  • Yahoo Finance – API, который предоставляет данные финансовой статистики и позволяет составлять графики на основе таких данных;
  • DoorDash – API, который позволяет получить информацию из меню ресторанов;
  • E-TRADE – API, позволяющий просмотреть цены на те или иные ценные бумаги.

По сути, API создаются одними разработчиками для других как набор готовых классов, функций, процедур, структур и констант в определённом формате – так, чтобы в итоге пользователь на другом сайте или в приложении смог получить удобную для понимания информацию.

К примеру, если бы у E*TRADE не было API, который позволяет получить актуальные данные по ценам на акции, то инвесторам пришлось бы звонить на реальную торговую площадку и говорить с брокером, который может сообщить такие данные, глядя на экран компьютера внутренней сети этой компании. (Хотя, и эта сеть должна получать такие данные откуда-либо, используя API).

Таким образом, чтобы получить в своё приложение точное время в Лондоне, Сингапуре или Дубае, используется API с соответствующего ресурса. Чтобы увидеть картинку с космического телескопа NASA, также можно использовать соответствующий API с сайта этого агентства.

Криптовалютные API

Криптовалютные API позволяют получать актуальную информацию о цифровых валютах и их ценах с таких площадок, как Binance, Coinbase или других. В частности, это могут быть:

  • информация о текущей цене той или иной криптовалюты;
  • данные об объёме торгов;
  • цены открытия, закрытия, максимума и минимума и т.д.;
  • исторические данные о торговле теми или иными криптовалютами;
  • новостные ленты, отражающие ситуацию на криптовалютном рынке;
  • рейтинг монет по объёму торгов, популярности и т.д.

Получив такие данные, вы можете использовать их для оптимизации торговли вручную или при помощи ботов, а также для других целей, например, чтобы разместить информацию на своём сайте.

Размещение сделок при помощи API

Профессиональные трейдеры используют API для размещения сделок на биржах. API в этом случае позволяют установить время сделки, точку входа / выхода, уровни тейк-профита и стоп-лосса и т.д.

API также позволяют трейдерам улучшить свои сделки за счёт использования комбинированных данных. Например, API цены могут быть объединены с данными из торговой истории при размещении сделки для того, чтобы проанализировать возможность получения прибыли.

Как API используются в криптовалютных торговых ботах

Торговые боты также используют API, и размещают сделки, используя такие данные. Вот наиболее распространённые примеры того, как работают криптовалютные торговые боты:

  • Боты для арбитражной торговли исследуют криптовалютный рынок при помощи API на предмет арбитражных возможностей получения прибыли и размещают соответствующие сделки. Например, если бот видит, что та или иная криптовалюта недооценена на одной бирже и переоценена на другой, то это становится сигналом для совершения сделки, позволяющей получить прибыль за счёт разницы цен на биржах;
  • Импульсные торговые боты используют API криптовалютных площадок для расчёта силы импульса ценового движения криптовалюты, пытаясь «предугадать» цену (например, её рост) и размещая соответствующую сделку для получения прибыли;
  • Торговые боты, использующие правило / закон чередования(«рынок не проявляет себя одинаково два раза подряд»). API в данном случае используются для расчёта средней цены за определённый период времени. Если цена слишком сильно отклоняется от этого уровня, то принцип восстановления среднего значения подсказывает боту, что цена вернётся к среднему значению, и что пора размещать соответствующую сделку, чтобы получить прибыль.

Безопасны ли API в использовании?

Таким образом, современная автоматизированная торговля криптовалютами полностью полагается на API, которые передают информацию торговым ботам, способным анализировать ситуацию на рынке её и принимать выгодные для пользователей решения.

По сути, API это использование в своих приложениях общедоступных (чаще всего) данных для получения прибыли, и маловероятно, что это направлено на кражу ваших средств. Ваша безопасность может быть нарушена лишь в случае, если злоумышленник сможет попасть в ваш аккаунт с кошельками и средствами.

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

Следует также позаботиться о том, чтобы бот не рисковал всей суммой, которая содержится в вашем кошельке, а лишь использовал ту её часть, которой готовы рисковать вы.

Источник https://habr.com/ru/post/350430/

Источник https://onlycrypto.ru/novichkam/chto-takoe-api-v-kriptovalyute/

Источник https://coinspot.io/beginners/chto-takoe-api-i-kak-oni-ispolzuyutsya-v-kriptovalyutnoj-torgovle/