Κάθε pool της HeroMiners απαντά στο ίδιο σύνολο HTTP endpoints μόνο για ανάγνωση. Δεν υπάρχει κλειδί, λογαριασμός ή εγγραφή: ζητάτε ένα URL και παίρνετε πίσω JSON, με ορισμένο το Access-Control-Allow-Origin: *, ώστε μια σελίδα στον browser να το καλεί απευθείας. Χρησιμοποιήστε το για να φτιάξετε μια παρακολούθηση για το rig σας, μια ειδοποίηση πληρωμών, ένα δικό σας dashboard ή για να φέρετε τα δεδομένα του pool σε ένα υπολογιστικό φύλλο.
Εισάγετε τη διεύθυνσή σας και κάθε παράδειγμα παρακάτω είναι έτοιμο να εκτελεστεί σε αυτό το pool. Ό,τι γράφετε εδώ δεν στέλνεται πουθενά εκτός από το ίδιο το pool, και μόνο όταν πατήσετε Εκτέλεση.
Βασικό URL
https://quantus.herominers.com
Endpoints
GET/api/stats
Όλα όσα ξέρει το pool για τον εαυτό του αυτή τη στιγμή: hashrate του pool και του δικτύου, συνδεδεμένοι miners και workers, το τελευταίο μπλοκ, προμήθειες, θύρες και οι ρυθμίσεις πληρωμών.
Παράμετροι
address
Μια διεύθυνση πληρωμής. Προσθέτει αυτόν τον miner στο miner, και στο solo_miner αν κάνει και solo mining. Χωρίς αυτήν δεν στέλνεται κανένα από τα δύο κλειδιά.
Από αυτό το endpoint ξεκινάτε. Η σελίδα του pool, η σελίδα των miners και κάθε γράφημα σε αυτόν τον ιστότοπο φτιάχνονται από αυτό.
Αίτημα
curl "https://quantus.herominers.com/api/stats"
Απάντηση
Ένα αντικείμενο με pool, network, config, charts, lastblock, payments και visitors, δηλαδή πόσα άτομα βρίσκονται στον ιστότοπο αυτή τη στιγμή, ως { windowMinutes, activeVisitors, activeLookups }. Υπολογίζεται ξανά μία φορά ανά κύκλο στατιστικών, οπότε συχνότερα αιτήματα επιστρέφουν τους ίδιους αριθμούς.
GET/api/live_stats
Τα ίδια δεδομένα με το /api/stats, αλλά το αίτημα μένει ανοιχτό μέχρι να τελειώσει ο επόμενος κύκλος στατιστικών και μετά απαντάται. Ένα αίτημα ανά ενημέρωση αντί για επαναλαμβανόμενα αιτήματα με χρονόμετρο.
Παράμετροι
address
Συμπερίληψη ενός miner στην απάντηση, όπως στο /api/stats.
Ανοίξτε μία σύνδεση και ανοίξτε την ξανά όταν απαντήσει. Πολλές ταυτόχρονα ανοιχτές από την ίδια IP απορρίπτονται με 503, οπότε μην τις πολλαπλασιάζετε.
Την ίδια δομή με το /api/stats, με τη διαφορά ότι τα miner και solo_miner στέλνονται πάντα, κενά όταν δεν δόθηκε διεύθυνση. Το αίτημα μένει ανοιχτό έως έναν κύκλο στατιστικών.
GET/api/stats_address
Ένας miner: τρέχον και μέσο hashrate, έγκυρα shares και stale shares, υπόλοιπο, ποσό που έχει πληρωθεί και τα ίδια στοιχεία ανά worker.
Εισάγετε παραπάνω address για να εκτελέσετε αυτό το αίτημα. Η εντολή το δείχνει, επειδή χωρίς αυτό το pool απαντά με σφάλμα.
Απάντηση
Ένα αντικείμενο με stats (τα σύνολα του miner), payments, charts, unlocked και workers, έναν πίνακα με μία εγγραφή ανά worker που ονομάζεται από το name του. Μια διεύθυνση που δεν έχει κάνει ποτέ mining εδώ λαμβάνει σφάλμα αντί για κενό miner.
GET/api/get_blocks
Μπλοκ που έχει βρει το pool και δεν είναι πλέον εκκρεμή: πληρωμένα ή ορφανά. Το status λέει ποιο από τα δύο.
Παράμετροι
heightυποχρεωτικό
Επιστροφή μπλοκ κάτω από αυτό το ύψος. Δώστε έναν αριθμό πολύ πάνω από την κορυφή της αλυσίδας για τη νεότερη σελίδα και μετά το χαμηλότερο ύψος που λάβατε για να πάτε προς τα πίσω.
Η διεύθυνση αυτού που βρήκε το μπλοκ καλύπτεται πριν φύγει από το pool, οπότε αυτό το endpoint δεν μπορεί να χρησιμοποιηθεί για συλλογή διευθύνσεων. Το time είναι σε δευτερόλεπτα Unix, το reward στη μικρότερη μονάδα του νομίσματος, και ένα solo μπλοκ έχει score ίσο με s0 όταν πληρώθηκε ή s1 όταν έμεινε ορφανό.
Πληρωμές που έχει στείλει το pool, είτε για όλο το pool είτε για μία διεύθυνση.
Παράμετροι
timeυποχρεωτικό
Επιστροφή πληρωμών πριν από αυτή τη χρονοσφραγίδα Unix σε δευτερόλεπτα. Χρησιμοποιήστε την τρέχουσα ώρα για τη νεότερη σελίδα και μετά την παλαιότερη χρονοσφραγίδα που λάβατε για να πάτε προς τα πίσω.
address
Περιορισμός σε μία διεύθυνση πληρωμής. Παραλείψτε την για κάθε πληρωμή που έχει κάνει το pool.
limit
Πόσες να επιστραφούν. Περιορίζεται στο μέγεθος σελίδας του pool, οπότε ένας μεγαλύτερος αριθμός απλώς επιστρέφει αυτό.
format
Δώστε parsed για να πάρετε αντικείμενα { tx, amount, time } αντί για τον ακατέργαστο πίνακα.
conversions
Μαζί με το address, δώστε 1 για να πάρετε επίσης την εγγραφή μετατροπής κάθε πληρωμής της σελίδας που μετατράπηκε σε άλλο νόμισμα. Η απάντηση γίνεται τότε { payments, conversions }. Αγνοείται με format=parsed.
Χωρίς format, ένας επίπεδος πίνακας που εναλλάσσει τιμή και χρονοσφραγίδα, όπου κάθε τιμή είναι txid:amount. Τα ποσά είναι strings στη μικρότερη μονάδα του νομίσματος και πρέπει να μείνουν strings: αν ένα μετατραπεί σε αριθμό, χάνεται ακρίβεια σε αλυσίδα με 18 δεκαδικά.
GET/api/get_miners_stats
Οι δέκα μεγαλύτεροι miners του pool, μαζί με την ανάλυση ανά λογισμικό mining και ανά περιοχή πίσω από τη σελίδα των miners.
Ένα αντικείμενο με miners, agents, regions, regionHistory και statsDisplay. Οι διευθύνσεις είναι καλυμμένες. Όταν ένα τμήμα δεν είναι ενεργό, ο πίνακάς του επιστρέφει κενός και το statsDisplay το δηλώνει.
GET/api/get_blocks_search
Αναζήτηση στα μπλοκ του pool με βάση το ύψος, το hash μπλοκ ή τη διεύθυνση αυτού που το βρήκε, σε εκκρεμή και πληρωμένα μπλοκ ταυτόχρονα.
Παράμετροι
qυποχρεωτικό
Ένα ύψος, ένα hash μπλοκ ή μια διεύθυνση.
offset
Παράλειψη τόσων αποτελεσμάτων. Η απάντηση περιέχει το hasMore, ώστε να ξέρετε αν πρέπει να ρωτήσετε ξανά.
Η αναζήτηση έχει όριο αιτημάτων ανά IP, και όποιος το ξεπεράσει λαμβάνει rateLimited με την ακριβή αναμονή στο retryMs αντί για ένα σκέτο σφάλμα. Καλέστε πρώτα το /api/get_blocks_search_config για να μάθετε τα όρια μήκους και αν η αναζήτηση είναι καν ενεργή.
Εισάγετε παραπάνω q για να εκτελέσετε αυτό το αίτημα. Η εντολή το δείχνει, επειδή χωρίς αυτό το pool απαντά με σφάλμα.
Απάντηση
Ένα αντικείμενο με pending και matured, που και τα δύο εναλλάσσουν τιμή και ύψος όπως το /api/get_blocks, μαζί με totalMatched, offset, limit και hasMore. Ένα μπλοκ matured έχει τη μορφή του /api/get_blocks. Ένα μπλοκ pending περιμένει ακόμη να ωριμάσει και χρησιμοποιεί τη μεγαλύτερη μορφή των εκκρεμών μπλοκ, οπότε τα πεδία του είναι σε άλλη σειρά.
GET/api/get_blocks_search_config
Αν η αναζήτηση μπλοκ είναι ενεργή και τα όρια που πρέπει να τηρεί ένα ερώτημα, ώστε ένα πεδίο αναζήτησης να ρυθμιστεί πριν από την πρώτη αναζήτηση.
{ enabled, minQueryLength, maxQueryLength, frontendCooldownMs }. Τα μήκη είναι σε χαρακτήρες, και το frontendCooldownMs είναι πόσο να περιμένετε ανάμεσα σε δύο αναζητήσεις.
GET/api/get_miner_payout_level
Το όριο πληρωμής που έχει οριστεί αυτή τη στιγμή για μια διεύθυνση, σε ολόκληρα νομίσματα.
Παράμετροι
addressυποχρεωτικό
Η διεύθυνση πληρωμής.
Το αντίστοιχο /api/set_miner_payout_level το γράφει, και δεν είναι ανοιχτό σε όλους: το αίτημα πρέπει να έρχεται από την IP mining της ίδιας της διεύθυνσης. Αυτός ο έλεγχος και το όριο αιτημάτων μπροστά του περιγράφονται στην καρτέλα ρυθμίσεων του dashboard και όχι εδώ.
Εισάγετε παραπάνω address για να εκτελέσετε αυτό το αίτημα. Η εντολή το δείχνει, επειδή χωρίς αυτό το pool απαντά με σφάλμα.
Απάντηση
{ banned, minerMessage }, και όταν υπάρχει αποκλεισμός επίσης blockMining, blockPayments και reason. Είναι η ειδοποίηση που δείχνει η σελίδα του miner για αυτή τη διεύθυνση: αποκλεισμός από το mining, από τις πληρωμές ή από κανένα από τα δύο. Το minerMessage είναι το μήνυμα του διαχειριστή προς αυτή τη διεύθυνση, ως { message, type, createdAt, expiresAt }, ή null όταν δεν υπάρχει.
Σωστή χρήση
Ζητάτε δεδομένα με τον ρυθμό του pool. Οι αριθμοί υπολογίζονται ξανά μία φορά ανά κύκλο στατιστικών, και το config.updateInterval στην απάντηση του /api/stats λέει πόσα δευτερόλεπτα διαρκεί αυτός. Συχνότερα αιτήματα επιστρέφουν την ίδια απάντηση και κοστίζουν bandwidth και στις δύο πλευρές.
Προτιμήστε το /api/live_stats από ένα γρήγορο χρονόμετρο. Απαντά τη στιγμή που υπάρχει κάτι νέο, κάτι που είναι και ταχύτερο για εσάς και ελαφρύτερο για το pool από τα επαναλαμβανόμενα αιτήματα.
Κρατήστε τα ποσά ως strings. Οι ανταμοιβές και τα υπόλοιπα επιστρέφονται στη μικρότερη μονάδα του νομίσματος. Σε αλυσίδα με 18 δεκαδικά αυτοί οι ακέραιοι ξεπερνούν ό,τι μπορεί να αναπαραστήσει ακριβώς ένας αριθμός JavaScript, οπότε η μετατροπή στρογγυλοποιεί σιωπηλά μια πληρωμή.
Περιμένετε καλυμμένες διευθύνσεις. Οι δημόσιες λίστες κρύβουν το μέσο κάθε διεύθυνσης. Την πλήρη διεύθυνσή σας τη χρειάζεστε μόνο εσείς, και μόνο εκεί όπου τη δίνετε.
Αντιμετωπίστε ένα όριο αιτημάτων ως αναμονή, όχι ως αποτυχία. Όπου ισχύει όριο, η απάντηση περιέχει το retryMs. Περιμένετε τόσο και δοκιμάστε ξανά, αντί να βομβαρδίζετε το pool με αιτήματα.
Πείτε μας ποιοι είστε. Ένα User-Agent που κατονομάζει το εργαλείο σας δεν είναι υποχρεωτικό, αλλά έτσι μπορούμε να σας ενημερώσουμε για μια αλλαγή αντί να μαντεύετε τι χάλασε.