Mikä on nonce?

Viimeksi päivitetty: 31.3.2025

Johdanto

Nonce on numero, joka yksilöi jokaisen kutsun REST API:n yksityisiin päätepisteisiin. Nonce vaaditaan kaikkiin todennettuihin kutsuihin Spot REST API:in, mukaan lukien tilinhallinnan päätepisteet (kuten Balance, QueryOrders, QueryLedgers jne.), rahoitus-/ansaintapäätepisteet (DepositAddresses, DepositStatus jne.) ja kaupankäyntipäätepisteet (AddOrderCancelOrder jne.).

Futures REST -todennukseen nonce-arvoa ei vaadita.

Toteutus

Nonce toteutetaan laskurina, jonka on oltava yksilöllinen ja kasvettava jokaisen API-kutsun yhteydessä. Esimerkiksi, jos nonce-arvo alkaa nollasta, seuraavat kelvolliset nonce-arvot olisivat 1, 2, 3, 4 ja niin edelleen.

Vaikka yllä kuvattu yksinkertainen laskuri tuottaisi kelvollisen noncen, tehokkaampi tapa luoda kelvollisia nonce-arvoja on käyttää UNIX-aikaleimaa millisekunteina (millisekuntien määrä 1. tammikuuta 1970 klo 00:00:00 UTC alkaen). Millisekunnin tai korkeamman resoluution aikaleiman käyttäminen noncena takaa, että kaikki kelvollisen noncen vaatimukset täyttyvät (yksilöllisyys ja jatkuva kasvu), ja tarjoaa riittävät arvot kauppiaille, jotka tekevät nopeita peräkkäisiä API-kutsuja (markkinatakaajat, korkeataajuuskaupankäyntirobotit jne.).

Esimerkkikoodi

Seuraavassa on esimerkkejä kelvollisten millisekunnin tarkkuudella olevien nonce-arvojen luomisesta eri ohjelmointikielillä:

Python

api_nonce = str(int(time.time()*1000))

JavaScript

var api_nonce = Date.now().toString()

PHP

$api_nonce = explode(' ', microtime());
$api_nonce = $api_nonce[1].substr($api_nonce[0], 2, 3);

API-avaimet ja noncet

Jokaisella API-avaimella on oma erillinen noncensa, ja nonce-arvo on pysyvä, mikä tarkoittaa, että viimeksi käytetty nonce pysyy ennallaan, vaikka API-avainta ei käytettäisi jonkin aikaan.

Huomaa, että noncea ei ole mahdollista nollata tietylle API-avaimelle. Jos nonce-arvo muuttuu virheelliseksi (esimerkiksi käyttämällä vahingossa UNIX-aikaleimaa kaukana tulevaisuudessa), ratkaisu olisi poistaa kyseinen API-avain ja luoda uusi API-avain, jolla olisi automaattisesti uusi aloitus-nonce-arvo 0 (nolla).

Tarvitsetko lisää apua?