Surfpool 101

Das Testen von Solana-Programmen, die auf Cross-Program Invocations (CPIs) angewiesen sind, erforderte bisher, dass Entwickler Konten und Programme vom Mainnet exportieren und dann auf einen lokalen Validator hochladen.
Dieser Prozess funktioniert für einige wenige Konten, wird aber völlig unpraktikabel, wenn CPIs in komplexe Programme wie Jupiter getestet werden sollen, die von mehr als 40 Konten und 8+ Programmen abhängen können.
Surfpool löst dieses Problem, indem es Entwicklern ermöglicht, Programme lokal zu simulieren, wobei Mainnet-Konten bei Bedarf abgerufen werden, plus zusätzliche Funktionen:
Systemvariablen anpassen: Zeitreisen (testen Sie Ihr Programm zu jedem historischen Slot oder Zeitstempel), pausieren Sie die Uhr oder stoppen Sie die Blockerstellung
Kontodaten ändern: SOL-Versorgung festlegen (gesamt, im Umlauf und nicht im Umlauf), Kontodaten zwischen Programmen übertragen oder Kern-Kontodaten und Token-Kontoinformationen aktualisieren
Blockchain-Daten analysieren: Transaktionen auf Recheneinheiten, Kontoänderungen und Ausführungsdetails profilieren und dann detaillierte Profile nach Signatur, UUID oder Tag abrufen
Was ist Surfpool
Surfpool ist das umfassende SDK und Tooling-Suite, während Surfnet das lokale Solana-Netzwerk ist, das es erstellt. Stellen Sie sich Surfpool als Ihre Entwicklungsumgebung vor und Surfnet als das Blockchain-Netzwerk, das darin läuft.
Surfnet dient als direkter Ersatz für solana-test-validator und wurde speziell entwickelt, um die beste Entwicklungserfahrung für Solana-Entwickler zu bieten.
Entwickelt vom TxTx-Team, integriert Surfpool Infrastructure as Code nahtlos in Anchor-basierte Projekte und ermöglicht reproduzierbare, prüfbare und sichere Bereitstellungen in jedem Solana-Netzwerk – privat oder öffentlich.
Erste Schritte
Alles, was Sie zum Ausführen von Surfnet benötigen, ist im Surfpool SDK enthalten. Da die Installation je nach Betriebssystem variiert, folgen Sie der offiziellen Installationsseite für Ihre spezifische Einrichtung.
Nach der Installation des Surfpool SDK, starten Sie Surfnet mit:
surfpool startDies startet Surfnet auf dem Standard-Port des lokalen Validators (http://127.0.0.1:8899) mit einer Terminal-UI, die Folgendes anzeigt:
Slots und Epoch: Aktuell ausgeführte Slots werden automatisch alle 400ms verarbeitet. Verwenden Sie Tab, um manuell zum nächsten Slot zu wechseln, oder Leertaste, um die automatische Blockerstellung zu pausieren/fortzusetzen
Transaktionslogs: Zeitgestempelter Aktivitätsstrom, der alle Ausführungen Ihrer Transaktionen anzeigt
Für eine browserbasierte Erfahrung verbinden Sie sich mit Surfpool Studio unter diesem Link.
Programme bereitstellen
Nach dem Einrichten von Surfnet können Sie Ihr Programm bereitstellen und mit dem Aufbau beginnen.
Anchor-Programme: Verwenden Sie anchor deploy mit Ihrer Anchor.toml, die für [programs.localnet] konfiguriert ist.
Pinocchio-Programme: Bereitstellung über Solana CLI mit Ihrer Konfiguration auf Localnet eingestellt: solana program deploy ./target/deploy/your_program.so --program-id ./target/deploy/your_program-keypair.json
Programme testen
Nach der Bereitstellung auf Localnet verbinden Sie sich mit Surfnet, indem Sie den lokalen Validator anvisieren:
import { Connection } from "@solana/web3.js";
const connection = new Connection("http://localhost:8899", "confirmed");