Ký trong Môi trường Production

Một giao dịch chỉ được thực thi khi nó mang chữ ký hợp lệ từ mọi người ký bắt buộc. Trong quá trình phát triển cục bộ, bạn thường giữ khóa đó dưới dạng Keypair và ký trực tiếp. Trong môi trường production, câu hỏi quan trọng lại khác: khóa riêng tư được lưu ở đâu, và ai được phép ủy quyền chữ ký với nó?

Không bao giờ nhúng khóa riêng tư vào mã phía client, đóng gói chúng vào frontend, hoặc commit chúng vào source control. Bất kỳ ai lấy được khóa sẽ có toàn quyền kiểm soát tài sản của tài khoản đó.

Các phương pháp ký

Phương phápNơi lưu trữ khóaAi kýPhù hợp nhất cho
Keypair cục bộMột tệp hoặc biến môi trường trên máyMã của bạn, trực tiếpPhát triển cục bộ, kiểm thử, CI
Ví trình duyệtVí của người dùng cuối (ví dụ: Phantom, Solflare)Người dùng cuối, theo từng giao dịchCác dApp frontend nơi người dùng ký giao dịch của chính họ
Cloud KMS / HSMDịch vụ khóa được hỗ trợ bởi phần cứng (AWS KMS, GCP KMS, Vault)Backend của bạn yêu cầu chữ ký từ dịch vụDịch vụ backend, vận hành kho bạc, môi trường được quản lý
Ví Managed / MPCĐược phân tách hoặc lưu ký qua cơ sở hạ tầng của nhà cung cấpNhà cung cấp đồng ký theo chính sách của bạnVí tích hợp, quy trình phê duyệt, lưu ký tổ chức

Keypair cục bộ là phương pháp duy nhất đặt vật liệu khóa thô vào trong ứng dụng của bạn. Mọi phương pháp production đều giữ khóa trong cơ sở hạ tầng chuyên dụng và yêu cầu cơ sở hạ tầng đó ký thay mặt bạn.

Ký phía Backend

Khi một máy chủ cần ký (trả phí, gửi các giao dịch của chương trình hoặc vận hành một kho quỹ), hãy dùng một backend quản lý khóa chuyên dụng thay vì một keypair thô. Solana Foundation duy trì Keychain, một thư viện ký thống nhất (Rust, TypeScript, Python và Go) cung cấp một giao diện SolanaSigner duy nhất trên mọi backend trong bảng trên: Memory, HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint, Dfns, Para, Openfort, Utila và Fordefi.

Vì giao diện được dùng chung cho mọi backend, bạn có thể phát triển cục bộ với một khóa trong bộ nhớ và chuyển sang backend production thông qua cấu hình, mà không cần viết lại mã ứng dụng (các backend tự phát sóng giao dịch thay bạn, chẳng hạn như Crossmint, sẽ được gọi qua luồng ký và gửi thay thế). Keychain tương thích với @solana/kit, Rust SDK, solders (Python) và solana-go v2 (Go).

Để xem danh sách kiểm tra production đầy đủ — quản lý khóa, bảo mật RPC và giám sát — xem Sẵn sàng cho Production.

Is this page helpful?

Mục lục

Chỉnh sửa trang