Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
atproto — Fork de l'implémentation de référence du protocole AT avec un AppView optimisé pour les performances, un indexeur firehose basé sur Rust, un cache Redis et des fonctionnalités communautaires pour un réseau social auto-hébergé à grande échelle. | Kitploit
Outils/GitHubGitHub/blacksky-algorithms/atproto
Sécurité de l'Infrastructure CloudAudit de ConfigurationDétection de SecretsGestion des Identités et des Accès (IAM)AuthentificationMauvaise ConfigurationSécurité des APISécurité des Bases de Données
Analyse de Journaux
GitHubblacksky-algorithms/atproto

atproto

Fork de l'implémentation de référence du protocole AT avec un AppView optimisé pour les performances, un indexeur firehose basé sur Rust, un cache Redis et des fonctionnalités communautaires pour un réseau social auto-hébergé à grande échelle.

Voir le dépôt
94316il y a 14 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Blacksky AppView

Voici le fork de Blacksky de l'implémentation de référence du protocole AT par Bluesky Social PBC. Il alimente l’AppView à l’adresse api.blacksky.community.

Nous publions ce code par souci de transparence et pour que d’autres communautés puissent bénéficier de ce travail. Ce dépôt n’accepte ni contributions, ni issues, ni PRs. Si vous souhaitez l’implémentation canonique d’atproto, utilisez bluesky-social/atproto.

Ce qui est différent

Toutes les modifications se trouvent dans packages/bsky (logique AppView), services/bsky (configuration d’exécution) et une migration personnalisée. Tout le reste provient de l’amont.

Pourquoi ne pas utiliser le consumer Firehose intégré ?

Le dataplane en amont inclut un consumer Firehose TypeScript (subscription.ts) qui indexe les événements directement. Nous l’avons remplacé par rsky-wintermute, un indexeur Rust, pour plusieurs raisons :

  • Performances à l’échelle : Le consumer TypeScript traite les événements séquentiellement. À l’échelle du réseau (~1 000 événements/s, 18,5 milliards d’enregistrements au total), un backfill complet à ~90 enregistrements/s prendrait 6,5 ans. Wintermute vise 10 000+ enregistrements/s avec un traitement parallèle par files d’attente.
  • Architecture du backfill : Wintermute sépare l’indexation en direct du backfill dans des files indépendantes (firehose_live, firehose_backfill, repo_backfill, labels). Les événements en direct ne sont jamais bloqués par le travail de backfill.
  • Outils opérationnels : Wintermute inclut des utilitaires pour l’indexation directe de comptes spécifiques, l’import en masse du répertoire PLC, la relecture des flux de labels, la réparation des références de blobs, et la gestion des files d’attente – tout ce dont on a besoin pour amorcer une AppView à partir de rien.

Le dataplane et l’appview de ce dépôt fonctionnent toujours tels quels. Ils lisent depuis la base de données PostgreSQL que wintermute écrit. Nous ne démarrons simplement pas l’abonnement Firehose intégré.

Correctifs de performances et opérationnels

Ces correctifs sont largement utiles à toute personne hébergeant elle-même une AppView à grande échelle.

Optimisation des requêtes LATERAL JOIN (packages/bsky/src/data-plane/server/routes/feeds.ts)

  • getTimeline et getListFeed réécrites avec des LATERAL JOIN PostgreSQL pour forcer l’utilisation d’index par utilisateur au lieu de parcourir toutes les tables. Amélioration majeure pour les utilisateurs qui suivent des milliers de comptes.

Couche de cache Redis (packages/bsky/src/data-plane/server/cache/)

  • Profils d’acteurs (TTL 60s), enregistrements (5m), compteurs d’interactions (30s), métadonnées de publications (5m)
  • Réduit la charge de la base de données sous trafic de production
  • Problème connu : Le cache des acteurs a un bogue de sérialisation des timestamps protobuf : les objets Timestamp perdent leur méthode .toDate() après un aller-retour JSON via Redis, ce qui provoque une hydration incomplète du profil lors d’un hit dans le cache. Nous utilisons actuellement le cache Redis désactivé. La correction consiste à sérialiser les timestamps en chaînes ISO lors de l’écriture dans le cache et à les reconstruire à la lecture.

Application côté serveur des préférences de notification (packages/bsky/src/api/app/bsky/notification/listNotifications.ts)

  • Lorsque le client ne spécifie pas reasons, le serveur applique les préférences de notification enregistrées par l’utilisateur. Sans cela, les préférences ne sont appliquées que côté client et restent sans effet.

Correction de la clé de signature obsolète dans le vérificateur d’authentification (packages/bsky/src/auth-verifier.ts)

  • Lors d’une nouvelle tentative de vérification JWT (forceRefresh), contourne le cache d’identité en mémoire du dataplane et résout le document DID directement depuis le répertoire PLC. Corrige les échecs d’authentification après une migration de compte où la clé de signature change mais le cache conserve l’ancienne clé.

Nettoyage JSON (packages/bsky/src/data-plane/server/routes/records.ts)

  • Supprime les octets nuls (\u0000) et les caractères de contrôle des enregistrements stockés avant le parsing JSON. Ces caractères sont valides selon RFC 8259 mais rejetés par JSON.parse() de Node.js, provoquant des échecs silencieux de parsing rowToRecord dans le dataplane, qui se manifestent par des publications manquantes.

Publications communautaires (spécifiques à Blacksky)

Infrastructure pour les publications privées de communauté qui résident sur l’AppView plutôt que sur des PDS individuels. Spécifique au fonctionnement de Blacksky, mais peut servir de référence pour d’autres communautés.

  • Espace de noms de lexique personnalisé community.blacksky.feed.* avec points de terminaison pour soumettre, obtenir, supprimer, timeline et fils de discussion
  • Table community_post séparée (migration : 20260202T120000000Z-add-community-post.ts)
  • Contrôle d’appartenance au niveau du dataplane et de l’API
  • Intégration avec getPostThreadV2 pour des fils mixtes publications standard/communautaires
  • Nécessite une base de données d’appartenance séparée (BLACKSKY_MEMBERSHIP_DB_URL)

Architecture

Bluesky Relay (bsky.network)
     |
     v
rsky-wintermute -----> PostgreSQL 17 <----- Palomar
  (Indexeur Rust)           |                (Recherche Go)
  - consumer firehose       |                     |
  - backfilleur             |                     v
  - indexeur de labels      |               OpenSearch
  - indexeur direct         |
                            v
                    bsky-dataplane (gRPC :2585) <--- Redis (optionnel)
                            |
                            v
                    bsky-appview (HTTP :2584)
                            |
                            v
                    Proxy inverse (Caddy/nginx)

Aperçu des composants

ComposantSourceObjectif
rsky-wintermuteblacksky-algorithms/rskyIndexeur Firehose Rust : consomme les événements, backfill des dépôts, indexe les enregistrements dans PostgreSQL
rsky-relayblacksky-algorithms/rskyRelais du protocole AT pour recevoir les labels de modération des services de labellisation
rsky-videoblacksky-algorithms/rskyService de téléchargement vidéo : transcodage via Bunny Stream CDN, télécharge les références de blobs vers les PDS des utilisateurs
bsky-dataplaneCe dépôt (services/bsky)Couche de données gRPC sur PostgreSQL
bsky-appviewCe dépôt (services/bsky)Serveur d’API HTTP pour les points de terminaison XRPC app.bsky.*
Palomarblacksky-algorithms/indigoRecherche en texte intégral : indexe les profils et publications dans OpenSearch avec pondération basée sur le nombre d’abonnés
palomar-syncblacksky-algorithms/rskySynchronise les compteurs d’abonnés et les scores PageRank de PostgreSQL vers OpenSearch

rsky-wintermute en détail

Wintermute est un service Rust monolithique avec quatre chemins de traitement parallèles :

Télécharger l’outil