Смарт-контракт на Ethereum для дейтинг-сервиса

ДНЕПР, УКРАИНА

Нью-Йорк, США

WhatsApp, Telegram, Skype

BabyFind – telegram бот для новых знакомств. Он помогает найти парней и девушек, с которыми можно пообщаться. Наша команда разработала смарт-контракт на Ethereum для внутренней валюты сервиса. 


Что сделано: 


В этом кейсе мы описали процесс разработки.

 

BFT – внутренняя валюта дейтинг-бота


Идея внутренней валюты выглядит перспективно. Как бонусы в магазине или игровые монетки, BFT можно потратить на покупки внутри сервиса. Расширить функционал, включить новые услуги. 

Валюта – это токены, которые выпущены на блокчейне Ethereum. За выпуск, покупку и администрирование токенов отвечает смарт-контракт. 

Наглядно схема покупки токена выглядит так:



 

Блокчейн Ethereum и стандарт ERC-20


Блокчейн обеспечивает прозрачность. Благодаря децентрализации пользователь уверен в открытости. Купленные им токены останутся с ним. Ethereum выбрали как самую массовую платформу для смарт-контрактов.  

Контракт написан на языке Solidity, более подробно об этом языке здесь

Важно было сделать токены по стандарту ERC-20. Стандарт позволяет токену быть поддерживаемым различными кошельками и котироваться на бирже. Любой ethereum-кошелек сможет работать с BFT. 

Стандарт предписывает, какие функции и переменные должны быть в контракте. Спецификация доступна по ссылке .



 

Процесс покупки


Для начала команда проработала сценарий покупки и использования, структуру смарт-контракта (количество токенов, курс оплаты, как использовать меньше газа и другие параметры). Все дополнительные сервисы планируется использовать за счет цепочки новых смарт-контрактов. 

Пользователь в боте выбирает «Купить Pro-account». Бот присылает ссылку на веб-интерфейс для покупки валюты и ID.


Для удобства написали веб-интерфейс – html-страницу, на которой можно купить токены. Использовали библиотеку Web3.js.

Для покупки валюты пользователь вводит ID и количество ethereum, которые он хочет потратить. ID используется для идентификации пользователя в боте. Функция приема платежа в смарт-контракте принимает этот ID, и он записывается в блокчейн. 



Выполняется смарт-контракт в сети Ethereum. 



Токены пользователь может видеть в Ethereum-кошельке.



Если запись в блокчейне прошла успешно, ораклайзер уведомляет сервис.



Для уведомления пользователя, что транзакция прошла и Pro-account активирован,  использовали так называемый ораклайзер. Это специальные контракты, которые обеспечивают взаимодействие с офчейн-сервисами.



Бот высылает уведомление, что Pro-account активирован и токены куплены. 



Процесс покупки токенов тестируется в сети RinkeBy Test Net. 

 

Расчет проекта

Что будем делать? Каждая мелочь и мысль может помочь нам составить необходимое представление о проекте