January 10, 2023

Прием платежей в Dash

Криптовалюта Dash создавалась для того, чтобы решить проблемы присущие Биткоину, а именно - сделать платежи мгновенными, с минимальной комиссией за транзакции, и быть платежной системой, не потеряв такой принципиально важной вещи как ограниченная эмиссия. И все получилось. В этой статье излагаются основы как это все работает.

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

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

Вам нужно скачать полный dash-кошелек, который мы в дальнейшем будем называть нодой, и запустить его с определенными параметрами, предварительно немного настроив. Работая, нода связывается с другими нодами и обменивается информацией о транзакциях. В сети нод есть привилегированные, которые заморозили по 1000 монет dash и отвечают за мгновенность транзакций, удерживая их у себя и гарантируя что они будут добавлены в блокчейн и всяких неприятностей типа двойной траты и атаки 51% не произойдет. Переведенные средства тут же могут быть отправлены дальше - это настоящая безусловная мгновенность длительностью 1-2 секунды - мастер-нодам тоже требуется время чтобы прийти к консенсусу. Да, эти привилегированные ноды называются мастер-нодами и их 4000-5000. Они находятся у разных людей и не управляются из единого координационного центра. А нам достаточно запустить обычную ноду, чтобы получить все преимущества сети.

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

Если транзакция была совершена с использованием системы мгновенных переводов InstantSend, то в параметрах транзакции будет поле instantlock = true. Если же перевод был осуществлен старым методом, то вы так же мгновенно увидите эту транзакцию, но с параметром instantlock = false и количеством подтверждений равным нулю. Скрипт может сообщить пользователю что увидел транзакцию, но поскольку она пока ничем не гарантирована, то давайте подождем. Спустя несколько минут нода пришлет еще одно уведомление скрипту и снова, запросив подробную информацию, скрипт увидит что есть одно подтверждение, т.е. транзакция попала в блокчейн. После этого можно принимать решение об оказании услуги.

Надеюсь что этого теоретического минимума достаточно чтобы в общих чертах понять как связаны сеть Dash, нода Dash и скрипт, и как из этого всего получается платежная система без посредников в виде платежных агрегаторов. А прямо уже конкретную реализацию в php-коде вы можете увидеть тут https://codeberg.org/DashRuCode/dash_seller_bot. Это телеграм-бот, написанный на php, который может продавать ссылки за криптовалюту Dash. Из него можно вырезать функционал по взаимодействию с Телеграмом и встроить на любой сайт и тем самым принимать оплату мгновенно и без посредников.

Единственный нюанс для России - запрещено использовать криптовалюту в качестве платежного средства. Но, как говорится, ничто не вечно под Луной, будет и на нашей улице праздник.

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