Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
atproto — Fork dell'implementazione di riferimento del protocollo AT con AppView ottimizzato per le prestazioni, indicizzatore firehose basato su Rust, caching Redis e funzionalità community per social networking self-hostato su larga scala. | Kitploit
Strumenti/GitHubGitHub/blacksky-algorithms/atproto
Sicurezza dell'Infrastruttura CloudAudit di ConfigurazioneRilevamento SegretiGestione Identità e Accessi (IAM)AutenticazioneConfigurazione ErrataSicurezza delle APISicurezza dei Database
Analisi dei Log
GitHubblacksky-algorithms/atproto

atproto

Fork dell'implementazione di riferimento del protocollo AT con AppView ottimizzato per le prestazioni, indicizzatore firehose basato su Rust, caching Redis e funzionalità community per social networking self-hostato su larga scala.

Vedi Repository
9431613 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Blacksky AppView

Questa è la fork di Blacksky dell'implementazione di riferimento del AT Protocol di Bluesky Social PBC. Alimenta l'AppView su api.blacksky.community.

Pubbliciamo questo codice per trasparenza e affinché altre comunità possano beneficiare del lavoro. Questo repository non accetta contributi, issue o PR. Se desideri l'implementazione atproto canonica, utilizza bluesky-social/atproto.

Cosa c'è di diverso

Tutte le modifiche sono in packages/bsky (logica dell'AppView), services/bsky (configurazione runtime) e una migrazione personalizzata. Tutto il resto è upstream.

Perché non il consumatore di firehose integrato?

Il dataplane upstream include un consumatore di firehose TypeScript (subscription.ts) che indicizza gli eventi direttamente. Lo abbiamo sostituito con rsky-wintermute, un indicizzatore Rust, per diverse ragioni:

  • Prestazioni su larga scala: Il consumatore TypeScript elabora gli eventi in sequenza. Alla scala della rete (~1000 eventi/secondo, 18,5 miliardi di record totali), un backfill completo a ~90 record/sec richiederebbe 6,5 anni. Wintermute punta a 10.000+ record/sec con elaborazione parallela delle code.
  • Architettura del backfill: Wintermute separa l'indicizzazione live dal backfill in code indipendenti (firehose_live, firehose_backfill, repo_backfill, labels). Gli eventi live non vengono mai bloccati dal lavoro di backfill.
  • Strumenti operativi: Wintermute include utilità per l'indicizzazione diretta di account specifici, importazione bulk della directory PLC, replay del flusso di etichette, riparazione dei riferimenti blob e gestione delle code – tutto necessario quando si avvia un AppView da zero.

Il dataplane e l'appview di questo repository funzionano ancora così come sono. Leggono dal database PostgreSQL che wintermute scrive. Semplicemente non avviamo la sottoscrizione al firehose integrata.

Ottimizzazioni delle prestazioni e operative

Queste sono ampiamente utili per chiunque ospiti un AppView su larga scala.

Ottimizzazione delle query LATERAL JOIN (packages/bsky/src/data-plane/server/routes/feeds.ts)

  • getTimeline e getListFeed riscritti con LATERAL JOIN di PostgreSQL per forzare l'utilizzo degli indici per utente invece di scansioni complete delle tabelle. Miglioramento significativo per utenti che seguono migliaia di account.

Livello di cache Redis (packages/bsky/src/data-plane/server/cache/)

  • Profili attori (TTL 60s), record (5m), conteggi interazioni (30s), metadati post (5m)
  • Riduce il carico del database sotto traffico di produzione
  • Problema noto: La cache degli attori ha un bug di serializzazione dei timestamp protobuf dove gli oggetti Timestamp perdono il metodo .toDate() dopo il round-trip JSON attraverso Redis, causando un'idratazione incompleta del profilo in caso di cache hit. Attualmente eseguiamo con la cache Redis disabilitata. La soluzione è serializzare i timestamp come stringhe ISO durante la scrittura nella cache e ricostruirli in fase di lettura.

Applicazione lato server delle preferenze di notifica (packages/bsky/src/api/app/bsky/notification/listNotifications.ts)

  • Quando il client non specifica reasons, il server applica le preferenze di notifica salvate dell'utente. Senza questa funzione, le preferenze vengono applicate solo lato client e non hanno effetto.

Risoluzione della chiave di firma scaduta nel verificatore di autenticazione (packages/bsky/src/auth-verifier.ts)

  • Al retry della verifica JWT (forceRefresh, bypassa la cache di identità in memoria del dataplane e risolve il documento DID direttamente dalla directory PLC. Risolve errori di autenticazione dopo la migrazione dell'account quando la chiave di firma viene ruotata ma la cache mantiene la vecchia chiave.

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

  • Rimuove i byte nulli (\u0000) e i caratteri di controllo dai record memorizzati prima del parsing JSON. Questi sono validi secondo RFC 8259 ma vengono rifiutati da JSON.parse() di Node.js, causando errori silenziosi di parsing rowToRecord nel dataplane che si manifestano come post mancanti.

Post della comunità (specifici di Blacksky)

Infrastruttura per post privati di comunità che risiedono sull'AppView anziché su singoli PDS. Specifica per il funzionamento di Blacksky, ma potrebbe essere di riferimento per altre comunità.

  • Namespace del lessico personalizzato community.blacksky.feed.* con endpoint per submit, get, delete, timeline e visualizzazioni thread
  • Tabella community_post separata (migrazione: 20260202T120000000Z-add-community-post.ts)
  • Controllo dell'appartenenza a livello di dataplane e API
  • Integrazione con getPostThreadV2 per thread misti di post standard e comunitari
  • Richiede un database di appartenenza separato (BLACKSKY_MEMBERSHIP_DB_URL)

Architettura

Bluesky Relay (bsky.network)
     |
     v
rsky-wintermute -----> PostgreSQL 17 <----- Palomar
  (Indicizzatore Rust)       |                (Ricerca Go)
  - consumatore firehose     |                     |
  - backfiller               |                     v
  - indicizzatore etichette  |               OpenSearch
  - indicizzatore diretto    |
                            v
                    bsky-dataplane (gRPC :2585) <--- Redis (opzionale)
                            |
                            v
                    bsky-appview (HTTP :2584)
                            |
                            v
                    Reverse proxy (Caddy/nginx)

Panoramica dei componenti

ComponenteSorgenteScopo
rsky-wintermuteblacksky-algorithms/rskyIndicizzatore Rust: consuma eventi, esegue backfill dei repository, indicizza i record in PostgreSQL
rsky-relayblacksky-algorithms/rskyRelay AT Protocol per ricevere etichette di moderazione dai servizi labeler
rsky-videoblacksky-algorithms/rskyServizio di upload video: transcodifica tramite Bunny Stream CDN, carica i riferimenti blob nei PDS degli utenti
bsky-dataplaneQuesto repository (services/bsky)Livello dati gRPC su PostgreSQL
bsky-appviewQuesto repository (services/bsky)Server API HTTP per gli endpoint XRPC app.bsky.*
Palomarblacksky-algorithms/indigoRicerca full-text: indicizza profili e post in OpenSearch con potenziamento del conteggio follower
palomar-syncblacksky-algorithms/rskySincronizza conteggi follower e punteggi PageRank da PostgreSQL a OpenSearch

rsky-wintermute in dettaglio

Wintermute è un servizio Rust monolitico con quattro percorsi di elaborazione paralleli:

  • Ingester: Si connette al firehose di bsky.network tramite WebSocket, scrive eventi nelle code Fjall (key-value store embedded)
  • Indexer: Legge dalle code, analizza i record, scrive in PostgreSQL con ON CONFLICT per idempotenza
  • Backfiller: Recupera i file CAR completi del repository dai PDS, decomprime i record nella coda di backfill
  • Indicizzatore etichette: Si sottoscrive ai flussi WebSocket dei labeler, elabora eventi di creazione/negazione etichette
Scarica lo strumento