🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis
Socket
Book a DemoInstallSign in
Socket

github.com/VadimBorzenkov/gw-currency-wallet

Package Overview
Dependencies
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/VadimBorzenkov/gw-currency-wallet

Source
Go Modules
Version
v0.0.0-20241126071353-7d21b66f2af1
Version published
Created
Source

gw-currency-wallet

gw-currency-wallet — это микросервис для управления кошельком и обмена валют, поддерживающий регистрацию и авторизацию пользователей, пополнение счета, вывод средств, получение курсов валют и их обмен. В качестве базы данных используется PostgreSQL. Для взаимодействия с внешним сервисом курсов валют используется gRPC. Микросервис также поддерживает контейнеризацию с использованием Docker и Docker Compose.

Основные функции

-Регистрация и авторизация пользователей с использованием JWT. -Хранение и управление балансом пользователя в различных валютах (USD, RUB, EUR). -Пополнение и вывод средств. -Получение и кэширование курсов валют через gRPC. -Обмен валют с автоматическим обновлением баланса. -Поддержка RESTful API.

Стек технологий

  • Go: язык программирования для разработки высокопроизводительных приложений.
  • Fiber: HTTP-фреймворк для разработки REST API.
  • gRPC: протокол удаленного вызова процедур.
  • PostgreSQL: база данных для хранения курсов валют.
  • JWT: аутентификация и авторизация.
  • Docker: контейнеризация приложений.
  • Docker Compose: оркестрация контейнеров.
  • Logrus: логирование.

Установка и запуск

Клонирование репозитория

  • Клонируйте репозиторий:
    git clone https://github.com/VadimBorzenkov/gw-currency-wallet.git
    cd gw-currency-wallet
    
    
  • Скопируйте файл конфигурации:
    cp example.env .env
    
    
  • Настройте файл .env: -DB_HOST: адрес базы данных (например, localhost или db при использовании Docker). -DB_USER, DB_PASSWORD, DB_NAME: учетные данные PostgreSQL. -LOG_LEVEL: уровень логирования (debug, info, warn, error). -LOG_FORMAT: формат логов (text или json).

Создание ключей для JWT

  • Создайте директорию для хранения ключей:
    mkdir -p certs
    
    
  • Сгенерируйте приватный и публичный ключи с помощью OpenSSL:
    openssl genpkey -algorithm RSA -out certs/jwt-private.pem -pkeyopt rsa_keygen_bits:2048
    openssl rsa -in certs/jwt-private.pem -pubout -out certs/jwt-public.pem
    
    

Запуск через Docker

  • Убедитесь, что переменная DB_HOST установлена как db в .env.

  • Запустите сервисы:

    docker-compose up --build
    
    
  • Проверьте, что контейнеры запущены:

    docker ps
    

Локальный запуск

  • Установите зависимости:

    go mod tidy
    
    
  • Запустите PostgreSQL локально или измените DB_HOST в .env на localhost.

  • Запустите приложение:

    Копировать код
    go run ./cmd/main.go
    
    
  • Приложение запустится на порту 50051 (или указанном в .env).

FAQs

Package last updated on 26 Nov 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts