Podpisywanie w środowisku produkcyjnym

Transakcja zostaje wykonana tylko wtedy, gdy zawiera prawidłowy podpis od każdego wymaganego podpisującego. Podczas lokalnego tworzenia aplikacji zazwyczaj przechowujesz ten klucz jako Keypair i podpisujesz bezpośrednio. W środowisku produkcyjnym kluczowe pytanie brzmi inaczej: gdzie przechowywany jest klucz prywatny i kto jest uprawniony do autoryzowania podpisu nim?

Nigdy nie osadzaj kluczy prywatnych w kodzie po stronie klienta, nie dołączaj ich do frontendu ani nie umieszczaj w kontroli wersji. Każdy, kto uzyska dostęp do klucza, przejmuje pełną kontrolę nad środkami na tym koncie.

Metody podpisywania

MetodaGdzie przechowywany jest kluczKto podpisujeNajlepsze zastosowanie
Lokalny keypairPlik lub zmienna środowiskowa na maszynieTwój kod, bezpośrednioLokalne tworzenie aplikacji, testy, CI
Portfel przeglądarkowyPortfel użytkownika końcowego (np. Phantom, Solflare)Użytkownik końcowy, per transakcjaFrontendowe dApps, gdzie użytkownicy podpisują własne transakcje
Chmurowy KMS / HSMSprzętowo wspierana usługa kluczy (AWS KMS, GCP KMS, Vault)Twój backend żąda podpisu od usługiUsługi backendowe, operacje skarbowe, środowiska regulowane
Zarządzane portfele / MPCPodzielone lub powierzone infrastrukturze dostawcyDostawca współpodpisuje zgodnie z Twoją politykąWbudowane portfele, przepływy zatwierdzania, instytucjonalna opieka

Lokalne keypair to jedyne podejście, które umieszcza surowy materiał klucza bezpośrednio w aplikacji. Każde podejście produkcyjne przechowuje klucz w dedykowanej infrastrukturze i zleca tej infrastrukturze podpisywanie w Twoim imieniu.

Podpisywanie po stronie backendu

Gdy serwer musi podpisywać — opłacać transakcje, wysyłać transakcje programów lub zarządzać skarbcem — używaj dedykowanego backendu do zarządzania kluczami zamiast surowego keypair. Solana Foundation utrzymuje Keychain, zunifikowaną bibliotekę do podpisywania (Rust i TypeScript), która udostępnia jeden interfejs SolanaSigner dla każdego backendu wymienionego w powyższej tabeli: Memory, HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint, Dfns, Para, Openfort i Utila.

Ponieważ interfejs jest identyczny dla wszystkich backendów, możesz rozwijać aplikację lokalnie z kluczem w pamięci, a następnie przełączyć się na backend produkcyjny poprzez konfigurację — bez przepisywania kodu aplikacji. Keychain jest kompatybilny z @solana/kit oraz Rust SDK.

Pełną listę kontrolną dla środowiska produkcyjnego — zarządzanie kluczami, bezpieczeństwo RPC i monitorowanie — znajdziesz w sekcji Production Readiness.

Is this page helpful?

Spis treści

Edytuj stronę