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
| Metoda | Gdzie przechowywany jest klucz | Kto podpisuje | Najlepsze zastosowanie |
|---|---|---|---|
| Lokalna para kluczy | Plik lub zmienna środowiskowa na maszynie | Twój kod, bezpośrednio | Lokalne tworzenie, testy, CI |
| Portfel przeglądarkowy | Portfel użytkownika końcowego (np. Phantom, Solflare) | Użytkownik końcowy, per transakcja | Frontendowe dApps, gdzie użytkownicy podpisują własne transakcje |
| Cloud KMS / HSM | Sprzętowa usługa zarządzania kluczami (AWS KMS, GCP KMS, Vault) | Twój backend żąda podpisu od usługi | Usługi backendowe, operacje skarbcowe, środowiska regulowane |
| Portfele zarządzane / MPC | Podzielone lub przechowywane w infrastrukturze dostawcy | Dostawca 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ć (pokrywać opłaty, wysyłać transakcje programowe lub
obsługiwać skarbiec), użyj dedykowanego backendu do zarządzania kluczami zamiast surowego
keypair. Solana Foundation utrzymuje Keychain, ujednoliconą
bibliotekę podpisującą (Rust, TypeScript, Python i Go), 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, Utila oraz Fordefi.
Ponieważ interfejs jest wspólny dla wszystkich backendów, możesz tworzyć lokalnie z
kluczem w pamięci i przejść na backend produkcyjny poprzez konfigurację, bez
przepisywania kodu aplikacji (backendy, które same rozgłaszają transakcje, takie jak Crossmint,
są wywoływane za pomocą ścieżki „podpisz i wyślij”). Keychain jest kompatybilny z
@solana/kit, Rust SDK, solders (Python) oraz solana-go v2
(Go).
Keychain
Ujednolicone podpisywanie dla kluczy lokalnych, KMS, HSM i zarządzanych backendów portfelowych.
Wybór backendu
Porównaj modele przechowywania kluczy i wybierz odpowiedni backend podpisujący dla swojej aplikacji.
Pełną listę kontrolną dla środowiska produkcyjnego — zarządzanie kluczami, bezpieczeństwo RPC i monitorowanie — znajdziesz w Production Readiness.
Is this page helpful?