Цель

В этом POC я решил посмотреть, возможно ли создать систему «плати за просмотр» с помощью Lightning Network. Это система, при которой мы платим небольшими порциями (например, каждые 5 секунд,…) вместо ежемесячной подписки или оплаты всего фильма.

Настраивать

Для этого я установил два узла Lightning с каналом между ними. На обоих узлах работают bitcoind (тестовая сеть) и lightningd.

  • lightning-node-1 (получатель) также работает с молниеносным зарядом
  • lightning-node-2 (плательщик) также использует LightningPay

LightningPay - это очень простое приложение Express, которое я создал, которое взаимодействует с Lightningd через JSON-RPC. Это было необходимо для автоматических платежей.

БРОСАТЬСЯ

Динамическая адаптивная потоковая передача через HTTP (DASH), также известная как MPEG-DASH, представляет собой метод потоковой передачи с адаптивной скоростью передачи данных, который обеспечивает высококачественную потоковую передачу мультимедийного контента через Интернет с обычных веб-серверов HTTP. Файл mpd используется, среди прочего, для описания структуры URL-адресов необходимых медиафайлов.

‹SegmentTemplate duration =» 120 'timescale = »30' media =» $ Представление ID $ / $ Представление ID $ _ $ Number $ .m4v »startNumber =» 1 'инициализация = »$ Представление ID $ / $ Представление ID $ _0.m4v ”/›

Эталонный клиент (dash.js) отвечает за загрузку всех медиафайлов, которые в конечном итоге будут воспроизведены браузером. В нашем случае мы проксируем все запросы к https://dash.akamaized.net через прокси-сервер MicroPay. Я изменил dash.js, чтобы все запросы включали HTTP-заголовок CustomerId с фиксированным значением 1.

MicroPayProxy

Этот прокси-сервер в основном отвечает за защиту неоплаченных видеофайлов и обслуживание запросов на оплату.

Если поступает запрос на файл m4v (видео), который еще не был оплачен, прокси-сервер вернет код состояния HTTP 402 (требуется оплата), а Будет установлен заголовок Payment-Request.

Я изменил библиотеку Dash.js, чтобы следить за ответами HTTP 402 и автоматически реагировать на входящие платежные запросы. Это, конечно, наивный и небезопасный способ оплаты счета Lightning. Настоящее приложение, использующее такую ​​систему, будет использовать безопасный веб-кошелек Lightning.

После оплаты счета запрос мультимедийного файла просто повторяется Dash.js и передается прокси-серверу.

Заключительные мысли

Это было интересное упражнение, и я рад сообщить, что узнал много нового о Lightning Network! ⚡️ Кто знает, однажды «Pay As You Watch» может стать интересной альтернативой более традиционным моделям подписки.

Источники