Сколько стоит подключить новый блокчейн?

Централизованная биржа (которая использует сервер) использует только операции прием-отправка, тогда как для децентрализованного обмена (serverless) требуется слаженная работа многих элементов – ноды, публичный эксплорер, смартконтракта, клиента в браузере пользователя, который выполняет всю логику атомарного обмена, системы обмена сообщениями libp2p, действий пользователя (который может просто закрыть вкладку).

Так как мы работаем одновременно с двумя блокчейнами, то сложность умножается. Нам нужно предусмотреть все возможные состояния, грамотно их запрограммировать и обернуть в красивый UI (пользовательский интерфейс). Специалистов по нашей теме в мире очень мало, поэтому подключить сразу все блокчейны пока нет возможности, но мы работаем с теми, чье комьюнити наиболее заинтересованно

Помимо этого должна вестись большая работа по привлечению и просвещению пользователей, поддержка в СМИ. Над проектом будет работать несколько человек, двое разработчиков 75$/час, продакт менеджер, аналитик, менеджер.

Milestones

  1. Ресерч возможности (20 часов)
  2. Добавление блокчейна в кошелек (16 часов)
  3. Добавления mvp в core (70 часов)
  4. Вывод в интерфейс, работа с UX (50 часов)
  5. Тестирование и отладка, с целью минимизации рисков обмена (140 часов)
  6. Программирование арбитражного бота (36 часов)
  7. Актвиация торгов с ассетами блокчейна (30 часов)
  8. Документация, написание текстов пресс релизов (20 часов)
  9. Работа с сообществом подключенного блокчейна, поиск партнеров (40 часов)
  10. Пресс релизы и реклама ($2000)
  11. Запись видороликов, продакшн (10 часов)
  12. Поддержка после запуска (36 часов)

После выполнения этих операций запускаются полноценный торги со спредом 1-3% (не комиссией). С каждого обмена мы начинаем зарабатывать деньги. Для того, что бы уменьшить спред и увеличить лимиты мы принимаем криптовалюту по модели airswap

How the Swap.online dApp orderbook works above the IPFSpubsub

Order – is a public announcement about the fact that user is ready to exchange cryptocurrency X for the cryptocurrency Y.

Orderbook – is the effective lists of orders used by users to find each other and exchange cryptocurrencies promptly.

On both centralized and semi-decentralized exchanges (e.g. IDEX) orderbook is stored on the basic server. Thus, the server owner is responsible for the matching between buyers and sellers, similarly to the owners of torrent-trackers.

So, the decentralized orderbook addresses the elimination of the administrator’s influence on the exchange processes and on online order matching.
We have solved this problem via the ipfs pubsub library means.

So, how does it work?

  1. We launch the ipfs library and ipfs-pub-sub-room (https://github.com/ipfs-shipyard/ipfs-pubsub-room#use )
  2. We set external public signal server to find the first peer in network (https://github.com/swaponline/swap.react/blob/master/config/mainnet/ipfs.js )
  3. User comes and gets connected to some other users. Imagine, they are in the same chat room. This information is shown in the bottom of the page.
4. User sends the order via the interface.

      5.The order is formed and sent through the libp2p library here (https://github.com/swaponline/swap.core/blob/master/src/swap.orders/SwapOrders.js#L317 ).

6. Every message is signed by the private key from the Ethereum network and then checked through web3.ecrecover (https://github.com/swaponline/swap.core/blob/master/src/swap.room/SwapRoom.js#L174)
7. Swap.online dApp receives the avaliable orders and shows it to the users.

8. Moreover, this orderbook is analyzed during the exchange via the simplified interface, where the user enters only the sum for exchange and gets the request with the most profitable order

Full range of messages transferred via the IPFS system:

  • ready
  • user online
  • user offline
  • new orders
  • new order
  • remove order
  • hide orders
  • show orders
  • accept request
  • decline request
  • request swap
  • new order request
  • accept swap request
  • request partial fulfilment
  • accept partial fulfilment
  • decline partial fulfilment
  • new partial fulfilment request

and some messages inside the swap.

Как работает наш ордербук поверх ipfs pub sub в swap.online dAPP

Ордер – объявление о том, что пользователь хочет обменять криптовалюту X на криптовалюту Y. 

Ордербук – актуальный список ордеров, необходимый, чтобы пользователи быстро находили подходящие ордера друг друга и начинали обмен.

На централизованных или полудецентрализованных биржах (IDEX) данные об ордерах хранятся в базе, таким образом администратор несет ответственность за то, что сводит продавцов и покупателей, так же как, например несут ответственность  торрент трекеры.

Задача полностью децентрализованного обмена – исключение влияния администратора на процесс обмена и поиска ордеров в сети. Мы справились с этой задачей при помощи библиотеки ipfs pub sub.

Данные хранятся у пользователей и передаются через сеть на базе ipfs pub sub, которая передает сообщения другим участникам сети через библиотеку libp2p, единственная точка отказа в нашем случае – сигнальный сервер, который не находится под контролем администратора (например публичный ws-star.discovery.libp2p.io).

Как именно это работает?

  1. Мы подключаем библиотеку ipfs и ipfs-pub-sub-room https://github.com/ipfs-shipyard/ipfs-pubsub-room#use
  2. Указываем внешний публичный сигнальный сервер (он необходим для нахождения первого пира в сети) https://github.com/swaponline/swap.react/blob/master/config/mainnet/ipfs.js
  3. Пользователь заходит и через некоторое время подключается к нескольким другим пользователям, они как бы находятся в чате в одной комнате. Об этом сообщено снизу страницы
  4. Пользователь создает ордер через интерфейс
  5. Ордер формируется и отправляется через библиоткеку libp2p вот здесь https://github.com/swaponline/swap.core/blob/master/src/swap.orders/SwapOrders.js#L317 
  6. Каждое сообщение подписывается приватным ключем пользователя (от ethereum)  и проверяется через web3.ecrecover https://github.com/swaponline/swap.core/blob/master/src/swap.room/SwapRoom.js#L174
  7. Получив доступные оредра наш dAPP выводит их пользователю 
  8. Кроме того этот ордербук анализируется при обмене через упрощенный интерфейс, где пользователь вводит сумму для обмена. выбирается наиболее подходящий ордер и к нему отправляется запрос

Полный список сообщений которые передаются через систему IPFS

  • ready
  • user online
  • user offline
  • new orders
  • new order
  • remove order
  • hide orders
  • show orders
  • accept request
  • decline request
  • request swap
  • new order request
  • accept swap request
  • request partial fulfilment
  • accept partial fulfilment
  • decline partial fulfilment
  • new partial fulfilment request
  • различные сообщения внутри свапа

Limits and conditions of affiliate system

Our new referral system will be tracked manually, since we had bad experience in bounty already. We are looking for active and engaged community members, who will be interested in our project. If you have enthusiastic people – share your personal promo link with them – and we will reward you and them. But please, do not post it in bounty groups and channels

-Total limits: 10 referrals per user;
-From 0 to 10 SWAP tokens for each referral;
-We do not guarantee that someone will buy a token.
-Maximum number of participants: 1000