Descripcion de proyecto:
Constamos con un sistema que recopila datos de cryptomonedas dentro de la blockchain de solana, contamos con todo el codigo ya desarrollado y documentacion necesaria para ejecutar este codigo y obtener los datos, requerimos un programador que se encargue de seguir esta documentacion y ejecutar el codigo.
Este es un resumen de las habilidades requeridas:
- Manejo de sistema operativo linux Rust/Cargo, systemd, solana mainnet
- Uso de PostgreSQL 14, TimescaleDB, Python vnv
- Python async, gRPC/geyser, Solana RPC API
- Nginx, SSL, Wireguard, Websockets
_________________________________________________________________________________________________
El sistema esta dividido en las siguientes secciones, en cada seccion se especifican los conocimientos requeridos.
1. Correr nodo rpc en la blockchain de Solana: un nodo rpc es un servidor que se conecta a la red para obtener datos.
¿Qué involucra?
- Preparar el servidor Ubuntu para manejar carga extrema de red: ajuste de parámetros del kernel, límites del sistema operativo, configuración de memoria. Un nodo de Solana
Mainnet maneja cientos de miles de conexiones simultáneas — si el OS no está configurado para eso, el nodo colapsa en segundos.
- Asegurar el acceso al servidor: usuario dedicado y aislado para correr el nodo, reglas de firewall para los puertos de Solana, protección contra ataques de fuerza bruta en SSH.
- Compilar el software del nodo desde código fuente en Rust, con la versión exacta compatible con Mainnet. No se usa un binario genérico — la compilación se hace sobre el hardware del servidor para aprovechar sus capacidades.
- Compilar también el plugin que extrae datos del nodo en tiempo real vía gRPC
(Yellowstone Geyser) - este plugin es la antena que alimenta todos los scripts de detección.
- Configurar el nodo con los parámetros correctos: entrypoints de Mainnet, validadores conocidos, directorios de almacenamiento en NVMe, hilos de CPU, y activación del plugin de datos.
- Arrancar el nodo como servicio del sistema (systemd), monitorear su sincronización y validar que responde correctamente antes de continuar.
_________________________________________________________________________________________________
2. Configurar el entorno para recopilar datos:
¿Qué involucra?
- Instalar PostgreSQL con la extensión de series de tiempo (TimescaleDB). La base de datos no es una instalación estándar — tiene tablas particionadas por tiempo, compresión automática de datos históricos, y vistas precalculadas. Todo el esquema ya
está diseñado.
- Replicar el esquema completo de la base de datos: tablas de tokens, wallets, transacciones, métricas, posiciones, y las tablas de clasificación de traders. Cada tabla
tiene sus índices y relaciones definidas.
- Configurar las políticas de la base de datos: cada cuánto se comprimen los datos históricos, cuántos días se retienen, y cómo se calculan los agregados por hora automáticamente.
Preparar el entorno Python donde correrán los scripts: entorno virtual, dependencias instaladas, variables de conexión apuntando al nodo local y a la base de datos.
Adaptar las referencias de API en el código: los scripts originalmente apuntaban a un proveedor externo (Helius). Ahora deben apuntar al nodo propio que ya está corriendo.
_________________________________________________________________________________________________
3. Ejecutar los scripts de recopilación de datos:
¿Qué involucra?
- Desplegar tres scripts como servicios independientes con reinicio automático: el detector de nuevos tokens y pools, el recopilador de métricas por token, y el tracker de wallets. Cada uno tiene su propio rol en el pipeline de datos.
- Conectar los scripts al stream de datos del nodo vía gRPC (Yellowstone Geyser): suscribirse a los eventos de los programas AMM relevantes (Pump.fun, Raydium, FluxBeam, etc.) y procesar cada transacción en tiempo real.
- Validar que los datos llegan correctamente a la base de datos: que los tokens nuevos se registran, que las transacciones de wallets se clasifican, y que las métricas se actualizan al ritmo de la blockchain.
- Monitorear la estabilidad de los servicios: los scripts deben reconectarse
automáticamente si el nodo o la base de datos se reinician, sin pérdida de datos ni
contaminación del historial.
- Entender el protocolo de emergencia: si el nodo cae, los scripts se deben apagar inmediatamente para evitar que el historial de trades y métricas se llene de datos inválidos.
_________________________________________________________________________________________________
4. Desplegar darshboard en la web:
¿Qué involucra?
- Configurar NGINX en el VPS público como reverse proxy: el frontend (HTML/CSS/JS estático) se sirve directamente desde el disco, y las llamadas a la API se redirigen al servidor on-premise donde corre el backend.
- EI VPS y el servidor principal están conectados por un túnel de red privado (WireGuard).
NGINX pasa el tráfico de la API a través de ese túnel — hay que entender esta
topología para configurarlo correctamente.
- Asegurar el acceso con HTTPS: generación del certificado SSL y configuración de los protocolos TLS correctos. Todas las conexiones HTTP deben redirigirse
automáticamente a HTTPS.
- Activar el canal de WebSockets que el frontend usa para recibir actualizaciones en tiempo real: cuando un trader Elite ejecuta una compra, la fila aparece instantáneamente en el dashboard sin recargar la página.
- Verificar la cadena completa: datos del nodo → base de datos → API → NGINX →
dashboard web → tiempo real en pantalla.
Tipo de puesto: Tiempo completo
Sueldo: $12,000.00 - $20,000.00 al mes
Beneficios:
- Aumentos salariales
- Opción a contrato indefinido
Lugar de trabajo: remoto híbrido en 01020, Guadalupe Inn, CDMX