Podpisywanie w środowisku produkcyjnym

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

Nigdy nie umieszczaj kluczy prywatnych w kodzie po stronie klienta, nie dołączaj ich do frontendu ani nie przechowuj 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
Lokalna para kluczyPlik lub zmienna środowiskowa na maszynieTwój kod, bezpośrednioLokalne tworzenie, 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
Cloud KMS / HSMSprzętowa usługa zarządzania kluczami (AWS KMS, GCP KMS, Vault)Twój backend żąda podpisu od usługiUsługi backendowe, operacje skarbcowe, środowiska regulowane
Portfele zarządzane / MPCPodzielone lub przechowywane w infrastrukturze dostawcyDostawca współpodpisuje zgodnie z Twoją politykąWbudowane portfele, przepływy zatwierdzania, instytucjonalna opieka nad aktywami

Lokalna para kluczy to jedyna metoda, która umieszcza surowy materiał klucza bezpośrednio w Twojej 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 programowe lub obsługiwać skarbiec — użyj dedykowanego backendu do zarządzania kluczami zamiast surowej pary kluczy. Solana Foundation utrzymuje Keychain, ujednoliconą bibliotekę podpisującą (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 oraz Utila.

Ponieważ interfejs jest identyczny dla wszystkich backendów, możesz tworzyć lokalnie z kluczem w pamięci i przejść 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 Production Readiness.

Is this page helpful?

Spis treści

Edytuj stronę