Fiecare pool HeroMiners răspunde la același set de endpoint-uri HTTP doar pentru citire. Nu există cheie, cont sau înregistrare: accesați un URL și primiți JSON înapoi, cu Access-Control-Allow-Origin: * setat, astfel încât o pagină din browser îl poate apela direct. Folosiți-l pentru a construi un monitor pentru rig, un notificator de plăți, propriul dashboard sau pentru a aduce datele pool-ului într-un tabel.
Fiecare monedă are propriul pool, cu propriile cifre și propriul format de adresă, așa că alegeți mai întâi moneda și introduceți o adresă pentru acea monedă. Nimic din ce introduceți aici nu este trimis nicăieri în afară de pool, și doar când apăsați Rulați.
URL de bază
https://alephium.herominers.com
Endpoint-uri
GET/api/stats
Tot ce știe pool-ul despre sine în acest moment: hashrate-ul pool-ului și al rețelei, minerii și workerii conectați, ultimul bloc, taxele, porturile și setările de plată.
Parametri
address
O adresă de plată. Adaugă acel miner sub miner și sub solo_miner dacă minează și solo. Dacă o omiteți, niciuna dintre chei nu este trimisă.
Acesta este endpoint-ul de la care să porniți. Pagina pool-ului, pagina minerilor și fiecare grafic de pe acest site sunt construite din el.
Cerere
curl "https://alephium.herominers.com/api/stats"
Răspuns
Un obiect cu pool, network, config, charts, lastblock, payments și visitors, adică câte persoane sunt pe site în acest moment, sub forma { windowMinutes, activeVisitors, activeLookups }. Se recalculează o dată pe ciclu de statistici, așa că interogările mai dese returnează aceleași cifre.
GET/api/live_stats
Același conținut ca /api/stats, dar cererea rămâne deschisă până la finalul următorului ciclu de statistici și abia apoi primește răspuns. O cerere pe actualizare, în loc de interogări pe un cronometru.
Parametri
address
Include un miner în răspuns, ca la /api/stats.
Deschideți o conexiune și redeschideți-o când primește răspuns. Mai multe conexiuni deschise simultan de pe același IP sunt refuzate cu 503, așa că nu le înmulțiți.
Aceeași structură ca /api/stats, cu excepția faptului că miner și solo_miner sunt trimise întotdeauna, goale când nu s-a dat nicio adresă. Cererea rămâne deschisă cel mult un ciclu de statistici.
GET/api/stats_address
Un singur miner: hashrate-ul curent și mediu, share-urile valide și stale share-urile, soldul, suma plătită și aceleași cifre pentru fiecare worker.
Introduceți mai sus address pentru a rula această cerere. Comanda îl afișează pentru că fără el pool-ul răspunde cu o eroare.
Răspuns
Un obiect cu stats (totalurile minerului), payments, charts, unlocked și workers, un array cu o intrare pentru fiecare worker, identificat prin name. O adresă care nu a minat niciodată aici primește o eroare în loc de un miner gol.
GET/api/get_blocks
Blocurile găsite de pool care nu mai sunt în așteptare: plătite sau orfane. status spune care dintre ele.
Parametri
heightobligatoriu
Returnează blocurile sub această înălțime. Transmiteți un număr mult peste vârful lanțului pentru pagina cea mai nouă, apoi cea mai mică înălțime primită pentru a pagina înapoi.
Adresa celui care a găsit blocul este mascată înainte să părăsească pool-ul, așa că acest endpoint nu poate fi folosit pentru a colecta adrese. time este în secunde Unix, reward este în cea mai mică unitate a monedei, iar un bloc solo are un score de s0 când a fost plătit sau s1 când a devenit orfan.
Plățile trimise de pool, fie pentru întregul pool, fie pentru o singură adresă.
Parametri
timeobligatoriu
Returnează plățile dinaintea acestui timestamp Unix în secunde. Folosiți ora curentă pentru pagina cea mai nouă, apoi cel mai vechi timestamp primit pentru a pagina înapoi.
address
Restrânge la o singură adresă de plată. Omiteți-l pentru toate plățile făcute de pool.
limit
Câte să fie returnate. Limitat la dimensiunea paginii pool-ului, așa că un număr mai mare returnează pur și simplu această dimensiune.
format
Transmiteți parsed pentru a primi obiecte { tx, amount, time } în locul array-ului brut.
conversions
Cu address, transmiteți 1 pentru a primi și înregistrarea de conversie a fiecărei plăți de pe pagină care a fost convertită în altă monedă. Răspunsul devine atunci { payments, conversions }. Ignorat cu format=parsed.
Fără format, un array plat care alternează valoarea și timestamp-ul, fiecare valoare fiind txid:amount. Sumele sunt șiruri de caractere în cea mai mică unitate a monedei și trebuie să rămână șiruri: convertirea uneia în număr pierde precizie pe un lanț cu 18 zecimale.
GET/api/get_miners_stats
Cei mai mari zece mineri din pool, plus defalcările pe software de mining și pe regiuni din spatele paginii minerilor.
Un obiect cu miners, agents, regions, regionHistory și statsDisplay. Adresele sunt mascate. Când un panou nu este activat, array-ul său vine gol, iar statsDisplay spune acest lucru.
GET/api/get_blocks_search
Căutați blocurile pool-ului după înălțime, hash-ul blocului sau adresa celui care l-a găsit, simultan în blocurile în așteptare și în cele plătite.
Parametri
qobligatoriu
O înălțime, un hash de bloc sau o adresă.
offset
Sare peste atâtea rezultate. Răspunsul conține hasMore, ca să știți dacă trebuie să întrebați din nou.
Căutarea este limitată per IP, iar depășirea limitei returnează rateLimited cu timpul exact de așteptare în retryMs, nu o simplă eroare. Apelați mai întâi /api/get_blocks_search_config pentru a afla limitele de lungime și dacă search-ul este activat.
Introduceți mai sus q pentru a rula această cerere. Comanda îl afișează pentru că fără el pool-ul răspunde cu o eroare.
Răspuns
Un obiect cu pending și matured, ambele alternând valoarea și înălțimea ca /api/get_blocks, plus totalMatched, offset, limit și hasMore. Un bloc matured este în formatul /api/get_blocks; un bloc pending încă așteaptă maturarea și folosește formatul mai lung pentru blocuri în așteptare, deci câmpurile sale sunt în altă ordine.
GET/api/get_blocks_search_config
Dacă căutarea blocurilor este activată și limitele în care trebuie să se încadreze o interogare, astfel încât o casetă de căutare să poată fi configurată înainte de prima căutare.
{ enabled, minQueryLength, maxQueryLength, frontendCooldownMs }. Lungimile sunt în caractere, iar frontendCooldownMs este cât să așteptați între două căutări.
GET/api/get_miner_payout_level
Pragul de plată setat în prezent pentru o adresă, în monede întregi.
Parametri
addressobligatoriu
Adresa de plată.
Endpoint-ul corespunzător /api/set_miner_payout_level îl scrie și nu este deschis oricui: cererea trebuie să vină de pe IP-ul de mining al adresei respective. Această verificare și limita de cereri din fața ei sunt descrise în fila de setări a dashboard-ului, nu aici.
Introduceți mai sus address pentru a rula această cerere. Comanda îl afișează pentru că fără el pool-ul răspunde cu o eroare.
Răspuns
{ banned, minerMessage } și, când adresa este blocată, și blockMining, blockPayments și reason. Este notificarea pe care pagina minerului o afișează pentru această adresă: blocată de la mining, de la plată sau de la niciuna. minerMessage este mesajul operatorului pentru această adresă, sub forma { message, type, createdAt, expiresAt }, sau null când nu există.
Utilizare corectă
Interogați în ritmul pool-ului. Cifrele sunt recalculate o dată pe ciclu de statistici, iar config.updateInterval din răspunsul /api/stats spune cât durează acesta, în secunde. Interogările mai dese returnează același răspuns și consumă lățime de bandă pentru amândoi.
Preferați /api/live_stats unui cronometru rapid. Răspunde în momentul în care apare ceva nou, ceea ce este mai rapid pentru dumneavoastră și mai ușor pentru pool decât interogarea repetată.
Păstrați sumele ca șiruri de caractere. Recompensele și soldurile vin în cea mai mică unitate a monedei. Pe un lanț cu 18 zecimale, aceste numere întregi depășesc ce poate reține exact un număr JavaScript, așa că o conversie rotunjește în tăcere o plată.
Așteptați-vă ca adresele să fie mascate. Listele publice ascund mijlocul fiecărei adrese. Adresa dumneavoastră completă vă este necesară doar dumneavoastră și doar acolo unde o furnizați.
Tratați o limită de cereri ca pe o așteptare, nu ca pe o eroare. Acolo unde se aplică o limită, răspunsul conține retryMs. Așteptați atât și reîncercați, în loc să trimiteți cereri în rafală.
Spuneți cine sunteți. Un User-Agent care numește instrumentul dumneavoastră nu este obligatoriu, dar ne permite să vă anunțăm despre o schimbare, în loc să ghiciți ce s-a stricat.