Транзакція виконується лише тоді, коли вона містить дійсний
підпис від кожного
обов'язкового підписанта. Під час локальної розробки ви зазвичай тримаєте цей ключ як
Keypair і підписуєте напряму. У
продакшні головне питання інше: де зберігається приватний ключ
і хто має право авторизувати підпис ним?
Ніколи не вбудовуйте приватні ключі у клієнтський код, не включайте їх у фронтенд-збірку та не комітьте до системи контролю версій. Будь-хто, хто отримає ключ, матиме повний контроль над коштами цього акаунта.
Підходи до підписання
| Підхід | Де зберігається ключ | Хто підписує | Найкраще для |
|---|---|---|---|
| Локальний keypair | Файл або змінна середовища на машині | Ваш код, напряму | Локальна розробка, тести, CI |
| Браузерний гаманець | Гаманець кінцевого користувача (наприклад, Phantom, Solflare) | Кінцевий користувач, для кожної транзакції | Фронтенд-dApps, де користувачі самостійно підписують транзакції |
| Хмарний KMS / HSM | Апаратно захищений сервіс ключів (AWS KMS, GCP KMS, Vault) | Ваш бекенд запитує підпис у сервісу | Бекенд-сервіси, операції з казначейством, регульовані середовища |
| Керовані / MPC-гаманці | Розподілено або передано на зберігання в інфраструктуру провайдера | Провайдер спільно підписує відповідно до вашої політики | Вбудовані гаманці, робочі процеси погодження, інституційне зберігання |
Локальний keypair — єдиний підхід, який розміщує необроблений ключовий матеріал безпосередньо у вашому додатку. Кожен продакшн-підхід зберігає ключ у спеціалізованій інфраструктурі та доручає цій інфраструктурі підписувати від вашого імені.
Підписання на бекенді
Коли серверу потрібно підписувати — оплачувати комісії, надсилати транзакції програм або
керувати казначейством — використовуйте спеціалізований бекенд для керування ключами замість звичайного
keypair. Solana Foundation підтримує Keychain —
уніфіковану бібліотеку підписання (Rust і TypeScript), яка надає єдиний інтерфейс SolanaSigner
для всіх бекендів із таблиці вище: Memory, HashiCorp Vault, AWS
KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint, Dfns, Para, Openfort
та Utila.
Оскільки інтерфейс однаковий для всіх бекендів, ви можете розробляти локально з
ключем у пам'яті та перемикатися на продакшн-бекенд через конфігурацію,
не переписуючи код додатку. Keychain сумісний з
@solana/kit та
Rust SDK.
Keychain
Уніфіковане підписання для локальних ключів, KMS, HSM та керованих гаманців-бекендів.
Вибір бекенду
Порівняйте моделі зберігання та оберіть відповідний бекенд підписання для вашого додатку.
Повний чекліст для продакшну — керування ключами, безпека RPC та моніторинг — дивіться у Production Readiness.
Is this page helpful?