Minter состоит из 5 основных частей:
- Network (набор Нод)
- Connector
- Backend
- SDK
- Wallet
Network - это основа проекта. Набор нод, которые постоянно обрабатывают транзакции и генерируют блоки, тем самым поддерживая блокчейн. Ноды постоянно общаются между собой, а так же имеют API для внешнего доступа.
Коннектор выступает в роли балансировщика. Он ищет валидную ноду с наименьшей нагрузкой и перенаправляет запрос к ней.
На Бекенде хранится промежуточная информация об аккаунтах пользователей Minter, а именно:
- Привязки номеров телефонов, email'ов, никнеймов к блокчейн адресу
- Неизрасходованные чеки
- Хранение зашифрованных приватных ключей пользователей
- Платежный API (на будущее)
SDK выступает в роли обертки над API бекенда и Нод. Функции, которые должны быть доступны у SDK:
- Получение адреса по номеру телефона, email, никнейму (идет запрос на Бекенд).
- Получение номера телефона, email, никнейма по адресу (идет запрос на Бекенд).
- Получение баланса пользователя (идет запрос на ноду через Коннектор).
- Обертка над платежным API Бекенда (на будущее)
- Получение текущей стоимости монет. Вводится покупаемая монета, монета которой совершают покупку и кол-во. Запрос идет на ноду через Коннектор.
- Открытие страницы браузера для отправки транзакции. Открывается в браузере страница Кошелька. Данные о платеже передаются в GET параметрах: монета, количество, получатель, сообщение получателю.
- Открытие страницы браузера для обмена монеты. Открывается в браузере страница Кошелька. Данные об обмене передаются в GET параметрах: монеты, количество.
- Выдача "Minter Check" пользователю. Неизрасходованный чек запрашивается с Бекенда, либо предоставляется самим приложением.
- Открытие страницы браузера для активации "Minter Check". Открывается в браузере страница Кошелька. Чек передается в GET параметре.
Документацию по существующему API можно посмотреть тут: https://github.com/MinterTeam/minter-wiki/wiki/Minter-Node-JSON-API
Документацию по "Minter Check" можно изучить тут, но большинство работы будет выполнять Кошелек: https://github.com/MinterTeam/minter-wiki/wiki/Minter-Check
Кошелек - это JS приложение, которое коннектится к нодам и бекенду и позволяет пользователям:
- Отправлять монеты
- Обменивать монеты
- Активировать чеки
- Смотреть историю транзакций и баланс
- Привязывать email, телефон, ник к адресу кошелька