
Analyse et Représentation des Graphes des Opérations Suspectes
Argos est une plateforme d'investigation blockchain multi-langages pour tracer, analyser et visualiser les flux de fonds sur Ethereum et Bitcoin. Construite avec Rust, OCaml et TypeScript/React.
+-----------------------+
| 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) |
+-------------------+ +-------------------+
Le décodage, les analyses DeFi et le traçage s'exécutent en processus dans les binaires Rust via une FFI directe Rust↔OCaml (ocaml-interop) — il n'y a ni microservices séparés ni ports gRPC.
Voir Démarrage rapide pour les instructions complètes d'installation.
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
Voir Conventions des développeurs :
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
Propriétaire — Functori
| Document | Description |
|---|
| Démarrage rapide | Prérequis, installation, première exécution |
| Architecture | Topologie du système et flux de données |
| API REST | Points de terminaison de l'API et authentification |
| Indexeurs | Binaires des indexeurs de blockchain |
| Base de données | Schémas de base de données et partitionnement |
| Déploiement | Docker, services, journaux, supervision |
| Docker | Images Docker par service, recettes de build, configuration d'exécution |
| Environnement | Référence des variables d'environnement |
| Traçage | Algorithme de traçage des flux de fonds |
| Décodage et analyse | Décodage et analyse (FFI OCaml en processus) |
| OSINT | Sources de données OSINT et ingestion |
| Algorithmes d'analyse | Analyse DeFi (arbitrage, sandwich, etc.) |
| Clustering | Pipeline de regroupement et de classification d'adresses |
| Composant de décodage | Décodage ABI |
| Frontend | Application React |