Tuotannon parhaat käytännöt

Keychain abstrahoi allekirjoitustaustajärjestelmän, mutta allekirjoittajan käyttäminen tuotannossa on edelleen sinun vastuullasi. Nämä käytännöt koskevat kaikkia taustajärjestelmiä; katso Taustajärjestelmän valinta sopivan valitsemiseen.

Erota kuumat ja kylmät allekirjoittajat

Käytä pienellä saldolla toimivaa ("kuumaa") allekirjoittajaa toistuviin, automatisoituihin tapahtumiin ja erillistä korkean arvon ("kylmää") allekirjoittajaa treasury-siirtoihin. Turvaa kylmä allekirjoittaja MPC-säilyllä tai pilvi-HSM:llä ja vaadi hyväksymiskäytännöt ennen sen allekirjoitusta. Koska rajapinta on identtinen, kukin rooli voi käyttää eri taustajärjestelmää muuttamatta kutsupisteitä.

Kierrä avaimia harkitusti

Solanassa allekirjoitusavain on tilin osoite, joten avaimen kierto tuottaa uuden osoitteen. Suunnittele kierto migraationa: luo uusi avain, siirrä asiaankuuluvat valtuudet (tai varat) uuteen osoitteeseen ja poista sitten vanha käytöstä. Käytä eri ympäristöissä erillisiä avaimia, jotta devnet-avaimia ei koskaan käytetä uudelleen mainnetissä.

Myönnä vähimmäisoikeudet

Rajaa kunkin taustajärjestelmän tunnistetiedot allekirjoittamiseen tarvittavaan minimiin. AWS KMS:n osalta tämä tarkoittaa oikeuksia kms:Sign, kms:DescribeKey ja kms:GetPublicKey kyseiseen avaimeen (saatavuustarkistus käyttää kahta jälkimmäistä). Suosi IAM-rooleja staattisten tunnistetietojen sijaan. Noudata samaa periaatetta Vault-käytännöissä ja hallinnoitujen lompakkojen API- avaimissa.

Varaudu saatavuuteen

Etätaustajärjestelmät riippuvat verkkopalvelusta. Tarkista saatavuus ennen kuin luotat allekirjoittajaan (isAvailable() TypeScriptissä, is_available() Rustissa ja Pythonissa, IsAvailable(ctx) Go:ssa), toista pelkästään allekirjoittavien kutsujen epäonnistumiset backoff-viiveellä ja määritä vaihtoehtoinen reitti katkostilanteita varten. Älä toista sokeasti lähettävää taustajärjestelmää (Crossmint, Fordefin natiivi auto-tila): katso Vahvistamattomien lähetysten käsittely. Keychain pakottaa HTTPS:n määritetyille perus-URL-osoitteille, hylkää uudelleenohjaukset ja käyttää oletusarvoista pyyntöjen aikakatkaisua.

Vahvistamattomien lähetysten käsittely

Crossmint ja Fordefin natiivi auto-tila allekirjoittavat ja lähettävät transaktion palvelinpuolella, joten epäonnistunut kutsu ei tarkoita, ettei mitään ole mennyt perille. Kun palveluntarjoaja on voinut hyväksyä transaktion, Keychain raportoi virheen BROADCAST_UNCONFIRMED (Rustissa SignerError::BroadcastUnconfirmed). Virhe sisältää palveluntarjoajan transaktiotunnuksen, jos luontipyyntö hyväksyttiin, ja aina myös idempotenssiavaimen, jolla luontipyyntö lähetettiin ja joka johdetaan viestistä.

  • Täsmäytä tilanne palveluntarjoajan kanssa transaktiotunnuksen avulla ennen kuin teet mitään muuta.
  • Tavu tavulta identtisen transaktion uudelleenlähetys on turvallista: idempotenssiavain poistaa kaksoiskappaleet.
  • Transaktion uudelleenrakentaminen (esimerkiksi uudella blockhashilla) tuottaa uuden avaimen ja siten uuden siirron.

Suojaa salaisuudet ja siirto

  • Etätaustajärjestelmät pakottavat HTTPS:n määritetyille perus-URL-osoitteille ja hylkäävät uudelleenohjaukset. Ainoa poikkeus on Vault, joka hyväksyy pelkän HTTP:n loopback-osoitteessa, jotta paikallinen vault server -dev toimii.
  • Toimita API-avaimet, tokenit ja tunnistetiedot salaisuudenhallintajärjestelmästä tai ympäristömuuttujista — älä koskaan kovakoodaa niitä tai tallenna niitä versionhallintaan.
  • Keychain puhdistaa virhevastauksista salaisuudet, jotta ne eivät vuoda lokeihin; pidä omat lokisi vapaana raakatunnistetiedoista ja avainmateriaalista.

Valvo ja tarkasta allekirjoituksia

Seuraa allekirjoitusten onnistumisastetta, viivettä ja virhemääriä sekä hälytä piikkitilanteissa — katso mittarit kohdasta Tuotantovalmius. Ota käyttöön palveluntarjoajan puolen tarkastuslokit (KMS, Vault tai säilyttäjä) ja sovita ne yhteen sovelluksesi lähettämien tapahtumien kanssa.

Tiedä, mitä Keychain tarkistaa

  • Keychain validoi allekirjoitusvaiheen, ei transaktiotasi: simulointia, transaktion sisällön tarkistusta tai käytäntömoottoria ei ole. Toteuta nämä omassa sovelluksessasi tai palveluntarjoajan käytäntöhallinnassa.
  • Fordefin natiivi manuaalitila muokkaa transaktiota (blockhash, Compute Budget -maksuohjeet) ennen sen allekirjoittamista. Jatka sen palauttamasta transaktiosta, älä koskaan lähettämästäsi, ja suorita se ennen muita allekirjoittajia.
  • Rust nollaa avainten välipuskurit muistista; Python ja Go eivät pysty siihen. Kun käytät Memory- taustajärjestelmää näillä kielillä, pidä koko prosessin muistia arkaluonteisena.
  • Ledgerin kanssa laitteen näyttö on ainoa luotettava kuvaus siitä, mitä allekirjoitetaan. Älä ota tuotannossa käyttöön unsafe-debug-ominaisuutta tai TRACE-lokitusta moduulille solana_remote_wallet, sillä molemmat kirjaavat laitteen ja transaktion tiedot lokiin.

Katso tietoturvamalli kokonaiskuvaa varten.

Is this page helpful?

Sisällysluettelo

Muokkaa sivua
© 2026 Solana Foundation. Kaikki oikeudet pidätetään.