Техническое руководство

Существует несколько сервисов API, которые облегчают быструю и простую интеграцию с сетью Dash для таких сервисов как:

  • Трансляция транзакций
  • Валютные курсы
  • Конвертация валюты
  • Генерация счетов

Сервисы API

Эта документация также доступна в формате PDF.

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

  • Формирование и трансляция транзакций в сеть.
  • Генерация адресов с использованием HD кошельков.
  • Обработка платежей с использованием WebHooks.

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

Insight

../_images/insight.png

https://github.com/dashevo/insight-api

Открытый ресурс Insight REST API предоставляет вам удобный, мощный и простой способ чтения данных сети Dash и создания собственных сервисов на основе этой сети.

  • Функции: трансляция транзакций, уведомления WebSocket.
  • Модель ценообразования: бесплатный / открытый источник
  • Документация: https://github.com/dashevo/insight-api

BlockCypher

../_images/blockcypher.png

https://www.blockcypher.com

BlockCypher представляет собой простой, в основном RESTful JSON API для взаимодействия с блокчейнами, доступ к которому осуществляется через HTTP или HTTPS из домена api.blockcypher.com.

  • Функции: трансляция транзакций, кошелёк HD / генерация адресов, обратные вызовы WebSocket и WebHook, а также экспедирование платежей. BlockCypher не обрабатывает приватные ключи.
  • Модель ценообразования: за API звонок, 5000 запросов -> $85.00 в месяц (https://accounts.blockcypher.com/plans)
  • Документация: https://www.blockcypher.com/dev/dash/

ChainRider

../_images/chainrider.png

https://www.chainrider.io

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

  • Функции: блокчейн-запросы, уведомления о событиях, трансляция транзакций, обработка платежей и т.п.
  • Модель ценообразования: бесплатно в течение пробного периода, оплата за API-звонок
  • Документация: https://www.chainrider.io/docs/dash

GoCoin

../_images/gocoin.png

https://gocoin.com

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

  • Функции: выставление счетов, курсы валют, обратные вызовы WebHook. GoCoin хранит приватные ключи на своём сервере, что позволяет продавцу извлекать средства в криптовалюте или конвертировать их в фиатную валюту.
  • Интеграция с: WooCommerce, Magento, Prestashop, VirtueMart, ZenCart, OpenCart, OSCommerce, UberCart, nopCommerce, WHMCS, NATS4, Shopify.
  • Модель ценообразования: разовая комиссия в размере 1% (https://gocoin.com/fees)
  • Документация: https://gocoin.com/docs

CoinPayments

../_images/coinpayments.png

https://www.coinpayments.net

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

  • Функции: выставление счетов, курсы валют, обратные вызовы WebHook. CoinPayments хранит приватные ключи на своём сервере, что позволяет продавцу извлекать средства в криптовалюте или конвертировать их в фиатную валюту.
  • Интеграция с: aMember Pro, Arastta, Blesta, BoxBilling, Drupal, Ecwid, Hikashop, Magento, OpenCart, OSCommerce, PrestaShop, Tomato Cart, WooCommerce, Ubercart, XCart, ZenCart
  • Модель ценообразования: разовая комиссия в размере 0,5% (https://www.coinpayments.net/help-fees)
  • Документация: https://www.coinpayments.net/apidoc

Ресурсы SDK

Эта документация также доступна в формате PDF.

Средства SDK (набор средств для разработки) используются для ускорения проектирования и разработки продуктов в сети Dash. Эти ресурсы могут использоваться для взаимодействия с провайдером API или для создания автономных приложений.

Руководство для разработчиков Dash

../_images/dash1.png

https://dash-docs.github.io/en/developer-guide

Руководство разработчика Dash предназначено для предоставления информации, необходимой для понимания Dash и создания приложений на основе Dash. Чтобы наилучшим образом использовать эту документацию, вы можете установить текущую версию Dash Core либо из исходного, либо из предварительно скомпилированного исполняемого файла.

Dashcore

../_images/bitcore.png

https://bitcore.io

Dashcore является форком Bitcore и работает как полный узел Dash - ваши приложения запускаются непосредственно в децентрализованной сети. Для разработки приложений кошелька в Dash были добавлены дополнительные индексы для запроса балансов адресов, истории транзакций и неизрасходованных выходов.

DashJ

../_images/bitcoinj.png

https://github.com/HashEngineering/dashj

DashJ - это библиотека для работы с протоколом Dash. В ней реализована поддержка кошелька, с её помощью можно отправлять/получать транзакции (включая InstantSend), не нуждаясь в локальной копии Dash Core, также она имеет много других дополнительных функций. Реализована на Java, но может использоваться с любым совместимым с JVM языком: присутствуют примеры в Python и JavaScript.

NBitcoin

../_images/dash1.png

https://github.com/MetacoSA/NBitcoin

NBitcoin - самая полная Биткойн-библиотека для платформы .NET, в которую были внесены изменения с целью добавления поддержки Dash. В ней реализованы все наиболее подходящие предложения по улучшению сети Биткойн (BIPs) и предложения по улучшению сети Dash (DIPs). Она также обеспечивает доступ на нижний уровень к примитивам Dash, поэтому вы можете легко создавать приложения поверх них.

BlockCypher

../_images/blockcypher.png

https://www.blockcypher.com

BlockCypher также предлагает клиентские SDK.

GoCoin

../_images/gocoin.png

https://gocoin.com

InstantSend

Эта документация также доступна в формате PDF.

InstantSend - это функция, предоставляемая сетью Dash, которая позволяет продавцам и другим поставщиками услуг безопасно принимать транзакции с нулевым подтверждением. Этот механизм, защищённый сетью мастернод, устраняет риск «двойных трат», блокируя транзакционные входы для данной транзакции на уровне протокола.

Транзакции InstantSend и стандартные транзакции

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

  1. Структура комиссий: InstantSend использует комиссию “за ввод” в размере 0.0001 DASH за каждый ввод.
  2. Требования для ввода: все вводы средств по транзакциям InstantSend должны иметь как минимум 6 подтверждений.

В случае, если данная транзакция не соответствует обоим критериям, произойдёт возврат к стандартной транзакции.

Получение транзакций InstantSend

Операции InstantSend обрабатываются так же, как и стандартная транзакция, как правило, через JSON-RPC, Insight API или внутренний скрипт/службу уведомлений, которые настроены на уровне сервера.

  1. JSON-RPC: Следующие команды RPC будут включать информацию, связанную с InstantSend. В ответном окне вы найдете поле «InstantLock», в котором будет указан статус данной транзакции. True/false значение (булевого типа) в нём будет указывать на то, выполняется ли InstantSend.

    1. Протокол GetTransaction: https://dash-docs.github.io/en/developer-reference#gettransaction
    2. Протокол ListTransactions: https://dash-docs.github.io/en/developer-reference#listtransactions
    3. Протокол ListSinceBlock: https://dash-docs.github.io/en/developer-reference#listsinceblock
  2. Insight API: Insight API может использоваться для обнаружения транзакций InstantSend и для отправки уведомлений клиентам с использованием WebSocket’ов. Также можно вручную опросить API, чтобы получить информацию о транзакции, включая статус InstantSend.

    1. Web Socket: https://github.com/dashpay/insight-api-dash#web-socket-api
    2. API поддержки транзакций: https://github.com/dashpay/insight-api-dash#instantsend-transactions
  3. Уведомление скрипта: Dash Core Daemon можно настроить для выполнения внешнего скрипта всякий раз, когда выполняется транзакция InstantSend, связанная с конкретным кошельком. Настройка производится путём добавления следующей строки в файл dash.conf:

    instantsendnotify=/path/to/concurrent/safe/handler %s

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

Трансляция транзакций InstantSend

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

  1. JSON-RPC: команда RPC «SendRawTransaction» может использоваться для трансляции исходной транзакции с использованием InstantSend. При использовании этой команды обязательно задайте обоим дополнительным параметрам значение «true»

    sendrawtransaction "hexstring" ( allowhighfees instantsend ) sendrawtransaction "hexstring" true true

    Детальная информация: https://dash-docs.github.io/en/developer-reference#sendrawtransaction

  2. Insight API: Необработанные транзакции также можно транслировать как InstantSend с помощью API Insight. В этом случае всё, что требуется, - это выполнить запрос POST необработанной транзакции с использованием маршрута /tx/sendix.

    Детальная информация: https://github.com/dashevo/insight-api#instantsend-transaction

Дополнительные ресурсы

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

Торговые автоматы

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

Ценовые тикеры

Вы можете добавить простой виджет с ценовым тикером на ваш сайт, используя простой фрагмент из генератора кода CoinGecko.

Аналогичные виджеты с различным дизайном доступны на CoinLibWorldCoinIndex и Cryptonator, в то время как API, предоставляющий аналогичную информацию, доступен из DashCentral.

QR-коды

Многие кошельки способны генерировать QR-коды, которые затем можно сканировать для упрощения ввода адреса Dash. Печать этих кодов или размещение на вашем сайте позволяет легко получать платежи и чаевые в DASH, находясь как онлайн, так и оффлайн.

  • В кошельке Dash Core откройте вкладку Получить, при необходимости сгенерируйте адрес и дважды кликните на нём, чтобы отобразить QR-код. Кликните правой кнопкой на QR-коде и выберите Сохранить изображение, чтобы сохранить его в файл PNG.
  • В кошельке Dash для Android нажмите Запросить средства, а затем нажмите на QR-код, чтобы отобразить его увеличенное изображение. Для сохранения этого изображения вы можете сделать его скриншот.
  • В кошельке Dash для iOS протяните влево, чтобы отобразить экран Запросить средства. Появятся QR-код и адрес. Для сохранения этого изображения вы можете сделать его скриншот.
  • Чтобы сгенерировать QR-код из любого адреса Dash, посетите CWA QR Code Generator и просто вставьте свой адрес Dash для генерации изображения.