
ActualizadaAug 7, 2026
Argos — Actualizado!
Análisis y Representación de Grafos de Operaciones Sospechosas (Analyse et Représentation des Graphes des Opérations Suspectes)
Argos — Plataforma de Rastreo de Activos Blockchain
Argos es una plataforma multilingüe de investigación blockchain para rastrear, analizar y visualizar flujos de fondos en Ethereum y Bitcoin. Construida con Rust, OCaml y TypeScript/React.
Arquitectura
+-----------------------+
| Frontend (React 19) |
| Vite + Tailwind CSS |
+-----------+-----------+
| HTTP/REST
+-----------v-----------+
| REST API (Rust) |
| Axum — port 8990 |
| |
| in-process OCaml FFI |
| (ocaml-interop): |
| database_ffi.so — |
| tracing + full decode|
+-----------+-----------+
|
+-----------------------v----------------------+
| PostgreSQL (11 DBs) |
| Redis |
+----------------------------------------------+
+------------------+ +------------------+
| Ethereum node | | Bitcoin node |
+--------+---------+ +--------+---------+
| |
+--------v----------+ +--------v----------+
| Rust indexers x2 | | Rust indexers x2 |
| (psql x | | (psql x |
| latest/hist) | | latest/hist) |
| | | |
| in-process OCaml | | in-process OCaml |
| FFI: analyses_ffi | | FFI: analyses_ffi |
| .so (decode + | | .so (decode + |
| defi_analyses) | | defi_analyses) |
+-------------------+ +-------------------+
La decodificación, los análisis DeFi y el rastreo se ejecutan en proceso dentro de los binarios de Rust mediante una FFI directa Rust↔OCaml (ocaml-interop) — no hay microservicios separados ni puertos gRPC.
Inicio rápido
Consulta Primeros pasos para las instrucciones completas de configuración.
git clone [email protected]:functori/argos/argos.git
cd argos
cp argos.secret.env.example argos.secret.env # Fill in secrets
set -o allexport && . ./argos.env && . ./argos.secret.env && set +o allexport
make install-deps
make create-tablespaces
make migrate-databases
make build
Documentación
| Documento | Descripción |
|---|---|
| Primeros pasos | Requisitos previos, instalación, primera ejecución |
| Arquitectura | Topología del sistema y flujos de datos |
| API REST | Endpoints de API y autenticación |
| Indexadores | Binarios del indexador de blockchain |
| Base de datos | Esquemas de base de datos y particionamiento |
| Despliegue | Docker, servicios, logs, monitoreo |
| Docker | Imágenes Docker por servicio, recetas de compilación, configuración en tiempo de ejecución |
| Entorno | Referencia de variables de entorno |
| Rastreo | Algoritmo de rastreo de flujos de fondos |
| Decodificación y análisis | Decodificación y análisis (FFI de OCaml en proceso) |
| OSINT | Fuentes de datos OSINT e ingesta |
| Algoritmos de análisis | Análisis DeFi (arbitraje, sandwich, etc.) |
| Agrupamiento | Pipeline de agrupamiento y clasificación de direcciones |
| Componente de decodificación | Decodificación ABI |
| Frontend | Aplicación React |
Desarrollo
Ver Convenciones de desarrollo:
- Flujo de trabajo Git — Planificación de proyectos, commits, MRs, revisiones
- Guías de código — Estándares de estilo y calidad
- Organización del código fuente — Dónde va el código
Compilación
make install-deps # Install all dependencies (OCaml, Rust, Node, Python)
make build # Build backend (Rust + OCaml)
make build-front # Build frontend
make create-tablespaces # Create PostgreSQL tablespace directories
make migrate-databases # Create databases and run migrations
make run-tests # Run tests
make lint-backend # Lint backend (clippy, ocamlformat)
make lint-frontend # Lint frontend (eslint)
make format # Auto-format all code
Licencia
Propietario — Functori