Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
atproto — Fork der AT Protocol-Referenzimplementierung mit leistungsoptimierter AppView, Rust-basiertem Firehose-Indexer, Redis-Caching und Community-Funktionen für selbstgehostete soziale Netzwerke in großem Maßstab. | Kitploit
Tools/GitHubGitHub/blacksky-algorithms/atproto
Cloud-Infrastruktur-SicherheitKonfigurationsprüfungSecret-ErkennungIdentitäts- & Zugriffsmanagement (IAM)AuthentifizierungFehlkonfigurationAPI-SicherheitDatenbanksicherheitLog-Analyse
GitHubblacksky-algorithms/atproto

atproto

Fork der AT Protocol-Referenzimplementierung mit leistungsoptimierter AppView, Rust-basiertem Firehose-Indexer, Redis-Caching und Community-Funktionen für selbstgehostete soziale Netzwerke in großem Maßstab.

94316vor 13 TagenVon Kitploit geprüft
Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Blacksky AppView

Dies ist der Fork des AT Protocol Reference Implementation von Blacksky, der von Bluesky Social PBC erstellt wurde. Er betreibt die AppView unter api.blacksky.community.

Wir veröffentlichen dies aus Transparenzgründen und damit andere Gemeinschaften von der Arbeit profitieren können. Dieses Repository akzeptiert keine Beiträge, Issues oder PRs. Wenn Sie die kanonische atproto-Implementierung wünschen, verwenden Sie bluesky-social/atproto.

Was ist anders?

Alle Änderungen befinden sich in packages/bsky (AppView-Logik), services/bsky (Laufzeitkonfiguration) und einer benutzerdefinierten Migration. Alles andere ist Upstream.

Warum nicht der integrierte Firehose-Consumer?

Die Upstream-Datenebene enthält einen TypeScript-Firehose-Consumer (subscription.ts), der Ereignisse direkt indiziert. Wir haben ihn aus mehreren Gründen durch rsky-wintermute, einen Rust-Indexer, ersetzt:

  • Skalierbarkeit: Der TypeScript-Consumer verarbeitet Ereignisse sequenziell. Bei Netzwerk-Skala (~1.000 Ereignisse/s, 18,5 Mrd. Datensätze insgesamt) würde ein vollständiger Backfill mit ~90 Datensätzen/s 6,5 Jahre dauern. Wintermute zielt auf 10.000+ Datensätze/s mit paralleler Warteschlangenverarbeitung ab.
  • Backfill-Architektur: Wintermute trennt Live-Indizierung und Backfill in unabhängige Warteschlangen (firehose_live, firehose_backfill, repo_backfill, labels). Live-Ereignisse werden nie durch Backfill-Arbeiten blockiert.
  • Betriebswerkzeuge: Wintermute enthält Hilfsprogramme für die direkte Indizierung bestimmter Konten, den PLC-Verzeichnis-Bulk-Import, die Label-Stream-Wiedergabe, die Reparatur von Blob-Referenzen und die Warteschlangenverwaltung – alles erforderlich, wenn eine AppView von Grund auf neu aufgesetzt wird.

Die Datenebene und die AppView aus diesem Repository laufen weiterhin unverändert. Sie lesen aus der PostgreSQL-Datenbank, die Wintermute beschreibt. Wir starten nur das eingebaute Firehose-Abonnement nicht.

Leistungs- und Betriebsfixes

Diese sind allgemein für jeden nützlich, der eine AppView in großem Maßstab selbst hostet.

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

  • getTimeline und getListFeed wurden mit PostgreSQL LATERAL JOINs umgeschrieben, um die Indexnutzung pro Benutzer zu erzwingen, anstatt vollständige Tabellenscans durchzuführen. Große Verbesserung für Benutzer, die Tausenden von Konten folgen.

Redis-Caching-Layer (packages/bsky/src/data-plane/server/cache/)

  • Actor-Profile (60s TTL), Datensätze (5m), Interaktionszahlen (30s), Post-Metadaten (5m)
  • Reduziert Datenbanklast unter Produktionstraffic
  • Bekanntes Problem: Der Actor-Cache hat einen Protobuf-Zeitstempel-Serialisierungsfehler, bei dem Timestamp-Objekte nach JSON-Roundtrip durch Redis ihre .toDate()-Methode verlieren, was bei Cache-Treffern zu unvollständiger Profilhydrierung führt. Wir betreiben Redis-Caching derzeit deaktiviert. Die Lösung besteht darin, Zeitstempel beim Cache-Schreiben als ISO-Strings zu serialisieren und beim Lesen zu rekonstruieren.

Serverseitige Durchsetzung von Benachrichtigungseinstellungen (packages/bsky/src/api/app/bsky/notification/listNotifications.ts)

  • Wenn der Client keine reasons angibt, wendet der Server die gespeicherten Benachrichtigungseinstellungen des Benutzers an. Ohne dies werden die Einstellungen nur clientseitig durchgesetzt und haben keine Wirkung.

Auth-Verifier-Problem mit abgelaufenem Signaturschlüssel (packages/bsky/src/auth-verifier.ts)

  • Bei JWT-Überprüfungswiederholung (forceRefresh) wird der In-Memory-Identity-Cache der Datenebene umgangen und das DID-Dokument direkt aus dem PLC-Verzeichnis aufgelöst. Behebt Authentifizierungsfehler nach Kontomigration, bei der der Signaturschlüssel rotiert, der Cache aber den alten Schlüssel enthält.

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

  • Entfernt Nullbytes (\u0000) und Steuerzeichen aus gespeicherten Datensätzen vor der JSON-Analyse. Diese sind gemäß RFC 8259 gültig, werden aber von Node.js JSON.parse() abgelehnt, was zu stillen rowToRecord-Analysefehlern in der Datenebene führt, die sich als fehlende Posts äußern.

Community-Beiträge (Blacksky-spezifisch)

Infrastruktur für private Community-Beiträge, die auf der AppView und nicht auf einzelnen PDSes leben. Spezifisch für die Funktionsweise von Blacksky, könnte aber als Referenz für andere Gemeinschaften dienen.

  • Benutzerdefinierter Lexikon-Namespace community.blacksky.feed.* mit Endpunkten zum Einreichen, Abrufen, Löschen, für Timeline und Thread-Ansichten
  • Separate community_post-Tabelle (Migration: 20260202T120000000Z-add-community-post.ts)
  • Mitgliedschafts-Gating auf Datenebene und API-Ebene
  • Integration mit getPostThreadV2 für gemischte Standard-/Community-Post-Threads
  • Erfordert eine separate Mitgliederdatenbank (BLACKSKY_MEMBERSHIP_DB_URL)

Architektur

Bluesky Relay (bsky.network)
     |
     v
rsky-wintermute -----> PostgreSQL 17 <----- Palomar
  (Rust-Indexer)            |                (Go-Suche)
  - Firehose-Consumer       |                     |
  - Backfiller              |                     v
  - Label-Indexer           |               OpenSearch
  - Direkt-Indexer          |
                            v
                    bsky-dataplane (gRPC :2585) <--- Redis (optional)
                            |
                            v
                    bsky-appview (HTTP :2584)
                            |
                            v
                    Reverse-Proxy (Caddy/nginx)

Komponentenübersicht

KomponenteQuelleZweck
rsky-wintermuteblacksky-algorithms/rskyRust-Firehose-Indexer: verarbeitet Ereignisse, backfillt Repos, indiziert Datensätze in PostgreSQL
rsky-relayblacksky-algorithms/rskyAT Protocol Relay zum Empfangen von Moderationslabels von Labeler-Diensten
rsky-videoblacksky-algorithms/rskyVideo-Upload-Dienst: transkodiert über Bunny Stream CDN, lädt Blob-Referenzen auf Benutzer-PDSes hoch
bsky-dataplaneDieses Repo (services/bsky)gRPC-Datenebene über PostgreSQL
bsky-appviewDieses Repo (services/bsky)HTTP-API-Server für app.bsky.* XRPC-Endpunkte
Palomarblacksky-algorithms/indigoVolltextsuche: indiziert Profile und Posts in OpenSearch mit Follower-Anzahl-Boosting
palomar-syncblacksky-algorithms/rskySynchronisiert Follower-Anzahlen und PageRank-Scores von PostgreSQL nach OpenSearch

rsky-wintermute im Detail

Wintermute ist ein monolithischer Rust-Dienst mit vier parallelen Verarbeitungspfaden:

  • Ingester: Stellt eine Verbindung zum bsky.network-Firehose per WebSocket her, schreibt Ereignisse in Fjall (eingebetteter Key-Value-Store) Warteschlangen
  • Indexer: Liest aus den Warteschlangen, parst Datensätze, schreibt mit ON CONFLICT für Idempotenz in PostgreSQL
  • Backfiller: Ruft vollständige Repo-CAR-Dateien von PDSes ab, entpackt Datensätze in die Backfill-Warteschlange
  • Label-Indexer: Abonniert Labeler-WebSocket-Streams, verarbeitet Label-Create/Negate-Ereignisse
Tool herunterladen