Skip to content

Instantly share code, notes, and snippets.

@danil-lashin
Created February 19, 2018 07:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danil-lashin/bc850e78abe962b29c4c2b8895a2ab7a to your computer and use it in GitHub Desktop.
Save danil-lashin/bc850e78abe962b29c4c2b8895a2ab7a to your computer and use it in GitHub Desktop.
Minter

Архитектура Minter

Minter состоит из 5 основных частей:

  • Network (набор Нод)
  • Connector
  • Backend
  • SDK
  • Wallet

Network

Network - это основа проекта. Набор нод, которые постоянно обрабатывают транзакции и генерируют блоки, тем самым поддерживая блокчейн. Ноды постоянно общаются между собой, а так же имеют API для внешнего доступа.

Connector

Коннектор выступает в роли балансировщика. Он ищет валидную ноду с наименьшей нагрузкой и перенаправляет запрос к ней.

Backend

На Бекенде хранится промежуточная информация об аккаунтах пользователей Minter, а именно:

  • Привязки номеров телефонов, email'ов, никнеймов к блокчейн адресу
  • Неизрасходованные чеки
  • Хранение зашифрованных приватных ключей пользователей
  • Платежный API (на будущее)

SDK

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

Wallet

Кошелек - это JS приложение, которое коннектится к нодам и бекенду и позволяет пользователям:

  • Отправлять монеты
  • Обменивать монеты
  • Активировать чеки
  • Смотреть историю транзакций и баланс
  • Привязывать email, телефон, ник к адресу кошелька

Полезные материалы про блокчейн

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment