Pooler 18
Gruvarbetare Saknas
Arbetare Saknas
Utvecklare

Pool-API

Varje HeroMiners-pool svarar på samma skrivskyddade HTTP-endpoints. Det finns ingen nyckel, inget konto och ingen registrering: begär en URL så får du JSON tillbaka, med Access-Control-Allow-Origin: * satt så att en sida i en webbläsare kan anropa den direkt. Använd den för att bygga en riggövervakning, en avisering om utbetalningar, en egen översikt eller för att hämta poolens data till ett kalkylark.

Varje mynt har sin egen pool med egna siffror och eget adressformat, så välj myntet först och ange sedan en adress för det myntet. Inget du skriver här skickas någon annanstans än till poolen själv, och bara när du trycker på Kör.

Bas-URL
https://alephium.herominers.com

Endpoints

GET /api/stats

Allt poolen vet om sig själv just nu: poolens och nätverkets hashrate, anslutna gruvarbetare och arbetare, senaste blocket, avgifter, portar och inställningarna för utbetalning.

Parametrar
address
En utbetalningsadress. Lägger till den gruvarbetaren under miner, och under solo_miner om hen också minar solo. Utelämnas den skickas ingen av nycklarna.

Det här är den endpoint du ska börja med. Poolsidan, sidan för gruvarbetare och varje diagram på den här webbplatsen byggs av den.

Förfrågan
curl "https://alephium.herominers.com/api/stats"
Svar

Ett objekt med pool, network, config, charts, lastblock, payments och visitors, alltså hur många personer som är på webbplatsen just nu, som { windowMinutes, activeVisitors, activeLookups }. Beräknas om en gång per statistikcykel, så tätare anrop ger samma siffror.

GET /api/live_stats

Samma data som /api/stats, men förfrågan hålls öppen tills nästa statistikcykel är klar och besvaras då. En förfrågan per uppdatering i stället för anrop med timer.

Parametrar
address
Ta med en gruvarbetare i svaret, som med /api/stats.

Öppna en anslutning och öppna den igen när den svarar. Flera öppna samtidigt från samma IP avvisas med 503, så sprid inte ut anropen parallellt.

Förfrågan
curl "https://alephium.herominers.com/api/live_stats"
Svar

Samma struktur som /api/stats, förutom att miner och solo_miner alltid skickas, tomma när ingen adress angavs. Förfrågan hålls öppen i upp till en statistikcykel.

GET /api/stats_address

En gruvarbetare: aktuell och genomsnittlig hashrate, giltiga shares och stale shares, saldo, utbetalt belopp och samma siffror per arbetare.

Parametrar
addresskrävs
Utbetalningsadressen som ska slås upp.
Förfrågan
curl "https://alephium.herominers.com/api/stats_address"

Ange address ovan för att köra den här. Kommandot visar värdet eftersom poolen svarar med ett fel utan det.

Svar

Ett objekt med stats (gruvarbetarens summor), payments, charts, unlocked och workers, en array med en post per arbetare, namngiven efter sitt name. En adress som aldrig har minat här får ett fel i stället för en tom gruvarbetare.

GET /api/get_blocks

Block som poolen har hittat och som inte längre väntar: utbetalda eller föräldralösa. status anger vilket.

Parametrar
heightkrävs
Returnera block under den här höjden. Ange ett tal långt över kedjans spets för den senaste sidan, och sedan den lägsta höjd du fick för att bläddra bakåt.

Upphittarens adress maskeras innan den lämnar poolen, så den här endpointen kan inte användas för att samla in adresser. time är i Unix-sekunder, reward i myntets minsta enhet, och ett soloblock har en score på s0 när det betalades ut eller s1 när det blev föräldralöst.

Förfrågan
curl "https://alephium.herominers.com/api/get_blocks?height=9999999999"
Svar

En platt array som växlar mellan värde och höjd: [block, height, block, height, ...]. Varje block är kolonseparerat:

0hash1time2difficulty3shares4score5nonce6status7reward8finder9region10rewardScheme
GET /api/get_payments

Betalningar som poolen har skickat, antingen för hela poolen eller för en adress.

Parametrar
timekrävs
Returnera betalningar före den här Unix-tidsstämpeln i sekunder. Använd aktuell tid för den senaste sidan, och sedan den äldsta tidsstämpel du fick för att bläddra bakåt.
address
Begränsa till en utbetalningsadress. Utelämna för alla betalningar poolen har gjort.
limit
Hur många som ska returneras. Begränsas till poolens egen sidstorlek, så ett större tal ger helt enkelt den.
format
Ange parsed för att få { tx, amount, time }-objekt i stället för den råa arrayen.
conversions
Tillsammans med address anger du 1 för att också få växlingsposten för varje utbetalning på sidan som växlades till ett annat mynt. Svaret blir då { payments, conversions }. Ignoreras med format=parsed.
Förfrågan
curl "https://alephium.herominers.com/api/get_payments?time=1792758504"
Svar

Utan format en platt array som växlar mellan värde och tidsstämpel, där varje värde är txid:amount. Belopp är strängar i myntets minsta enhet och måste förbli strängar: tolkas ett som ett tal går precision förlorad på en kedja med 18 decimaler.

GET /api/get_miners_stats

De tio största gruvarbetarna i poolen, plus fördelningen per miningprogram och region bakom sidan för gruvarbetare.

Förfrågan
curl "https://alephium.herominers.com/api/get_miners_stats"
Svar

Ett objekt med miners, agents, regions, regionHistory och statsDisplay. Adresser är maskerade. När en panel inte är aktiverad kommer dess array tillbaka tom och statsDisplay anger det.

GET /api/get_blocks_search_config

Om blocksökningen är påslagen, och vilka gränser en sökfråga måste hålla sig inom, så att en sökruta kan ställas in före den första sökningen.

Förfrågan
curl "https://alephium.herominers.com/api/get_blocks_search_config"
Svar

{ enabled, minQueryLength, maxQueryLength, frontendCooldownMs }. Längderna anges i tecken, och frontendCooldownMs är hur länge du ska vänta mellan två sökningar.

GET /api/get_miner_payout_level

Den utbetalningsgräns som för närvarande är inställd för en adress, i hela mynt.

Parametrar
addresskrävs
Utbetalningsadressen.

Motsvarande /api/set_miner_payout_level skriver den, och den är inte öppen för vem som helst: förfrågan måste komma från adressens egen mining-IP. Den kontrollen, och anropsgränsen framför den, beskrivs på fliken Inställningar i översikten i stället för här.

Förfrågan
curl "https://alephium.herominers.com/api/get_miner_payout_level"

Ange address ovan för att köra den här. Kommandot visar värdet eftersom poolen svarar med ett fel utan det.

Svar

{ status: "done", level }. En adress som aldrig har ställt in någon får poolens minimum.

GET /api/miner_ban_status

Spärrmeddelandet som sidan för gruvarbetare visar för en adress, och ett eventuellt meddelande som operatören har lämnat till den.

Parametrar
addresskrävs
Utbetalningsadressen.
Förfrågan
curl "https://alephium.herominers.com/api/miner_ban_status"

Ange address ovan för att köra den här. Kommandot visar värdet eftersom poolen svarar med ett fel utan det.

Svar

{ banned, minerMessage }, och vid en spärr även blockMining, blockPayments och reason. Det är meddelandet som sidan för gruvarbetare visar för den här adressen: spärrad från mining, från utbetalningar eller ingetdera. minerMessage är operatörens meddelande till den här adressen, som { message, type, createdAt, expiresAt }, eller null när det inte finns något.

Använd den väl

  • Anropa i poolens egen takt. Siffrorna beräknas om en gång per statistikcykel, och config.updateInterval i svaret från /api/stats anger hur lång den är i sekunder. Att fråga oftare ger samma svar och kostar bandbredd för oss båda.
  • Använd hellre /api/live_stats än en snabb timer. Den svarar så fort det finns något nytt, vilket är både snabbare för dig och lättare för poolen än upprepade anrop.
  • Behåll belopp som strängar. Belöningar och saldon kommer tillbaka i myntets minsta enhet. På en kedja med 18 decimaler blir dessa heltal större än vad ett JavaScript-tal kan hålla exakt, så att tolka ett avrundar tyst en utbetalning.
  • Räkna med maskerade adresser. Offentliga listor döljer mitten av varje adress. Din egen fullständiga adress behövs bara av dig, och bara där du själv anger den.
  • Hantera en anropsgräns som en väntan, inte ett fel. Där en gräns gäller innehåller svaret retryMs. Vänta så länge och försök sedan igen i stället för att översvämma poolen med anrop.
  • Berätta vem du är. En User-Agent som namnger ditt verktyg krävs inte, men då kan vi berätta om en ändring för dig i stället för att du får gissa vad som gick sönder.