Мой новый проект Viz-exchange: Введение

Здравствуйте. ночью с 1 на 2 марта был завершен, пожалуй, самый большой проект, который я когда либо делал. Это обменник viz-exchange.
Его Github: https://github.com/denis-skripnik/viz-exchange

Его суть в том, чтобы переводить токены аккаунту на одном блокчейне и получать в другом.
Изначально планировалось сделать обмен только viz на golos и golos на viz, но вскоре осознал, что гораздо лучше, если будет возможность обменивать и steem на viz, и whaleshares на viz. После чего я сделал это, а также возможность обмена между golos/steem и наоборот, golos/whaleshares и наоборот, steem/whaleshares и наоборот.

Что такое viz-exchange?

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

Концепция множества частных шлюзов.

Каждый пользователь имеет своё мнение по поводу того, какова стоимость того или иного токена.
Как вариант, можно разместить заявку на биржах, однако проблема в том, что обычно пользователи блокчейнов пользуются разными биржами (кто-то одной, кто-то другой).
Создав шлюз при помощи VIZ-exchange, вы повысите шансы найти покупателя или продавца нужного токена в соответствии с вашим видением цены.

Функционал:

  1. Поддержка четырёх блокчейнов с возможностью увеличения их количества.
  2. Все настройки находятся в config.json – трогать javascript код не придётся;
  3. Направления: VIZ/Golos, Golos/VIZ, VIZ/Steem, Steem/VIZ, VIZ/Whaleshares, Whaleshares/VIZ, Golos/Steem, Steem/Golos, Golos/Whaleshares, Whaleshares/Golos, Steem/Whaleshares, Whaleshares/Steem. Направления с некоторыми блокчейнами могут быть недоступны, если эти блокчейны имеют статус активности false.
  4. Курс обмена привязан к VIZ и выставляется в каждом блокчейне в json файле. Например, в Golos указан курс 0,5, т.к. 1 Golos = 0,5 VIZ, но эти значения можно изменить.
  5. Курс обмена в парах, где отсутствует VIZ, рассчитывается исходя из цены каждого из этих двух токенов к VIZ.
  6. Поддерживаются только токены Golos, Steem, WLS, VIZ. Токены SBD и GBG не поддерживаются.
  7. Стабильность. В случае выключения скрипта или его перезагрузки все необработанные блоки и непроверенные переводы сохранятся, а парсинг блоков начнётся от последнего обработанного.
  8. Проверка всех действий. Если перевод не дошёл (например, из-за отклонённого блока), он будет проведён ещё раз.
  9. Надёжность. На этапе тестирования были отправлены переводы с различными ошибками: с указанием неверных memo, с суммой, превышающей количество токенов на балансе аккаунта-отправителя и с несуществующим аккаунтом в блокчейне-получателе. Во всех случаях средства были успешно возвращены отправителю. Тестовые переводы с нормальными параметрами, в том числе 500 переводов одной транзакцией, прошли успешно.
  10. Возможность заработка. Вы можете указать желаемую комиссию, и пользователю будет переводиться сумма за вычетом этой комиссии.
  11. VIZ-exchange имеет открытый код и полностью бесплатен.
  12. В описании аккаунта (metadata.profile.about) можно увидеть курсы обмена токенов, а также максимально возможное количество токенов для обмена. Например, в аккаунте на Голосе может отображаться, что вы можете обменять 1 Golos на VIZ, 2 Golos на Steem и 5 Golos на Whaleshares при курсе к VIZ 0,5 и к Steem 0,33 (рассчитывается на основе курса Golos/VIZ и Steem/VIZ). При этом максимально возможное количество токенов для обмена указывается с учётом этих курсов, т.е. если вы видите, что можете обменять на VIZ максимум 1 Golos и курс 0,5, значит ваш баланс в VIZ составляет 0,5.
    Если балансы в других блокчейнах не изменялись, обновление информации происходить не будет. То есть, если в блокчейнах VIZ и Steem балансы не изменялись, и вы не меняли курс или комиссию, на Голосе описание останется прежним.
  13. Вы можете изменить статус блокчейна на false, тогда направления обмена с ним будут недоступны, и информация добавляться не будет.

Правила обмена:

  1. Пользователь узнаёт аккаунт шлюза.
  2. Производит перевод любой суммы (в пределах суммы, которая есть у него на балансе) на аккаунт шлюза с указанием memo в следующем формате: blockchain:login.
    Пример: VIZ:denis-skripnik. Это значит, что происходит обмен токенов другого блокчейна на VIZ, при этом токены VIZ будут зачислены на баланс аккаунта denis-skripnik.
    Обратите внимание, что VIZ в данном случае – не токен, а блокчейн. То есть, если пользователь отправит перевод с memo wls:login, средства вернутся, поскольку надо писать не wls, а whaleshares.
  3. Если при переводе будет допущена какая-то ошибка, средства будут возвращены ответным переводом, при этом ошибка будет указана в memo.
    При корректной отправке перевода на указанный аккаунт будет зачислена сумма в нужном токене. При этом в memo будет содержаться сообщение об успешном обмене, а также будут указаны логин шлюза, курс обмена и комиссия.

Внимание

  1. Автор VIZ-exchange не несёт ответственности за обман пользователей теми, кто заявляет о создании шлюза.
  2. Автор не несёт ответственности за неработоспособность шлюза из-за нехватки ресурсов на сервере его создателя, из-за неоплаты сервера или по другим причинам.
  3. Автор VIZ-exchange не несёт ответственности за возможные атаки на шлюзы.
    В случае отправки большего количества средств, чем должно быть, либо в случае отсутствия возврата/отправки платежа обменивающему просьба прислать по контактам ниже лог с ошибками, которые были во время таких транзакций.

Сайт для шлюзов:

Чтобы пользователи блокчейнов могли искать и выбирать частные шлюзы обмена, я сделал сайт https://viz.dpos.space/exchange, который выводит список шлюзов в зависимости от выбранного блокчейна, а также позволяет добавить новый:

Всё.

В следующем посте расскажу про установку и настройку скрипта, а также про добавление новых блокчейнов. Перейти


2
13 наград
1461.139452 Ƶ
Отобразить форму комментирования
Комментарии

06.03.2019 03:34:27

Писал в телеге, напишу и здесь:

На самом деле цены заоблачные

Довольно тривиальные задачи. Например, настройки в config.json это вполне естественная возможность у любого нормального приложения

По-моему 80к за все это приемлемая цена может чуть больше. Поставил 62%=80600