Ядро блокчейн-кошелька Multy. Спикер: Василий Немков
Тема доклада - техническая составляющая блокчейн-кошелька Multy, о которой вы узнаете непосредственно от CTO проекта Василия Немкова.
Проект Multy
Multy - мульти-криптовалютный мобильный кошелек. Данный кошелек разрабатывается следуя идеологии блокчейна:
- Полная открытость
- Безопасность
- Мобильный кошелек должен быть быстрым и легким в использовании
Архитектура Multy
На сегодняшний день архитектура Multy выглядит следующим образом:
Более подробно об архитектуре можно узнать https://golos.io/ru--blokcheijn/@cyberevents/kriptokoshelyok-multy-protiv-blokcheina-spiker-vadim-makovskii
Данная лекция посвящена одному из компонентов структуры (на изображении - шестиугольник С++) - библиотеке Multy Core.
Обзор библиотеки Multy Core:
- Написана на языке С/С++11
- Построена на Cmake - современная автоматизированная система, позволяющая легко строить проекты
- Использует сторонние библиотеки
- Генерирует мнемоник фразу - последовательность слов, которая кодирует приватный ключ
- Генерирует приватные и публичные ключи
- Подписывает транзакции
Статистика библиотеки
Библиотека multy_core насчитывает 150 файлов, 17 000 строк в которых компилируется примерно 680 Kb
multy_test - 30 файлов, 6 000 строк и 2,8 Mb
third-parties - 294 файла, 56 000 строк, 720 Kb
Структура Multy Core
- API проверяет аргументы, обрабатывает ошибки, валидирует определенную информацию и т.п.
- API предоставляет доступ к функционалу mnemomic и блокчейнов Биткоин, Эфириум и Голос
- Internals cвязывает сторонние API с бизнес-логикой блокчейнов
- Сторонние библиотеки:
seep256k1 - библиотека публичных и приватных ключей от Bitcoin Core, которая используется для Биткоин, Эфириум и Голос
libwally - core - генерирует seed фразу, мнемоники, деривацию ключей и т.п.
keccak - tiny* - модифицированная версия для создания SHA-3 хешей
mini_gmp - библиотека, которая занимается большими целыми
- Тесты - TestClient, multy_test, gtest
Реализации Биткоин, Эфириум, Голос
Реализация Биткоин заняла 7 недель и составила 1137 строк
Эфириум - 3 недели и 759 строк
Голос - 3 недели и 745 строк
Реализация протокола блокчейн с точки зрения библиотеки
Facade валидирует адреса и занимается специфическими блокчейн процессами
HD аккаунт генерирует приватные ключи
В аккаунте находится информация относительно генерации адресов и т.п.
Транзакции очень различаются в блокчейнах, что затрудняет процесс создания единого интерфейса
Но, все транзакций имеют общие параметры:
- Источник, откуда исходят средства
- Получатель средств
- Информация о комиссии
- Сериализация
Данная информация скрыта за интерфейсом Properties
Добавление новых протоколов
Диаграмма подробно иллюстрирует стандартную схему добавления новых протоколов.
Проект Multy развивается и в будущем планируется:
- Внедрение CI/CD
- Добавление новых протоколов, форков
- Облегчение интеграции клиентам
- Добавление токенов
Дополнительную информацию о проекте можно узнать из официальных источников: