Программа с деньгами на Codius

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

В этом сообщении блога я объясню, как составлять контракты Codius, которые отправляют и получают платежи.

Как работают платежи в Codius?

Если вы использовали Solidity, вы знаете, что отправка и получение платежей являются встроенными функциями Ethereum. Но Codius использует контейнеры вместо специального языка. У Codius также нет встроенной книги или токена. Итак, как мы отправляем платежи?

Ответ заключается в том, что все контракты Codius имеют встроенные средства. Вам не нужно ничего добавлять, чтобы включить эту функцию; ваш контракт может просто подключиться к localhost:7768 и использовать Interledger.

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

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

Предпосылки

Это довольно продвинутое руководство. Если вы новичок в Codius и / или Interledger, вам стоит потратить время и изучить некоторые из предыдущих руководств в блоге Interledger. «Использование Moneyd для присоединения к тестовой сети ILP» - хорошее начало.

  • Вам нужен Node.js v8.10.0 или выше. Если у вас нет Node.js, используйте NVM для его установки.
  • Если вы не знакомы с SPSP, я рекомендую вам прочитать руководство по нему.
  • Если вы никогда не загружали на Codius, прочтите руководство по нему.
  • Вам потребуется, чтобы Moneyd работал в действующей сети.

Поскольку в этом руководстве используется действующая сеть Interledger, вам потребуются средства в криптовалюте. Все наши текущие руководства используют XRP.

Если у вас нет XRP и вы не хотите его покупать, следите за обновлениями, и в будущих уроках вы узнаете, как присоединиться к сети с помощью Ethereum и Bitcoin.

Запустите сервер SPSP

Контракт, который мы загружаем, получит деньги, а затем отправит их в другое место. Чтобы было куда отправлять, вам нужно запустить сервер SPSP. Сервер SPSP подключается к Moneyd и принимает пакеты Interledger.

npm install -g ilp-spsp-server
ilp-spsp-server --subdomain MY_SUBDOMAIN

Это позволит вам получить домен через localtunnel.me. Ваш результат будет выглядеть примерно так:

> ilp-spsp-server --subdomain example
connecting...
created receiver...
listening on 39635
public at: https://example.localtunnel.me
payment pointer is: $example.localtunnel.me

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

Создать манифест Codius

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

Программа, которую мы собираемся запустить, состоит из двух частей:

  • Сервер SPSP, который принимает платежи (GitHub Repo). Он запускает HTTP-сервер, который отвечает на запросы с вашим адресом Interledger. Он также подключается к Moneyd внутри контрактной среды и принимает платежи Interledger.
  • Клиент SPSP, отправляющий платежи (Github Repo). Он подключается к Moneyd и неоднократно пытается отправить платежи на 10 единиц. Конечно, это банальное использование Interledger. Вы можете делать со своими деньгами все, что угодно, даже загрузить еще один контракт Codius.

Мы используем два файла, чтобы сообщить Codius, как запускать нашу программу: codius.json и codiusvars.json.

В новой папке создайте файл с именем codius.json и поместите в него следующий текст:

Затем создайте файл с именем codiusvars.json в том же каталоге и поместите в него следующие данные JSON:

  • Наш контракт name - codius-spsp.
  • Наш контракт публично предоставляет порт 8080 из пространства портов контейнера (это порт, который прослушивает наш сервер SPSP).
  • В нашем контракте запущен сервер SPSP с sharafian/ilp-spsp-server на хабе докеров. Сервер SPSP прослушивает Interledger и принимает платежи.
  • В нашем контракте также работает «спонсор» SPSP из sharafian/ilp-spsp-spender на docker-хабе. Плательщик SPSP непрерывно отправляет микроплатежи в пункт назначения, указанный PAYMENT_POINTER в среде.
  • Мы определяем PAYMENT_POINTER как $sharafian.com.

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

Чтобы деньги поступали к вам, замените $sharafian.com указателем платежа, который вы скопировали на предыдущем шаге.

Загрузить в Codius

Если вы следовали нашему руководству по загрузке в codius, у вас уже есть команда codius. В противном случае запустите:

npm install -g codius

Вы можете получить EACCESS ошибку, если Node.js настроен неправильно. Просто установите NVM и попробуйте еще раз.

После установки модуля codius вы готовы к загрузке. В том же каталоге, в который вы поместили свои codius.json и codiusvars.json, запустите:

codius upload

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

✔ 1 Successful Uploads
o Manifest Hash: gycv4aiexmaizeet7qotrp6coxyfd6dncnhpa5sd66k4nb5vinbq
✔ Codius State File: default.codiusstate.json Updated

Если у вас ничего не получилось, не волнуйтесь. Сеть codius еще новая, поэтому возможно, что у вас или у вашего хоста была неправильная конфигурация. Стоимость размещения этого контракта на 10 минут составляет всего 0,002200 XRP, или 0,1 цента по текущей цене XRP. Просто дайте загрузке еще одну попытку, и она выберет новый хост.

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

> ilp-spsp send --receiver 'https://g...codius.fungkwokpan.art/' --amount 100
paying 100 to "https://g...codius.fungkwokpan.art/"...
sent!

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

В журналах вашего сервера SPSP вы начнете видеть пакеты по 10 единиц (если вы в другой валюте, суммы будут другими).

> ilp-spsp-server --subdomain example
connecting...
created receiver...
listening on 46421
public at: https://example.localtunnel.me
payment pointer is: $example.localtunnel.me
got packet for 10 units
got packet for 10 units
got packet for 10 units
got packet for 10 units
got packet for 10 units
got packet for 10 units
got packet for 10 units
got packet for 10 units
got packet for 10 units
got packet for 10 units

Идеи и следующие шаги

Теперь, когда вы увидели, как контракты Codius могут получить доступ к Interledger, вы можете начать писать свои собственные приложения. Вот несколько идей, что вы можете сделать:

  • Измените ILP SPSP Spender для отправки суммы, отличной от 10. Вы можете клонировать репозиторий и использовать docker для публикации измененных версий в Docker Hub.
  • Укажите отправителю SPSP на$spsp.siren.sh/RIPPLE_ADDRESS/DESTINATION_TAG для отправки на любой адрес XRP (даже если там нет получателя Interledger). Убедитесь, что вы отправили не менее 1000 дропов (дроп составляет одну миллионную XRP), чтобы инициировать расчет.
  • Используйте библиотеку ILP Fetch в своем контракте, чтобы сделать платный вызов API. (Если у вас есть амбициозность, вы можете попробовать использовать Codius API, чтобы создать контракт, который загружает другой контракт. Просто постарайтесь не создавать Skynet).

Если у вас есть какие-либо вопросы, идеи или предложения для будущих руководств, присоединяйтесь к Interledger Gitter и Codius Gitter!