Требования к функции депозита криптовалюты (PRD)
Обзор проекта
Цель этой функции — предоставить администраторам систему для управления несколькими адресами депозитов криптовалюты и обеспечить динамическое назначение неиспользуемых адресов пользователям во время процесса депозита. Администраторы могут загружать и управлять несколькими адресами депозитов через бэкенд. Когда пользователь выбирает соответствующую криптовалюту, система назначит действительный адрес из базы данных. Период действия адреса депозита может быть установлен администратором.
Требования к функциональности системы:
Администраторы вручную загружают адреса депозитов и управляют несколькими адресами кошельков.
Когда пользователь выбирает криптовалюту, система случайным образом назначит неиспользуемый адрес из пула действительных адресов.
Адрес депозита будет назначен пользователю, и его срок действия установит администратор. После успешного депозита или истечения времени адрес автоматически освободится для использования другими пользователями.
После завершения депозита баланс пользователя будет автоматически обновлен.
Функциональные требования
2.1 Загрузка и управление адресами кошельков
Описание требования:
Администраторы могут вручную загружать несколько адресов депозитов криптовалюты через бэкенд, поддерживая основные криптовалюты и сети.
Адреса включают тип криптовалюты, сеть, адрес депозита и срок действия.
Администраторы могут выбирать предопределенные криптовалюты и сети из выпадающего списка, вручную загружать адреса и устанавливать их сроки действия.
Срок действия каждого адреса устанавливается администратором (например, 10 минут, 30 минут), чтобы избежать длительного хранения неиспользуемых адресов.
Вся информация о адресах будет храниться в базе данных, и администраторы смогут просматривать статус и использование каждого адреса.
2.2 Назначение адреса и депозит пользователя
Описание требования:
Когда пользователь выбирает криптовалюту, система случайным образом назначит действительный адрес из базы данных для депозита.
Срок действия адреса устанавливается администратором (например, 10 минут). В течение этого периода адрес может использоваться только одним пользователем.
Система будет отслеживать получение депозита по адресу, и после подтверждения средств баланс USD пользователя будет обновлен.
2.3 Правила занятости адресов
Описание требования:
Каждый адрес может использоваться только одним пользователем. Если адрес назначен пользователю, он не может быть использован другим пользователем в течение срока действия.
Система пометит адрес как «занят» и запретит другим пользователям его выбирать.
Если срок действия адреса истекает и он не был использован, система автоматически освободит его и пометит как «доступный».
2.4 Истечение срока действия и освобождение адреса
Описание требования:
Система автоматически освободит адрес после истечения его срока действия. Если адрес не был использован, он перейдет в статус «доступен».
Освобожденные адреса снова войдут в пул адресов и будут готовы к назначению следующему пользователю.
2.5 Мониторинг депозита и обновление баланса
Описание требования:
Когда пользователь инициирует депозит, система будет отслеживать статус в блокчейне, чтобы определить, получены ли средства по адресу.
После подтверждения депозита платформа конвертирует сумму депозита в USD по текущему курсу и обновляет баланс пользователя.
Система должна обеспечить точность суммы депозита и предотвратить потерю средств или ошибочные операции.
2.6 Запись и управление адресами
Описание требования:
Система будет регистрировать использование каждого адреса депозита, включая адрес, тип криптовалюты, сеть, статус, назначенного пользователя, срок действия, время депозита и т.д.
Администраторы смогут просматривать статус каждого адреса (например, занят/доступен) и просматривать исторические записи депозитов.
Администраторы могут вручную управлять адресами, например, удалять или изменять их срок действия.
2.7 Функции администратора
Описание требований:
Администраторы могут выполнять следующие операции на панели управления:
Создание адресов кошельков: вручную загружать новые адреса депозитов криптовалюты и связывать их с криптовалютой и сетью.
Установка срока действия: устанавливать срок действия для каждого адреса депозита и при необходимости динамически его корректировать.
Просмотр статуса использования адреса: просматривать статус каждого адреса, включая занятость, срок действия и статус депозита.
Просмотр исторических записей депозитов: просматривать исторические записи депозитов для каждого адреса для облегчения управления и отслеживания.
2.8 Двухфакторная аутентификация (2FA) для добавления, изменения и удаления адресов
Описание требований:
Для повышения безопасности любые добавление, изменение или удаление адреса должны проходить подтверждение двухфакторной аутентификацией (2FA).
При добавлении, изменении или удалении адреса депозитов система потребует подтверждение 2FA.
Подтверждение 2FA можно выполнить через SMS, email или приложение (например, Google Authenticator).
Операция будет выполнена только после успешного подтверждения 2FA. Если проверка не пройдена, операции с адресами (добавление, изменение или удаление) не допускаются.
Проектирование системы
3.1 Дизайн кеша Redis
Дизайн кеша:
Ключ кеша:
Используйте wallet:<address> в качестве ключа кеша для хранения информации о статусе каждого адреса (например, доступен, занят, истек).
Истечение кеша:
3.2 Мониторинг депозита и рабочий процесс системы
Рабочий процесс мониторинга депозита:
Когда пользователь выбирает криптовалюту и инициирует депозит, система случайным образом назначит действительный адрес.
Система установит срок действия адреса, и он может использоваться только одним пользователем в течение этого времени.
Система будет отслеживать депозит через механизм прослушивания блокчейна.
После получения средств система подтвердит, что адрес принадлежит пользователю, конвертирует сумму депозита в USD по текущему курсу и обновит баланс пользователя.
Рабочий процесс освобождения адреса:
Если срок действия адреса истекает без использования, система автоматически освободит его и пометит как «доступен».
Освобожденный адрес снова войдет в пул адресов для переназначения следующему пользователю.
Нефункциональные требования
4.1 Требования к производительности
Система должна обладать высокой способностью обработки большого количества одновременных операций, особенно в периоды пиковых депозитов пользователей, обеспечивая быструю работу по назначению, мониторингу и освобождению адресов.
Система должна обеспечивать плавный пользовательский опыт во время депозита и избегать задержек, которые могут негативно сказаться на пользовательском опыте.
4.2 Требования к безопасности
Все операции, связанные с адресами депозитов, должны проходить проверку авторизации, чтобы предотвратить просмотр или изменение кошельков неавторизованными пользователями.
Чувствительные операции, такие как использование адресов депозитов и мониторинг депозитов, должны быть зашифрованы для обеспечения безопасности средств пользователей.
Процесс депозита, включая перемещение средств и конвертацию курса, должен быть строго проверен и зашифрован, чтобы предотвратить потерю средств или ошибочные операции.
Добавление, изменение и удаление адресов должны подтверждаться через 2FA для обеспечения безопасности управления адресами.
4.3 Масштабируемость
Примечание:
Этот PRD предназначен для понимания требований. Указанный здесь контент носит справочный характер.