P2P-File-Sharing

module
v0.0.0-...-1904e56 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 18, 2025 License: MIT

README

🔄 MeowShare: Децентрализованный обмен файлами

MeowShare License Go Version

Безопасный обмен файлами через децентрализованную P2P сеть

TypeNinja Preview

📋 Содержание

🚀 Возможности

  • 🌐 Полностью децентрализованная сеть - работает без центральных серверов на базе libp2p и IPFS DHT
  • 🔐 Шифрование файлов - все файлы шифруются перед отправкой с использованием AES-256
  • 🔄 Автоматическое обнаружение пиров - через распределённую хеш-таблицу IPFS
  • 🚪 Работа через NAT и файрволы - благодаря технологиям hole punching и relay
  • 📱 Удобные интерфейсы - веб-интерфейс и командная строка
  • 💻 Кроссплатформенность - поддержка Windows, Linux и macOS

🔧 Требования

  • Go 1.21 или выше
  • Git
  • 64-битная операционная система

📥 Установка

# Клонирование репозитория
git clone https://github.com/mrMeowMurk/P2P-File-Sharing
cd P2P-File-Sharing

# Установка зависимостей
go mod download

🛠️ Сборка

# Сборка CLI-клиента
go build -o bin/p2p-share.exe ./cmd/cli/

# Сборка веб-интерфейса
go build -o bin/p2p-web.exe ./cmd/web/

📝 Использование

💻 Через batch-скрипт (Windows)
# Запуск ноды (держите это окно открытым для работы P2P сети)
start.bat node

# Отправка файла в сеть
start.bat share <путь-к-файлу>

# Скачивание файла из сети
start.bat download <hash> <путь-для-сохранения>

# Запуск веб-интерфейса
start.bat web
🖥️ CLI интерфейс напрямую
# Запуск ноды
bin/p2p-share.exe start --share-dir="%USERPROFILE%\.p2p-share" --key-file="%USERPROFILE%\.p2p-share\key"

# Отправка файла
bin/p2p-share.exe share <путь-к-файлу> --share-dir="%USERPROFILE%\.p2p-share" --key-file="%USERPROFILE%\.p2p-share\key"

# Скачивание файла
bin/p2p-share.exe download <hash> <путь-для-сохранения> --share-dir="%USERPROFILE%\.p2p-share" --key-file="%USERPROFILE%\.p2p-share\key"
🌐 Веб-интерфейс
# Запуск веб-сервера
bin/p2p-web.exe --share-dir="%USERPROFILE%\.p2p-share" --key-file="%USERPROFILE%\.p2p-share\key"

После запуска веб-интерфейс доступен по адресу: http://localhost:8080

📸 Скриншоты

Скриншоты веб-интерфейса будут добавлены позже

🔒 Безопасность

  • 🔑 Шифрование AES-256 - все файлы шифруются перед передачей по сети
  • 🔄 End-to-end шифрование - данные доступны только отправителю и получателю
  • 💾 Защищённое хранение - файлы хранятся в зашифрованном виде
  • 🔍 Проверка целостности - проверка хеш-сумм файлов

🏗️ Архитектура

P2P-File-Sharing/
├── cmd/                   # Точки входа приложения
│   ├── cli/               # Командный интерфейс
│   └── web/               # Веб-интерфейс
├── internal/              # Внутренние пакеты
│   ├── network/           # P2P сетевой слой (libp2p)
│   ├── crypto/            # Модуль шифрования
│   └── core/              # Бизнес-логика
├── web/                   # Файлы веб-интерфейса
│   └── templates/         # HTML шаблоны
├── bin/                   # Скомпилированные бинарные файлы
├── start.bat              # Скрипт запуска для Windows
└── LICENSE                # Лицензия MIT

📊 Как это работает

  1. Шифрование: Файлы шифруются локально с использованием AES-256
  2. Публикация: Информация о доступности файла публикуется в DHT
  3. Обнаружение: Другие пользователи могут найти файл по его хешу
  4. Передача: Файл передается напрямую между пирами
  5. Расшифровка: После получения файл расшифровывается

💬 Возможные вопросы

Работает ли приложение без интернета? Приложение может работать в локальной сети без доступа в интернет, но для обнаружения пиров в глобальной сети требуется подключение к интернету.
Как быстро происходит передача файлов? Скорость передачи зависит от пропускной способности сети между пирами. Файлы передаются напрямую между пользователями, что обеспечивает максимально возможную скорость.
Безопасно ли использовать приложение? Да, все файлы шифруются с использованием сильных криптографических алгоритмов перед передачей, что обеспечивает высокий уровень безопасности.

📜 Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для получения дополнительной информации.

📞 Поддержка

Если у вас возникли вопросы или проблемы тогда:

  • Напишите в Telegram: @MrMeowMurk

Made with ❤️ by MeowMurk

Directories

Path Synopsis
cmd
cli command
web command
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL