Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
RedTeamCoin — Red Team Coin для операций крипто-майнинга. | Kitploit
Инструменты/GitHubGitHub/xyplex3/redteamcoin
ЭксплуатацияКриптографияТестирование на ПроникновениеКомандование и УправлениеRed TeamingРазработка Полезной Нагрузки
GitHubxyplex3/redteamcoin

RedTeamCoin

Red Team Coin для операций крипто-майнинга.

Репозиторий
2525 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

RedTeamCoin

RedTeamCoin Logo

License Pre-Commit Security Scanning Release Test & Build Verification Windows Miner Test


RedTeamCoin — это реализация пула для майнинга криптовалюты на основе блокчейна, предназначенная для авторизованного тестирования безопасности и операций красных команд. Написанный на Go с поддержкой клиентов на Java, он имитирует реальные атаки криптомайнинга, помогая организациям оценить свои возможности обнаружения и количественно оценить потенциальный ущерб от операций майнинга со стороны злоумышленников.

Этот инструмент позволяет командам безопасности безопасно и легально демонстрировать сценарии атак криптомайнинга на корпоративных системах, создавать всесторонние отчеты о воздействии и проверять средства защиты — и все это в контролируемой среде с использованием изолированного, непубличного блокчейна.

Оглавление

  • Обзор
  • Возможности
  • Быстрый старт
  • Как это работает
  • Использование
    • Запуск сервера
    • Запуск майнера
    • Подключение к удаленным серверам
  • GPU майнинг
  • Конфигурация
  • API Справочник
  • Архитектура
  • Разработка
  • Участие
  • Устранение неполадок
  • Документация
  • Лицензия
  • Благодарности

Обзор

Зачем использовать RedTeamCoin?

  • Продемонстрировать реальное влияние атак криптоджекинга
  • Протестировать и проверить системы мониторинга и обнаружения безопасности
  • Создать количественные оценки ущерба для отчетов руководству
  • Безопасно симулировать операции майнинга без подключения к публичным блокчейнам

Компоненты системы:

  • Майнинг-пул сервер — управляет блокчейном и координирует распределение работы
  • Клиентские майнеры — клиенты майнинга на CPU/GPU (реализации на Go и Java)
  • Веб-панель управления — мониторинг в реальном времени, управление и статистика
  • Инструменты анализа — создание всесторонних отчетов об оценке ущерба

Возможности

  • Реализация блокчейна: Собственный блокчейн на основе proof-of-work с настраиваемой сложностью
  • Майнинг-пул сервер: Управляет несколькими майнерами и распределением работы через gRPC
  • Клиентские майнеры: Автоматизированные клиенты майнинга (Go и Java) с записью IP-адреса и имени хоста
  • Автономный Java майнер: Десктопный майнер с графическим интерфейсом
  • Java gRPC клиент: Безголовый gRPC клиент для серверов и автоматизации
  • Управление майнерами на стороне сервера: Приостановка, возобновление, ограничение использования CPU и удаление майнеров удаленно
  • Ограничение CPU: Ограничение использования CPU майнером от 0 до 100% для управления ресурсами
  • Поддержка GPU майнинга: Поддержка CUDA и OpenCL для ускоренного майнинга на GPU
  • Гибридный майнинг: Одновременный майнинг на CPU и GPU для максимальной производительности
  • Веб-панель управления: Мониторинг майнеров, статистики и блокчейна в реальном времени с кнопками управления
  • Аутентификация REST API: Безопасная аутентификация на основе токенов для конечных точек API
  • Шифрование gRPC клиент-сервер: Опциональное TLS шифрование для защищенных gRPC соединений между клиентом и сервером
  • Двойное отслеживание IP: Запись как IP-адресов, сообщаемых клиентом, так и обнаруженных сервером
  • Статистика CPU и GPU: Комплексное отслеживание использования ресурсов и отчетность
  • Protocol Buffers: Эффективное взаимодействие клиент-сервер с помощью protobuf/gRPC
  • Автоматическое завершение: Майнеры автоматически отключаются и самоудаляются при удалении с сервера

Быстрый старт

Запустите RedTeamCoin менее чем за 5 минут:

Предварительные требования

  • Go версии 1.21 или новее
  • Компилятор Protocol Buffer (protoc)

Ubuntu/Debian:```bash sudo apt update sudo apt install -y golang-go protobuf-compiler

root@kitploit:~
**macOS:**```bash
brew install go protobuf

Windows:

  • Установите Go с https://golang.org/dl/
  • Установите protoc с https://github.com/protocolbuffers/protobuf/releases

Установка```bash

Clone the repository

git clone https://github.com/xyplex3/RedTeamCoin.git cd RedTeamCoin

Install dependencies

make install-tools make deps

Build server and client

make build

root@kitploit:~
### Проверка

Убедитесь, что сборка завершена успешно:```bash
ls -lh bin/
# Expected output: server and client binaries (1-5 MB each)

./bin/server --help
# Expected output: Usage information for the server

Запуск вашего первого майнинг-пула

1. Запустите сервер:```bash make run-server

root@kitploit:~
Вы должны увидеть вывод, похожий на:```text
RedTeamCoin Mining Pool Server
Authentication Token: abc123def456...
Dashboard URL: http://localhost:8080?token=abc123def456...
gRPC server listening on port 50051

2. Запустить майнер (в новом терминале):```bash make run-client

root@kitploit:~
Вы должны увидеть активность майнинга:```text
Connected to mining pool at localhost:50051
Registered as miner: miner-hostname-1234567890
Mining block #1... Hash rate: 2.5 MH/s
Block found! Nonce: 98765, Hash: 000000ab1cd...

3. Просмотр панели управления:

Откройте URL из шага 1 в вашем браузере или перейдите по адресу:```text http://localhost:8080?token=YOUR_AUTH_TOKEN_HERE

root@kitploit:~
Вы увидите статистику в реальном времени, включая активных майнеров, хэшрейты и добытые блоки.

**Примечание:** Сервер прослушивает все сетевые интерфейсы — замените `localhost` на IP-адрес вашего сервера для удаленного доступа.

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

Майнинг-пул работает на основе механизма консенсуса proof-of-work:

1. Сервер инициализирует блокчейн с генезис-блоком
2. Майнеры подключаются через gRPC и регистрируются с IP/именем хоста
3. Сервер распределяет задания (шаблоны блоков)
4. Майнеры вычисляют SHA-256 хэши для поиска валидных nonce
5. Майнеры отправляют решения при достижении целевой сложности
6. Сервер проверяет и добавляет блоки в блокчейн
7. Панель управления отображает статистику в реальном времени и активность майнеров

Каждый блок требует нахождения хэша с определённым количеством ведущих нулей (настраиваемая сложность). Майнеры получают 50 RTC за добытый блок.

### Поток данных```text
Client Miner                    Server
    |                              |
    |--RegisterMiner(IP,Hostname)->|
    |<--RegistrationResponse-------|
    |--GetWork()------------------>|
    |<--WorkResponse(Block)--------|
    | [Mining: compute hashes]     |
    |--SubmitWork(nonce,hash)----->|
    |                              | [Validate proof-of-work
    |                              |  and add block to chain]
    |<--SubmissionResponse---------|
    |--Heartbeat(stats)----------->|
    |<--HeartbeatResponse----------|

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

Запуск сервера

HTTP (по умолчанию):```bash ./bin/server

root@kitploit:~
- gRPC сервер: порт **50051**
- Веб-панель: **http://localhost:8080**

**HTTPS/TLS (Рекомендуется):**```bash
# Generate certificates (one time)
./generate_certs.sh

# Start with TLS
RTC_SERVER_TLS_ENABLED=true ./bin/server
  • gRPC сервер: порт 50051
  • Веб-панель: https://localhost:8443
  • HTTP перенаправление: http://localhost:8080

Примечание #1: При использовании HTTPS браузеры покажут предупреждение безопасности о самозаверенных сертификатах. Нажмите "Дополнительно" → "Перейти на localhost".

Примечание #2: Веб-панель и gRPC сервер будут работать на всех интерфейсах сервера и могут использоваться вместо localhost.

Запуск майнера

Go клиент (нативный бинарник)

Основное использование:```bash ./bin/client

root@kitploit:~
**Запуск нескольких майнеров:**
Откройте дополнительные терминалы и выполните `./bin/client` в каждом.

#### Java Майнеры

RedTeamCoin предоставляет две реализации майнеров на Java:

##### Java gRPC Клиент (Безголовый)

Производственный gRPC клиент для серверов и автоматизации.

**Предварительные требования:**

- Java 11 или новее
- Maven (только для сборки)

**Сборка с помощью Makefile:**```bash
make build-java-client

Или собрать вручную:```bash cd java-client mvn clean package

root@kitploit:~
**Запуск:**```bash
# Connect to localhost
java -jar bin/redteamcoin-miner-client.jar

# Connect to remote server
java -jar bin/redteamcoin-miner-client.jar -server 192.168.1.100:50051

Особенности:

  • Протокол gRPC (совместим с клиентом Go)
  • Работа в безголовом режиме (без GUI)
  • Управление сервером (пауза/возобновление/ограничение)
  • Автоматическое переподключение
  • Самоудаление по команде сервера
Автономный майнер на Java (GUI)

Настольный майнер с графическим интерфейсом.

Необходимые компоненты:

  • Java 21 или новее
  • Maven (только для сборки)

Сборка с помощью Makefile:```bash make build-java-standalone

root@kitploit:~
**Или соберите вручную:**```bash
cd java-standalone
mvn clean package

Запуск:```bash

GUI mode (default)

java -jar bin/redteamcoin-miner-standalone.jar

CLI mode

java -jar bin/redteamcoin-miner-standalone.jar --pool localhost:50051

root@kitploit:~
**Особенности:**

- Графический интерфейс рабочего стола
- Визуальное отображение статистики
- Простой протокол JSON/Socket
- Встраиваемый в приложения

##### Сборка всех Java Miners```bash
make build-java-all

Преимущества Java Miners:

  • Один JAR-файл, легко распространять
  • Кроссплатформенность (Windows, Linux, macOS)
  • Не требуется компиляция на целевых системах
  • Требуется только среда выполнения Java (JRE)

Смотрите java-client/README.md для полной документации Java gRPC клиента.

Подключение к удаленным серверам

По умолчанию клиенты подключаются к localhost:50051. Для подключения к удаленному серверу:

Использование флага командной строки (рекомендуется):```bash ./bin/client -server 192.168.1.100:50051 ./bin/client -s mining-pool.example.com:50051

root@kitploit:~
**Использование переменной окружения:**```bash
export RTC_CLIENT_SERVER_ADDRESS=192.168.1.100:50051
./bin/client

Приоритет: Флаг командной строки > Переменная окружения > По умолчанию (localhost:50051)

GPU-майнинг

RedTeamCoin поддерживает майнинг с ускорением GPU для NVIDIA (CUDA) и AMD/Intel (OpenCL). GPU-майнинг в 100–400 раз быстрее и значительно более энергоэффективен, чем CPU-майнинг.

Установка GPU

NVIDIA CUDA:```bash sudo apt install cuda-toolkit make build-cuda

root@kitploit:~
**AMD/Intel OpenCL:**```bash
sudo apt install ocl-icd-opencl-dev
make build-opencl

Автоопределение:```bash make build-gpu # Automatically detects and builds for available GPU

root@kitploit:~
### Использование GPU```bash
# Auto-detect GPU (default)
./bin/client

# Force CPU only
RTC_CLIENT_MINING_GPU_ENABLED=false ./bin/client

# Hybrid mode (CPU + GPU)
RTC_CLIENT_MINING_HYBRID_MODE=true ./bin/client

# GPU with remote server
./bin/client -server mining-pool.example.com:50051

Сравнение производительности

Примечание: Майнинг на GPU в 100–150 раз энергоэффективнее майнинга на CPU.

Тестирование функциональности GPU```bash

Test GPU detection

./bin/client 2>&1 | grep -i "gpu|cuda|opencl"

Force CPU mining (verify fallback works)

RTC_CLIENT_MINING_GPU_ENABLED=false ./bin/client

Force GPU mining (if available)

RTC_CLIENT_MINING_GPU_ENABLED=true ./bin/client

Test hybrid CPU+GPU mode

RTC_CLIENT_MINING_HYBRID_MODE=true ./bin/client

root@kitploit:~
См. [docs/GPU_MINING.md](https://github.com/xyplex3/redteamcoin/blob/HEAD/docs/GPU_MINING.md) для полного руководства по майнингу на GPU.

## Конфигурация

RedTeamCoin использует [Viper](https://github.com/spf13/viper) для гибкого управления
настройками. Параметры могут быть заданы через переменные окружения, YAML-файлы конфигурации или
флаги командной строки со следующим приоритетом:

**Флаги командной строки** > **Переменные окружения** > **Файлы конфигурации** > **Значения по умолчанию**

### Настройка

**Инициализация файлов конфигурации:**```bash
# Initialize both server and client configs
make init-config

# Or initialize individually
make init-server-config  # Creates server-config.yaml
make init-client-config  # Creates client-config.yaml

Это копирует примеры YAML-файлов в вашу рабочую директорию для редактирования. Вы также можете помещать конфигурационные файлы в ~/.rtc/ или /etc/rtc/.

Переопределение с помощью переменных окружения:```bash

Environment variables take precedence over config files

export RTC_SERVER_MINING_DIFFICULTY=8 export RTC_CLIENT_SERVER_ADDRESS=pool.example.com:50051 ./bin/server

root@kitploit:~
### Переменные окружения

Все переменные окружения используют префиксы: `RTC_SERVER_` для сервера, `RTC_CLIENT_` для клиента.

**Конфигурация сервера:**

| Переменная                              | Описание                        | По умолчанию       |
| --------------------------------------- | ------------------------------- | ------------------ |
| `RTC_SERVER_NETWORK_GRPC_PORT`          | Порт gRPC сервера               | `50051`            |
| `RTC_SERVER_NETWORK_API_PORT`           | Порт HTTPS API                  | `8443`             |
| `RTC_SERVER_NETWORK_HTTP_PORT`          | Порт HTTP веб-интерфейса        | `8080`             |
| `RTC_SERVER_MINING_DIFFICULTY`          | Сложность майнинга (1-64)       | `6`                |
| `RTC_SERVER_MINING_BLOCK_REWARD`        | Награда за блок в монетах       | `50`               |
| `RTC_SERVER_TLS_ENABLED`                | Включить HTTPS/TLS              | `false`            |
| `RTC_SERVER_TLS_CERT_FILE`              | Путь к сертификату TLS          | `certs/server.crt` |
| `RTC_SERVER_TLS_KEY_FILE`               | Путь к закрытому ключу TLS      | `certs/server.key` |
| `RTC_SERVER_API_READ_TIMEOUT`           | Таймаут чтения API              | `15s`              |
| `RTC_SERVER_API_WRITE_TIMEOUT`          | Таймаут записи API              | `15s`              |
| `RTC_SERVER_API_IDLE_TIMEOUT`           | Таймаут бездействия API         | `60s`              |
| `RTC_SERVER_LOGGING_UPDATE_INTERVAL`    | Интервал обновления статистики  | `30s`              |
| `RTC_SERVER_LOGGING_FILE_PATH`          | Путь к файлу журнала            | `pool_log.json`    |
| `RTC_AUTH_TOKEN` *(legacy)*             | Пользовательский токен аутентификации | Автоматически сгенерирован |

**Конфигурация клиента:**

| Переменная                                        | Описание                                  | По умолчанию       |
| ------------------------------------------------- | ----------------------------------------- | ------------------ |
| `RTC_CLIENT_SERVER_ADDRESS`                       | Адрес пул-сервера (хост:порт)             | `localhost:50051` |
| `RTC_CLIENT_SERVER_TLS_ENABLED`                   | Включить TLS для gRPC соединения          | `false`           |
| `RTC_CLIENT_SERVER_TLS_INSECURE_SKIP_VERIFY`      | Пропустить проверку сертификата           | `true`            |
| `RTC_CLIENT_SERVER_TLS_CA_CERT_FILE`              | Путь к файлу сертификата ЦС               | `""`              |
| `RTC_CLIENT_MINING_GPU_ENABLED`                   | Включить майнинг на GPU                   | `true`            |
| `RTC_CLIENT_MINING_HYBRID_MODE`                   | Включить одновременный майнинг CPU+GPU    | `false`           |
| `RTC_CLIENT_MINING_AUTO_DELETE`                   | Автоудаление при завершении               | `true`            |
| `RTC_CLIENT_GPU_NONCE_RANGE`                      | Диапазон nonce для пакета GPU             | `500000000`       |
| `RTC_CLIENT_GPU_CPU_START_NONCE`                  | Начальный nonce CPU (избежать перекрытия с GPU) | `5000000000`      |
| `RTC_CLIENT_NETWORK_HEARTBEAT_INTERVAL`           | Интервал обновления статуса               | `30s`             |
| `RTC_CLIENT_NETWORK_RETRY_INTERVAL`               | Задержка повторного подключения           | `10s`             |
| `RTC_CLIENT_NETWORK_MAX_RETRY_TIME`               | Максимальная длительность повторов        | `5m`              |
| `RTC_CLIENT_BEHAVIOR_WORKER_UPDATE_INTERVAL`      | Интервал отчета о работе воркера          | `100000`          |
| `POOL_SERVER` *(legacy)*                          | Адрес удаленного сервера                  | `localhost:50051` |
| `GPU_MINING` *(legacy)*                           | Включить/отключить майнинг на GPU         | Автоопределение   |
| `HYBRID_MINING` *(legacy)*                        | Включить майнинг на CPU+GPU               | `false`           |

### Примеры файлов конфигурации

**Конфигурация сервера** (`server-config.yaml`):```yaml
network:
  grpc_port: 50051
  api_port: 8443
  http_port: 8080
mining:
  difficulty: 8
  block_reward: 100
tls:
  enabled: true
  cert_file: /etc/rtc/certs/server.crt
  key_file: /etc/rtc/certs/server.key
logging:
  update_interval: 30s
  file_path: /var/log/rtc/pool.json

Конфигурация клиента (client-config.yaml):```yaml server: address: pool.example.com:50051 tls: enabled: false insecure_skip_verify: true ca_cert_file: "" mining: gpu_enabled: true hybrid_mode: false auto_delete: true gpu: nonce_range: 1000000000 cpu_start_nonce: 5000000000 network: heartbeat_interval: 30s retry_interval: 10s max_retry_time: 5m

root@kitploit:~
### Аутентификация

Все конечные точки API (кроме главной страницы панели управления) требуют аутентификации с помощью Bearer-токена.

**Автоматически сгенерированный токен:**
Сервер генерирует безопасный токен при запуске и отображает его в консоли.

**Пользовательский токен:**```bash
export RTC_AUTH_TOKEN="your-secret-token"
./bin/server

Производительность

Ожидаемое время майнинга зависит от производительности ЦП и удачи:

  • Сложность 4: ~1-10 секунд/блок (один ЦП)
  • Сложность 5: ~10-60 секунд/блок
  • Сложность 6: ~1-10 минут/блок

Конфигурация HTTPS```bash

Generate certificates

./generate_certs.sh

Start with HTTPS using new config system

export RTC_SERVER_TLS_ENABLED=true export RTC_AUTH_TOKEN="my-secure-token" ./bin/server

Custom certificates

export RTC_SERVER_TLS_CERT_FILE="/path/to/cert.pem" export RTC_SERVER_TLS_KEY_FILE="/path/to/key.pem" ./bin/server

root@kitploit:~
См. [docs/TLS_SETUP.md](https://github.com/xyplex3/redteamcoin/blob/HEAD/docs/TLS_SETUP.md) для подробной настройки TLS.

## Справочник по API

### REST API конечные точки

**Открытые конечные точки:**

- `GET /` - Веб-панель управления (HTML)
- `GET /blocks` - Страница просмотра всех блоков (HTML)

**Аутентифицированные конечные точки:**

- `GET /api/stats` - Статистика пула (JSON)
- `GET /api/miners` - Список всех майнеров (JSON)
- `GET /api/blockchain` - Полная блокчейн (JSON)
- `GET /api/blocks/{index}` - Информация о конкретном блоке (JSON)
- `GET /api/validate` - Проверка целостности блокчейна (JSON)
- `GET /api/cpu` - Статистика использования CPU и GPU (JSON)
- `POST /api/miner/pause` - Приостановить майнинг для конкретного майнера
- `POST /api/miner/resume` - Возобновить майнинг для конкретного майнера
- `POST /api/miner/delete` - Удалить майнера (автоматически завершает работу и самоудаляется)
- `POST /api/miner/throttle` - Установить процент ограничения CPU (0-100%)

### Примеры аутентификации

**cURL:**```bash
# Get stats
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:8080/api/stats

# Get miners
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:8080/api/miners

# Pause a miner
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"miner_id":"miner-hostname-1234567890"}' \
  http://localhost:8080/api/miner/pause

# Set CPU throttle to 50%
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"miner_id":"miner-hostname-1234567890","throttle_percent":50}' \
  http://localhost:8080/api/miner/throttle

# HTTPS (with self-signed cert)
curl -k -H "Authorization: Bearer YOUR_TOKEN" https://localhost:8443/api/stats

JavaScript:```javascript const token = "YOUR_TOKEN_HERE"; const headers = { Authorization: Bearer ${token} };

fetch("http://localhost:8080/api/stats", { headers }) .then((r) => r.json()) .then((data) => console.log(data));

root@kitploit:~
**Python:**```python
import requests

headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('http://localhost:8080/api/stats', headers=headers)
print(response.json())

gRPC Сервисы```protobuf

service MiningPool { rpc RegisterMiner(MinerInfo) returns (RegistrationResponse); rpc GetWork(WorkRequest) returns (WorkResponse); rpc SubmitWork(WorkSubmission) returns (SubmissionResponse); rpc Heartbeat(MinerStatus) returns (HeartbeatResponse); rpc StopMining(MinerInfo) returns (StopResponse); }

root@kitploit:~
## Архитектура

### Технологический стек

- **Язык**: Go 1.21+
- **RPC-фреймворк**: gRPC с Protocol Buffers
- **Веб-сервер**: стандартная библиотека Go net/http
- **Зависимости**: google.golang.org/protobuf, google.golang.org/grpc

## Разработка

### Команды сборки```bash
make proto                # Generate protobuf code
make build                # Build server and client (CPU only)
make build-gpu            # Build with GPU support (auto-detect)
make build-cuda           # Build with NVIDIA CUDA
make build-opencl         # Build with AMD/Intel OpenCL
make build-windows        # Cross-compile for Windows
make build-all-platforms  # Cross-compile for all platforms
make clean                # Remove build artifacts
make deps                 # Download dependencies
make init                 # Full initialization

Тестирование

RedTeamCoin включает всесторонние модульные тесты как для серверной, так и для клиентской части.

Запустить все тесты:```bash make test # Run all tests (server + client)

root@kitploit:~
**Запуск определенных тестовых наборов:**```bash
# Server tests
cd server && go test -v

# Client tests
cd client && go test -v -short

# With coverage
cd server && go test -cover
cd client && go test -cover

Test Coverage:

  • Сервер: 76 тестов, 66.3% покрытия

    • blockchain_test.go: 15 тестов - Проверка блокчейна, вычисление хеша, конкурентный доступ
    • pool_test.go: 26 тестов - Управление майнерами, распределение работы, статистика
    • grpc_server_test.go: 17 тестов - gRPC-эндпоинты, контроль майнеров, heartbeat
    • api_test.go: 18 тестов - REST API, аутентификация, операции с майнерами
  • Клиент: 41 тест, 16.2% покрытия

    • main_test.go: 24 теста - Логика майнинга, вычисление хеша, управление состоянием
    • gpu_test.go: 18 тестов - Обнаружение GPU, управление устройствами, статистика

Всего: 117 модульных тестов, охватывающих основную функциональность

Что тестируется:

  • Проверка и целостность блокчейна
  • Майнинг блоков и proof-of-work
  • Распределение работы в пуле майнинга
  • Регистрация и управление майнерами
  • Контроль майнеров на стороне сервера (пауза/возобновление/удаление/ограничение)
  • Протоколы связи gRPC
  • REST API-эндпоинты и аутентификация
  • Обнаружение и инициализация GPU
  • Вычисление хешрейта и статистика
  • Конкурентные операции и потокобезопасность
  • Обработка ошибок и крайние случаи

CI/CD Тестирование:

Все тесты запускаются автоматически при:

  • Pull requestах
  • Коммитах в основную ветку
  • Сборках релизов

См. .github/workflows/build-verification.yaml для конфигурации CI.

Кросс-компиляция

Windows (только CPU):```bash make build-windows

root@kitploit:~
Создаёт `bin/client.exe`

**Windows с OpenCL (поддержка GPU):**```bash
# Requires MinGW-w64 and Windows OpenCL SDK
make build-windows-opencl

Создает bin/client-windows-opencl.exe

Смотрите docs/WINDOWS_BUILD.md для получения полных инструкций по сборке для Windows, включая:

  • Сборки для нативных Windows с поддержкой GPU
  • Настройка кросс-компиляции из Linux
  • Конфигурация токена аутентификации
  • Руководство по устранению неполадок

Несколько платформ:```bash make build-all-platforms

root@kitploit:~
Создает:

- `client-linux-amd64` - Linux 64-бит
- `client-linux-arm64` - Linux ARM64
- `client-windows-amd64.exe` - Windows 64-бит
- `client-darwin-amd64` - macOS Intel
- `client-darwin-arm64` - macOS Apple Silicon

**Примечание:** Кросс-компилированные бинарные файлы работают только на CPU (CGO отключен), если не используется `build-windows-opencl`.

### Инструменты анализа

Создавайте отчеты об оценке ущерба для анализа влияния майнинга:```bash
make build-tools
./bin/generate_report -log pool_log.json

Отчёт включает:

  • Анализ потребления ресурсов
  • Оценка влияния на производительность
  • Ущерб инфраструктуре
  • Последствия для безопасности
  • Сводка финансовых последствий
  • Посистемный анализ
  • Рекомендации по устранению

Допущения по стоимости:

Преобразование отчётов:```bash

PDF

pandoc Report_Miner_Activity_from_to.md -o report.pdf

HTML

pandoc Report_Miner_Activity_from_to.md -o report.html

DOCX

pandoc Report_Miner_Activity_from_to.md -o report.docx

root@kitploit:~
**Use Cases:**

- Post-incident analysis
- Executive briefings
- Financial justification
- Compliance documentation
- Insurance claims
- Legal evidence

See [tools/README.md](https://github.com/xyplex3/redteamcoin/blob/HEAD/tools/README.md) for complete documentation.

## Troubleshooting

### Remote Connection Issues

**Testing connectivity:**```bash
# Test connection
ping <server_ip>
nc -zv <server_ip> 50051

# Check server (on server side)
lsof -i :50051
ss -an | grep 50051

Частые проблемы:

  • Проверьте адрес и порт сервера
  • Убедитесь, что сервер запущен
  • Проверьте правила брандмауэра (клиент и сервер)
  • Подтвердите сетевое подключение
  • Проверьте, что порт 50051 прослушивается

Проблемы с GPU-майнингом

Общие проблемы

Ошибки сборки:

  • Убедитесь, что установлен Go 1.21+
  • Запустите make deps для установки зависимостей
  • Запустите make install-tools для инструментов protoc

Отказ в соединении:

  • Проверьте, что сервер запущен
  • Проверьте, что порт не занят: lsof -i :50051
  • Проверьте настройки брандмауэра

Ошибки аутентификации:

  • Проверьте, что токен соответствует выводу сервера
  • Проверьте формат заголовка Authorization: Bearer TOKEN
  • Убедитесь, что токен включен в URL или заголовки

Документация

Руководства пользователя

  • docs/GPU_MINING.md - GPU-майнинг с CUDA и OpenCL
  • docs/WINDOWS_BUILD.md - Руководство по сборке в Windows (нативная и кросскомпиляция)
  • docs/TLS_SETUP.md - Конфигурация HTTPS/TLS
  • java-client/README.md - Java gRPC клиент (безголовый майнер)
  • tools/README.md - Инструменты анализа и отчеты о повреждениях

Технические ссылки

  • docs/WORKFLOWS.md - CI/CD workflows и процессы разработки

Примеры

  • docs/examples/ - Примеры отчетов и использования

Участие в разработке

Мы приветствуем вклад! Вот как начать:

  1. Сделайте форк репозитория
  2. Создайте ветку фичи: git checkout -b feature/amazing-feature
  3. Внесите изменения и добавьте тесты
  4. Запустите тестовый набор: make test
  5. Зафиксируйте изменения: git commit -m 'Add amazing feature'
  6. Отправьте в ветку: git push origin feature/amazing-feature
  7. Откройте Pull Request

Настройка разработки```bash

Clone your fork

git clone https://github.com/YOUR_USERNAME/RedTeamCoin.git cd RedTeamCoin

Install dependencies

make install-tools make deps

Run tests

make test

Build and test locally

make build make run-server # Terminal 1 make run-client # Terminal 2

root@kitploit:~
### Рекомендации по коду

- Следуйте стандартному форматированию Go (`gofmt`)
- Добавляйте модульные тесты для нового функционала
- Обновляйте документацию для изменений, видимых пользователю
- Убедитесь, что все проверки CI проходят перед отправкой PR

## Примечание по безопасности

Это **демонстрационный/образовательный проект** для авторизованного тестирования безопасности
и операций красных команд. Он предназначен для:

- Авторизованных заданий по тестированию на проникновение
- Проверки контроля безопасности
- Оценки возможностей обнаружения
- Образовательных и учебных целей

Этот инструмент не предназначен для использования в производственной среде в качестве реальной криптовалюты и
не имеет многих функций, необходимых для производственной системы (криптографические подписи,
кошельки, проверка транзакций, сетевой консенсус и т.д.).

**Используйте только с явного разрешения на системах, которыми вы владеете или имеете право
тестировать.**

## Лицензия

Этот проект лицензирован в соответствии с GNU General Public License v3.0 - см.
файл [LICENSE](https://github.com/xyplex3/redteamcoin/blob/HEAD/LICENSE) для подробностей.

## Благодарности

**Создатели:**

- Питер Греко ([@Xyplex02](https://github.com/Xyplex02))
- Лучано Кригун ([@klucho](https://github.com/klucho))
- Джейсон Грейс ([@l50](https://github.com/l50))
Скачать инструмент
КонфигурацияХэшрейтУскорениеЭффективность (MH/W)
CPU (1 ядро)~2 MH/sБазовый~0.02
CPU (8 ядер)~16 MH/s8x~0.02
GPU (RTX 3080)~500 MH/s250x~2.0
GPU (RTX 3090)~600 MH/s300x~2.5
GPU (AMD MI250)~800 MH/s400x~3.0
Гибрид (CPU+GPU)~620 MH/s310x~2.0
ParameterDefaultNotes
Мощность ЦП150WПолная нагрузка
Мощность ГП250WПолная нагрузка
Электроэнергия$0.12/kWhКорректировать по региону
Уменьшение срока службы20-40%Из-за длительного майнинга
ПроблемаРешение
"cannot find -lcuda"export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
"nvcc not found"sudo apt install cuda-toolkit
"No OpenCL device"sudo apt install ocl-icd-opencl-dev
GPU медленноexport RTC_CLIENT_MINING_GPU_ENABLED=true
Ошибка сборки CGosudo apt install build-essential