Модификация скрипта инсталяции #9

Open
opened 2024-11-14 01:19:25 +00:00 by NW · 0 comments
Owner

Описание задачи

Необходимо изменить скрипт инсталляции для настройки нового магазина на сервере. Скрипт должен выполнять следующие действия:

  1. Генерация новых кошельков и сид-фраз для выплаты комиссий за использование магазина.
  2. Эти кошельки и сид-фразы должны не сохраняться на сервере и отправляться в безопасное место.
  3. Интеграция данных кошельков в Docker Compose конфигурацию.
  4. Разработка скрипта для проверки наличия и правильности кошельков внутри Docker контейнера.
  5. Это будет использоваться для лицензии на пользование магазином, где комиссионные платежи выплачиваются на эти кошельки.

Требования

1. Генерация кошельков и сид-фраз

  • При установке нового магазина, генерируются новые кошельки (например, для Bitcoin, Ethereum и Litecoin) с соответствующими сид-фразами.
  • Сид-фразы и кошельки не должны сохраняться на сервере. После их генерации они должны быть отправлены в безопасное место (например, через email или защищенный API).
  • Для генерации кошельков и сид-фраз можно использовать популярные библиотеки для криптовалют, например:
    • Bitcoin: bitcoinjs-lib
    • Ethereum: ethers.js
    • Litecoin: Используемая для Litecoin библиотека должна поддерживать создание кошельков с сид-фразами.

2. Интеграция с Docker Compose

  • В Docker Compose файл необходимо добавить переменные среды, которые будут содержать адреса этих кошельков.
  • Пример конфигурации Docker Compose:
version: '3.8'
services:
  app:
    image: your-app-image
    environment:
      - WALLET_BTC_ADDRESS=generated_bitcoin_address
      - WALLET_ETH_ADDRESS=generated_ethereum_address
      - WALLET_LTC_ADDRESS=generated_litecoin_address
      - BTC_WALLET_SEED=generated_bitcoin_seed
      - ETH_WALLET_SEED=generated_ethereum_seed
      - LTC_WALLET_SEED=generated_litecoin_seed
    ports:
      - "8080:8080"
  • Эти переменные будут получены из процесса генерации кошельков и переданы в контейнер через переменные окружения. С помощью этих переменных можно будет настроить приложение для выплаты комиссий на эти кошельки.

3. Скрипт для проверки правильности кошельков

Необходимо написать скрипт, который будет проверять кошельки для комиссий на сервере или внутри контейнера. Скрипт будет:

  • Проверять наличие кошельков.
  • Проверять их корректность (например, формат и валидность адресов).
  • Проверять, что балансы на этих кошельках соответствуют требованиям (например, комиссия должна быть оплачена).

Пример скрипта на Node.js для проверки кошельков:

const axios = require('axios');

// Пример функции для проверки кошельков
async function checkWalletBalance(walletAddress, crypto) {
  let url;

  switch (crypto) {
    case 'bitcoin':
      url = `https://blockchain.info/q/addressbalance/${walletAddress}`;
      break;
    case 'ethereum':
      url = `https://api.etherscan.io/api?module=account&action=balance&address=${walletAddress}&tag=latest`;
      break;
    case 'litecoin':
      url = `https://api.blockchair.com/litecoin/dashboards/address/${walletAddress}`;
      break;
    default:
      console.error('Неизвестная криптовалюта');
      return null;
  }

  try {
    const response = await axios.get(url);
    return response.data;
  } catch (error) {
    console.error('Ошибка при получении баланса:', error);
    return null;
  }
}

// Пример вызова функции для проверки Bitcoin кошелька
const btcAddress = process.env.WALLET_BTC_ADDRESS;
checkWalletBalance(btcAddress, 'bitcoin').then(balance => {
  if (balance !== null) {
    console.log(`Баланс Bitcoin кошелька: ${balance}`);
  } else {
    console.log('Не удалось проверить баланс');
  }
});

4. Генерация кошельков при инсталляции

При инсталляции на сервере необходимо выполнить следующие шаги:

  1. Генерация кошельков для разных криптовалют (Bitcoin, Ethereum, Litecoin) с использованием соответствующих библиотек.
  2. Отправка данных (адреса и сид-фразы) в безопасное место (например, через email или API).
  3. В Docker Compose конфигурации добавить новые переменные окружения для этих кошельков и сид-фраз.
  4. Запуск проверки кошельков внутри контейнера с использованием вышеописанного скрипта для валидации корректности кошельков.

Пример скрипта инсталляции (install.sh):

#!/bin/bash

# Установка зависимостей
npm install bitcoinjs-lib ethers

# Генерация кошельков
node generate_wallets.js

# Генерация и отправка кошельков на email или API
node send_wallets.js

# Настройка Docker Compose с полученными адресами и сид-фразами
echo "WALLET_BTC_ADDRESS=$BTC_ADDRESS" >> .env
echo "WALLET_ETH_ADDRESS=$ETH_ADDRESS" >> .env
echo "WALLET_LTC_ADDRESS=$LTC_ADDRESS" >> .env
echo "BTC_WALLET_SEED=$BTC_SEED" >> .env
echo "ETH_WALLET_SEED=$ETH_SEED" >> .env
echo "LTC_WALLET_SEED=$LTC_SEED" >> .env

# Запуск Docker Compose
docker-compose up -d

Чек-лист выполнения

  • Реализована генерация кошельков и сид-фраз для разных криптовалют.
  • Кошельки и сид-фразы отправляются в безопасное место (например, через email или API).
  • Интеграция с Docker Compose для передачи кошельков и сид-фраз в контейнер.
  • Написан скрипт проверки кошельков для валидности и наличия средств.
  • Реализован скрипт инсталляции, который выполняет генерацию кошельков, отправку данных и настройку Docker.

Ожидаемый результат

  1. При установке нового магазина генерируются кошельки для криптовалют (Bitcoin, Ethereum, Litecoin).
  2. Эти кошельки и сид-фразы не сохраняются на сервере, а отправляются в безопасное место.
  3. В Docker Compose файле автоматически конфигурируются переменные окружения с кошельками и сид-фразами.
  4. Выполняется проверка правильности кошельков внутри контейнера и валидируется их корректность и баланс для выплаты комиссий.
## Описание задачи Необходимо изменить скрипт инсталляции для настройки нового магазина на сервере. Скрипт должен выполнять следующие действия: 1. Генерация **новых кошельков** и **сид-фраз** для выплаты комиссий за использование магазина. 2. Эти кошельки и сид-фразы должны **не сохраняться** на сервере и отправляться в безопасное место. 3. Интеграция данных кошельков в **Docker Compose** конфигурацию. 4. Разработка скрипта для **проверки наличия и правильности кошельков** внутри Docker контейнера. 5. Это будет использоваться для **лицензии** на пользование магазином, где комиссионные платежи выплачиваются на эти кошельки. --- ## Требования ### 1. **Генерация кошельков и сид-фраз** - При установке нового магазина, **генерируются новые кошельки** (например, для Bitcoin, Ethereum и Litecoin) с соответствующими сид-фразами. - Сид-фразы и кошельки **не должны сохраняться** на сервере. После их генерации они должны быть **отправлены** в безопасное место (например, через email или защищенный API). - Для генерации кошельков и сид-фраз можно использовать популярные библиотеки для криптовалют, например: - **Bitcoin**: [bitcoinjs-lib](https://github.com/bitcoinjs/bitcoinjs-lib) - **Ethereum**: [ethers.js](https://docs.ethers.io/v5/) - **Litecoin**: Используемая для Litecoin библиотека должна поддерживать создание кошельков с сид-фразами. ### 2. **Интеграция с Docker Compose** - В Docker Compose файл необходимо добавить переменные среды, которые будут содержать адреса этих кошельков. - Пример конфигурации Docker Compose: ```yaml version: '3.8' services: app: image: your-app-image environment: - WALLET_BTC_ADDRESS=generated_bitcoin_address - WALLET_ETH_ADDRESS=generated_ethereum_address - WALLET_LTC_ADDRESS=generated_litecoin_address - BTC_WALLET_SEED=generated_bitcoin_seed - ETH_WALLET_SEED=generated_ethereum_seed - LTC_WALLET_SEED=generated_litecoin_seed ports: - "8080:8080" ``` - Эти переменные будут получены из процесса генерации кошельков и переданы в контейнер через переменные окружения. С помощью этих переменных можно будет настроить приложение для выплаты комиссий на эти кошельки. ### 3. **Скрипт для проверки правильности кошельков** Необходимо написать скрипт, который будет проверять кошельки для комиссий на сервере или внутри контейнера. Скрипт будет: - Проверять наличие кошельков. - Проверять их корректность (например, формат и валидность адресов). - Проверять, что балансы на этих кошельках соответствуют требованиям (например, комиссия должна быть оплачена). Пример скрипта на Node.js для проверки кошельков: ```javascript const axios = require('axios'); // Пример функции для проверки кошельков async function checkWalletBalance(walletAddress, crypto) { let url; switch (crypto) { case 'bitcoin': url = `https://blockchain.info/q/addressbalance/${walletAddress}`; break; case 'ethereum': url = `https://api.etherscan.io/api?module=account&action=balance&address=${walletAddress}&tag=latest`; break; case 'litecoin': url = `https://api.blockchair.com/litecoin/dashboards/address/${walletAddress}`; break; default: console.error('Неизвестная криптовалюта'); return null; } try { const response = await axios.get(url); return response.data; } catch (error) { console.error('Ошибка при получении баланса:', error); return null; } } // Пример вызова функции для проверки Bitcoin кошелька const btcAddress = process.env.WALLET_BTC_ADDRESS; checkWalletBalance(btcAddress, 'bitcoin').then(balance => { if (balance !== null) { console.log(`Баланс Bitcoin кошелька: ${balance}`); } else { console.log('Не удалось проверить баланс'); } }); ``` ### 4. **Генерация кошельков при инсталляции** При инсталляции на сервере необходимо выполнить следующие шаги: 1. **Генерация кошельков** для разных криптовалют (Bitcoin, Ethereum, Litecoin) с использованием соответствующих библиотек. 2. **Отправка данных** (адреса и сид-фразы) в безопасное место (например, через email или API). 3. В **Docker Compose** конфигурации добавить новые переменные окружения для этих кошельков и сид-фраз. 4. Запуск **проверки кошельков** внутри контейнера с использованием вышеописанного скрипта для валидации корректности кошельков. ### Пример скрипта инсталляции (install.sh): ```bash #!/bin/bash # Установка зависимостей npm install bitcoinjs-lib ethers # Генерация кошельков node generate_wallets.js # Генерация и отправка кошельков на email или API node send_wallets.js # Настройка Docker Compose с полученными адресами и сид-фразами echo "WALLET_BTC_ADDRESS=$BTC_ADDRESS" >> .env echo "WALLET_ETH_ADDRESS=$ETH_ADDRESS" >> .env echo "WALLET_LTC_ADDRESS=$LTC_ADDRESS" >> .env echo "BTC_WALLET_SEED=$BTC_SEED" >> .env echo "ETH_WALLET_SEED=$ETH_SEED" >> .env echo "LTC_WALLET_SEED=$LTC_SEED" >> .env # Запуск Docker Compose docker-compose up -d ``` --- ## Чек-лист выполнения - [ ] Реализована **генерация кошельков** и **сид-фраз** для разных криптовалют. - [ ] Кошельки и сид-фразы отправляются в **безопасное место** (например, через email или API). - [ ] **Интеграция с Docker Compose** для передачи кошельков и сид-фраз в контейнер. - [ ] Написан **скрипт проверки кошельков** для валидности и наличия средств. - [ ] **Реализован скрипт инсталляции**, который выполняет генерацию кошельков, отправку данных и настройку Docker. --- ## Ожидаемый результат 1. При установке нового магазина генерируются кошельки для криптовалют (Bitcoin, Ethereum, Litecoin). 2. Эти кошельки и сид-фразы **не сохраняются** на сервере, а отправляются в безопасное место. 3. В Docker Compose файле автоматически конфигурируются переменные окружения с кошельками и сид-фразами. 4. Выполняется **проверка правильности кошельков** внутри контейнера и валидируется их корректность и баланс для выплаты комиссий.
NW added this to the Оптимизация и новый функционал milestone 2024-11-14 01:19:25 +00:00
NW self-assigned this 2024-11-14 01:19:25 +00:00
NW added this to the Универсальный телеграмм магазин project 2024-11-14 01:19:25 +00:00
Sign in to join this conversation.
No Label
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Telegram-Market/telegram-shop#9
No description provided.