Tapahtuman tunnistus, ketjun vahvistus, tilausyhteys ja palvelun toimitus ovat erillisiä vaiheita. Varmista oikea ketju, omaisuuserä, vastaanottaja ja summa; sovella dokumentoitua hyväksymiskäytäntöä; ja tee täsmäytyksestä idempotentti. Pelkkä tapahtumaviite, kuvakaappaus tai selaimen painike ei voi osoittaa, että tietty tilaus on maksettu.
Erota ketjutapahtuma tilaustapahtumasta
Lompakon ilmoitus lähetetystä siirrosta on todiste sen omasta toiminnasta, ei täydellinen maksupäätös. Vastaanottavan taustajärjestelmän on havaittava aiottu verkko, varmistettava todellinen siirto ja yhdistettävä se tilaukseen. Vasta sen jälkeen tilaus voi soveltaa hyväksymiskäytäntöään. Infrastruktuurin toimitus on toinen operatiivinen vaihe maksun hyväksymisen jälkeen.
Pidä nämä siirtymät selkeinä sekä koodissa että asiakaskielellä. Näyttö voi näyttää odottavaa, havaittua tai vahvistuvaa nimeämättä tilausta maksetuksi. Älä anna selaimen toimittaa hyväksyttyä summaa tai korvata auktoritatiivista tilaa. Tallenna palvelimen luoma tarjous ja sen ohjeet, jotta myöhempi täsmäytys voidaan arvioida alkuperäistä tilausta vasten eikä muuttuvaa ostoskoria vasten.
Käytä ketjukohtaisia luottamussääntöjä
Eri verkot kuvaavat tapahtuman luotettavuutta eri tavoin. Bitcoin:n kehittäjäopas selittää, miten solmut valitsevat ketjun, jolla on eniten kertynyttä työtodistusta, ja miten kilpailevia lohkoja voi syntyä. Äskettäin havaittu tapahtuma tarvitsee siksi käytännön vahvistussyvyydelle ja mahdollisille ketjun muutoksille. Ei ole yhtä ainoaa vahvistusmäärää, joka sopisi kaikkiin omaisuuseriin ja kaupallisiin riskeihin.
Ethereum:n proof-of-stake-dokumentaatio selittää tarkistuspisteen lopullisuutta, kun taas Solana dokumentoi käsitellyt, vahvistetut ja lopulliset sitoutumistilat. Älä käännä näitä termejä huolettomasti yhdeksi yleiseksi lohkomääräksi. Kirjaa verkkokohtainen sääntö, tietolähde ja käyttäytyminen epävarmuuden aikana. Operaattorin on määritettävä hyväksymiskynnykset maksu- ja toimitusriskin perusteella, ei kopioitava lukua asiasta riippumattomasta kassasta.
Varmista todellinen siirtosisältö
Tunnista vastaanottaja, omaisuuserä ja summa oikeassa ketjussa. Token-maksut edellyttävät aiotun tokenin identiteettiä, ei pelkästään onnistunutta tapahtumaa osoitteeseen. Varmista asiaankuuluva suorituksen onnistuminen ja siirron todisteet ketjun mallin mukaisesti. Jäsennä kokonaislukusummat omaisuuserän oikealla tarkkuudella sen sijaan, että luottaisit selaimen toimittamaan muotoiltuun desimaalilukuun.
Maksuohjeen on pysyttävä sidottuna alkuperäiseen reittiinsä. Siirto toisessa verkossa, eri token, jolla on sama symboli, tai asiaankuulumaton tapahtumaviite ei saa täyttää sitä. Varmistustietueen tulee selittää, mitä tarkistettiin, ja säilyttää päätöksen tarkasteluun tarvittavat todisteet. Tämä opas kuvaa yleisiä maksujen täsmäytysperiaatteita eikä tietyn palvelun toteutusta.
Tee tilausyhdistämisestä yksiselitteinen
Kiinteät vastaanotto-osoitteet voivat vastaanottaa useita tilauksia samankaltaisilla summilla. Vastaavan siirron olemassaolo ei todista, mille asiakkaalle tai tilaukselle hyvitys kuuluu. Määritä yhdistämismenetelmä ennen live-maksujen hyväksymistä ja sisällytä törmäysten käsittely. Käyttäjän toimittama tapahtumaviite edellyttää silti vahvistusta siitä, ettei samaa siirtoa ole jo kohdistettu muualle.
Kuvittele kaksi laskua samasta summasta samalla reitillä päällekkäisenä ajanjaksona. Tarkkailija näkee yhden siirron. Molempien merkitseminen automaattisesti maksetuiksi on väärin; yhden valitseminen ilman riittäviä todisteita on myös turvatonta. Pidä siirto kohdistamattomana tai tarkistettavana, kunnes operaattorin käytäntö voi todeta pätevän yhteyden. Epäselvä osuma on käsiteltävä tila, ei syy keksiä varmuutta.
Määrittele tilat, jotka sietävät myöhäistä ja muuttuvaa todistetta
Maksuprosessi hyötyy pienestä joukosta selkeitä tiloja, joissa ketjutodisteet erotetaan päätöksestä hyväksyä tilaus. Tämä havainnollistava taulukko selittää mahdollisia vaiheita eikä kuvaa tietyn palvelun tilanimiä. Jokaisella siirtymällä tulee olla vahvistettu syy, ja maksun hyväksymisen tulee pysyä erillään infrastruktuurin toimituksesta.
Sisällytä myöhäiset, osittaiset ja ylimääräiset siirrot, tarjouksen vanheneminen ja tilapäisesti saatavilla olemattomat ketjutiedot. Vanheneminen ei saa todellista siirtoa katoamaan. Myöhäinen maksu voi edellyttää tarkistusta automaattisen hyväksymisen tai hylkäämisen sijaan. Jos aiemmin havaittu ketjutapahtuma muuttuu, arvioi tila uudelleen dokumentoidun käytännön mukaisesti sen sijaan, että kohtelisit jokaista tarkkailijailmoitusta peruuttamattomana totuutena.
| Havainnollistava tila | Merkitys | Seuraava päätös |
|---|---|---|
| Odottaa | Ei vahvistettua kelvollista siirtoa | Jatka kelvollisen laskun tarkkailua |
| Havaittu | Asiaankuuluva siirto havaittu | Tarkista ketjun luotettavuus ja yhteys |
| Vahvistuu | Hyväksymissääntö ei ole vielä täyttynyt | Tarkkaile, kunnes käytäntö sallii päätöksen |
| Tarkistus | Myöhäinen, osittainen tai epäselvä todiste | Ratkaise operaattorin käytännön mukaisesti |
| Hyväksytty | Vahvistettu ja täsmäytetty maksu | Jatka erilliseen toimitustyönkulkuun |
Tee uudelleenyrityksistä turvallisia ja havaittavia
Tarkkailijat ja täsmäytystyöt yrittävät uudelleen keskeytyneiden yhteyksien tai prosessien uudelleenkäynnistysten jälkeen. Käytä vakaata siirron identiteettiä, kuten ketjua ja asianmukaista tapahtuma- tai siirtotunnistetta, estääksesi päällekkäiset hyvitykset. Säilytä edistyminen ja päätökset, jotta sama tapahtuma voidaan käsitellä uudelleen ilman toisen palvelun valmistelua tai hyväksytyn tarjouksen muuttamista.
Erota tuntematon tulos epäonnistuneesta toiminnosta. Jos alavirran pyyntö aikakatkaistaan, tarkista sen auktoritatiivinen tulos ennen uudelleenlähetystä. Pidä kestävät tietueet hyväksytyistä ja epävarmoista toimista. Rajoita pääsyä tilaustunnisteisiin ja sisäisiin todisteisiin säilyttäen samalla riittävät tiedot riitautetun maksun tutkimiseksi. Luotettavuus tässä tarkoittaa toistettavia päätöksiä, ei sujuvaa animaatiota kassassa.
Tiedä, mitä odottava tilaus vielä tarvitsee
Tilaus voi jäädä odottavaksi, koska siirtoa ei ole havaittu, vaadittua ketjun luotettavuutta ei ole saavutettu tai sen yhteys laskuun edellyttää tarkistusta. Säilytä lasku ja julkinen tapahtumaviite, tarkista ilmoitetut hyväksymissäännöt ja käytä tilauksen aiottua tukiprosessia. Viivästynyt tilapäivitys ei itsessään ole syy lähettää toista maksua.
Noudata todellisen tilauksen ohjeita ja vahvistettua tilaa. Maksun vahvistuksen tulee osoittaa täsmäytetyn siirron hyväksyminen, kun taas palvelun toimituksella on erillinen tila. Pidä yksityiset käyttötunnukset ja lompakon salaisuudet poissa tukipyynnöistä.
Käytännön tarkistuslistasi.
- Säilytä muuttumaton palvelimen luoma tarjous.
- Varmista ketju, vastaanottaja, omaisuuserä ja kokonaislukusumma.
- Dokumentoi ketjukohtaiset hyväksymissäännöt.
- Käsittele kiinteiden osoitteiden törmäykset arvaamatta.
- Estä päällekkäiset hyvitykset ja turvattomat uudelleenlähetysyritykset.
- Testaa myöhäiset, osittaiset, väärän reitin ja muuttuneiden todisteiden tapaukset.
Olennaiset yksityiskohdat.
Riittääkö tapahtumatiiviste maksun vahvistamiseen?+
Ei. Varmista siirto aiotussa ketjussa, sen hyötykuorma ja luotettavuus, ja todista sitten, että se kuuluu tilaukseen eikä sitä ole jo hyvitetty.
Voivatko kaikki verkot käyttää samaa vahvistuskynnystä?+
Ei. Verkot tarjoavat erilaisia luotettavuus- ja lopullisuusmalleja. Operaattorin on määritettävä ja testattava kullekin reitille sopiva hyväksymiskäytäntö.
Tarkoittaako vahvistettu maksu, että palvelin on valmisteltu?+
Ei. Maksun hyväksyminen ja toimitus ovat erillisiä työnkulun tapahtumia. Ilmoita valmistelun tila sen omasta auktoritatiivisesta prosessista.
Mene lähteelle.
Nämä lähteet tukevat tämän oppaan teknisiä käsitteitä. Noudata ajantasaisia dokumentaatioita ennen tuotantojärjestelmän muuttamista.
- Bitcoin-kehittäjäopas: Lohkoketjun käyttäytyminen developer.bitcoin.org
- Ethereum: Proof of stake ja lopullisuus ethereum.org
- Solana: RPC-tilan sitoutuminen solana.com
Toimituksellinen ohjaus: SwissOctet. Esimerkit ovat havainnollistavia. Palvelumääritykset, saatavilla olevat vaihtoehdot ja sopimusehdot on tarkistettava erikseen.