Solana Keychain tarjoaa yhtenäisen rajapinnan Solana-transaktioiden allekirjoittamiseen eri avainhallintataustajärjestelmien kautta. Kehitä paikallisesti muistissa olevalla avaimella ja siirry tuotannossa yritystason avainhallintaan, pilvipohjaisiin HSM-moduuleihin tai hallinnoituihin lompakkopalveluihin ilman, että allekirjoituskoodiasi tarvitsee kirjoittaa uudelleen.
Miksi Keychain?
- Yksi rajapinta: Yksi
SolanaSigner-perusrajapinta kaikille taustajärjestelmille, sekä yksi ominaisuus kutakin taustajärjestelmää kohden: allekirjoitus, uudelleenkirjoitus ja allekirjoitus tai allekirjoitus ja lähetys - Vaihda taustajärjestelmää: Vaihda avainhallintapalvelun tarjoajaa konfiguraation kautta; kutsukohtia tarvitsee muuttaa vain, jos uuden taustajärjestelmän ominaisuus on erilainen (Crossmintin ja Fordefin natiilitilat)
- Maksa vain käyttämästäsi: Rustin ominaisuuslipukkeet (feature flags), taustajärjestelmäkohtaiset npm-paketit, Pythonin lisäosat (extras) ja taustajärjestelmäkohtaiset Go-moduulit sisältävät vain tarvitsemasi taustajärjestelmät
- Auditoitu: Rust, TypeScript, Python ja Go auditoinut OtterSec (valinnainen Ledger-taustajärjestelmä oli auditoinnin ulkopuolella); aiempi Accretion-auditointi kattoi Rustin ja TypeScriptin. Katso auditoinnin tila.
Arkkitehtuuri
- Kielet: Rust, TypeScript, Python ja Go, yhtäläisin ominaisuuksin (Ledger-taustajärjestelmä on vain Rustille)
- Rajapinta:
SolanaSigner-perusrajapinta (pubkey,sign_message,is_available) sekä täsmälleen yksi ominaisuus kutakin taustajärjestelmää kohden:TransactionSigner,ModifyingSignertaiSendingSigner - Taustajärjestelmät: Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, CDP, Crossmint, Dfns, Openfort, Para, Utila, Fordefi, Ledger (vain Rust, valinnainen, auditoimaton)
- Yhteensopivuus:
@solana/kitja@solana/signers8.1+ (TypeScript) |solana-sdk2.x, 3.x tai 4.xsdk-v2/sdk-v3/sdk-v4-ominaisuuksien kautta (Rust; v1-transaktiot vaativatsdk-v4:n) |solders(Python) |solana-gov2 (Go)
Tuetut järjestelmät
Taustajärjestelmät kattavat paikallisen kehityksen, itse isännöidyn ja pilvipalvelupohjaisen avaintenhallinnan sekä hallinnoidut tai MPC-lompakkopalvelut. Katso Taustajärjestelmän valinta vertaillaksesi säilytysratkaisuja ja valitaksesi oikean vaihtoehdon.
| Taustajärjestelmä | Käyttötapaus | Rust | TypeScript | Python | Go |
|---|---|---|---|---|---|
| Memory | Kehitys, testaus | ✓ | ✓ | ✓ | ✓ |
| HashiCorp Vault | Itse isännöity avaintenhallinta | ✓ | ✓ | ✓ | ✓ |
| AWS KMS | Pilvinatiivi (AWS) | ✓ | ✓ | ✓ | ✓ |
| GCP KMS | Pilvinatiivi (GCP) | ✓ | ✓ | ✓ | ✓ |
| Privy | Upotetut lompakot | ✓ | ✓ | ✓ | ✓ |
| Turnkey | Ei-säilytetty avaintenhallinta | ✓ | ✓ | ✓ | ✓ |
| Fireblocks | Institutionaalinen säilytys | ✓ | ✓ | ✓ | ✓ |
| CDP | Coinbase Developer Platform | ✓ | ✓ | ✓ | ✓ |
| Crossmint | Crossmint-hallinnoidut lompakot | ✓ | ✓ | ✓ | ✓ |
| Dfns | Dfns-lompakkoinfrastruktuuri | ✓ | ✓ | ✓ | ✓ |
| Openfort | Openfort-taustajärjestelmälompakot | ✓ | ✓ | ✓ | ✓ |
| Para | Para MPC -lompakot | ✓ | ✓ | ✓ | ✓ |
| Utila | Utila MPC -säilytys | ✓ | ✓ | ✓ | ✓ |
| Fordefi | Fordefi MPC -säilytys | ✓ | ✓ | ✓ | ✓ |
| Ledger | Laitelompakko (valinnainen, auditoimaton) | ✓ |
Pikaopas
Rust
Asenna Rust-paketti:
cargo add solana-keychain
Peruskäyttö:
use solana_keychain::{Signer, SolanaSigner};// Create a signer from any backendlet signer = Signer::from_memory("base58_private_key")?;let pubkey = signer.pubkey();// Transaction signing is a capability; `tx` is a VersionedTransactionif let Some(tx_signer) = signer.as_transaction_signer() {let result = tx_signer.sign_transaction(&mut tx).await?;}// Or let the umbrella route any backend shape and supply the RPC hop yourselflet signature = signer.sign_and_send(&mut tx, |encoded| async move { broadcast(encoded).await }).await?;
TypeScript
Asenna TypeScript-paketti:
pnpm add @solana/keychain
Peruskäyttö:
import { createKeychainSigner } from "@solana/keychain";import { signTransactionWithSigners } from "@solana/signers";// Create any signer via the unified factoryconst signer = await createKeychainSigner({backend: "vault",vaultAddr: "https://vault.example.com:8200",vaultToken: "hvs.xxxxx",keyName: "my-solana-key",publicKey: "base58_public_key"});// Sign an already-compiled transactionconst signedTx = await signTransactionWithSigners([signer],compiledTransaction);
- TypeScript-opas -
@solana/keychainpaketit - npm-paketti - npm-paketti
Voit asentaa Keychain-allekirjoittajan Kit-asiakasohjelmaan
sen payer- tai identity-roolia varten käyttämällä pakettia @solana/keychain-kit-plugin (Crossmintin ja
Fordefin natiilitilat on suljettu pois, koska ne kirjoittavat transaktiot uudelleen).
Python
Asenna paketti (raskaammat taustajärjestelmät toimitetaan lisäosina, esimerkiksi
solana-keychain[aws-kms]):
pip install solana-keychain
Peruskäyttö:
import osfrom solana_keychain import VaultSignerConfig, create_vault_signersigner = await create_vault_signer(VaultSignerConfig(api_base_url="https://vault.example.com:8200",token=os.environ["VAULT_TOKEN"],key_name="my-solana-key",public_key="base58_public_key",))# tx is a solders VersionedTransactionresult = await signer.sign_transaction(tx)
- Python-opas – Täydellinen asennus, lisäosat ja taustajärjestelmien konfigurointi
- PyPI – Python-paketti
Go
Jokainen taustajärjestelmä on oma Go-moduulinsa, joten haet vain ne taustajärjestelmät, jotka tuot käyttöösi:
go get github.com/solana-foundation/solana-keychain/go/signers/vault/v2@latest
Peruskäyttö:
import "github.com/solana-foundation/solana-keychain/go/signers/vault/v2"signer, err := vault.New(vault.Config{VaultAddr: "https://vault.example.com:8200",Token: os.Getenv("VAULT_TOKEN"),KeyName: "my-solana-key",Pubkey: "base58_public_key",})if err != nil {return err}// tx is a *solana.Transaction from solana-go v2res, err := signer.SignTransaction(ctx, tx)
- Go-opas – Moduulit, ominaisuudet ja taustajärjestelmien konfigurointi
- pkg.go.dev – Go-viitedokumentaatio
Seuraavat vaiheet
Rust-opas
Asenna paketti ja konfiguroi jokainen taustapalvelu.
TypeScript-opas
Asenna paketit ja konfiguroi jokainen taustapalvelu.
Python-opas
Asenna paketti ja sen lisäosat sekä konfiguroi kukin taustajärjestelmä.
Go-opas
Lisää taustajärjestelmäkohtaiset moduulit ja konfiguroi kukin taustajärjestelmä.
Taustapalvelun valinta
Vertaile säilytysratkaisuja ja valitse sopiva allekirjoitustaustapalvelu.
Tuotannon parhaat käytännöt
Hallitse allekirjoittaminen turvallisesti: kuuma/kylmä-erottelu, avainten kierrätys ja seuranta.
Mukautettujen allekirjoittajien lisääminen
Integroi uusi avaintenhallinnan taustapalvelu.
Lähde
Rakennettu ja ylläpidetty Solana Foundationin toimesta. Lisensoitu MIT-lisenssillä.
Is this page helpful?