همه استخرهای HeroMiners به یک مجموعه یکسان از اندپوینتهای HTTP فقطخواندنی پاسخ میدهند. نه کلیدی لازم است، نه حساب کاربری و نه ثبتنام: یک URL را درخواست میکنید و JSON دریافت میکنید، همراه با Access-Control-Allow-Origin: * تا یک صفحه در مرورگر بتواند مستقیماً آن را فراخوانی کند. از آن برای ساخت ابزار پایش دستگاه استخراج، اعلانگر پرداخت، داشبورد شخصی خود یا انتقال دادههای استخر به یک صفحهگسترده استفاده کنید.
آدرس خود را وارد کنید تا همه مثالهای زیر برای اجرا روی این استخر آماده شوند. هر چه اینجا تایپ کنید فقط به خود استخر فرستاده میشود و تنها زمانی که «اجرا» را بزنید.
URL پایه
https://quantus.herominers.com
اندپوینتها
GET/api/stats
هر آنچه استخر در این لحظه درباره خودش میداند: هشریت استخر و شبکه، ماینرها و ورکرهای متصل، آخرین بلاک، کارمزدها، پورتها و تنظیمات پرداخت.
پارامتر
address
یک آدرس پرداخت. آن ماینر را زیر miner اضافه میکند و اگر استخراج انفرادی هم انجام دهد، زیر solo_miner. اگر آن را حذف کنید، هیچیک از این دو کلید فرستاده نمیشود.
این اندپوینتی است که باید از آن شروع کنید. صفحه استخر، صفحه ماینرها و همه نمودارهای این سایت از آن ساخته میشوند.
درخواست
curl "https://quantus.herominers.com/api/stats"
پاسخ
یک شیء با pool، network، config، charts، lastblock، payments و visitors، یعنی تعداد افرادی که همین حالا در سایت هستند، به شکل { windowMinutes, activeVisitors, activeLookups }. در هر چرخه آمار یک بار دوباره محاسبه میشود، پس درخواستهای سریعتر از آن همان اعداد را برمیگردانند.
GET/api/live_stats
همان دادههای /api/stats، اما درخواست تا پایان چرخه آمار بعدی باز میماند و سپس پاسخ داده میشود. یک درخواست برای هر بهروزرسانی، به جای درخواستهای پیاپی با تایمر.
پارامتر
address
یک ماینر را در پاسخ بگنجانید، مانند /api/stats.
یک اتصال باز کنید و پس از دریافت پاسخ دوباره آن را باز کنید. چند اتصال همزمان از یک IP با خطای 503 رد میشوند، پس درخواستهای موازی نفرستید.
همان ساختار /api/stats، با این تفاوت که miner و solo_miner همیشه فرستاده میشوند و اگر آدرسی داده نشده باشد خالی هستند. درخواست حداکثر به اندازه یک چرخه آمار باز میماند.
GET/api/stats_address
یک ماینر: هشریت فعلی و میانگین، شیرهای معتبر و منقضی، موجودی، مبلغ پرداختشده و همین ارقام برای هر ورکر.
برای اجرای این درخواست، address را در بالا وارد کنید. فرمان آن را نشان میدهد چون استخر بدون آن با خطا پاسخ میدهد.
پاسخ
یک شیء با stats (مجموعهای ماینر)، payments، charts، unlocked و workers، آرایهای با یک ورودی برای هر ورکر که با name آن نامگذاری شده است. آدرسی که هرگز اینجا استخراج نکرده باشد به جای یک ماینر خالی، خطا دریافت میکند.
GET/api/get_blocks
بلاکهایی که استخر پیدا کرده و دیگر در انتظار نیستند: پرداختشده یا یتیم. status مشخص میکند کدام.
پارامتر
heightالزامی
بلاکهای پایینتر از این ارتفاع را برمیگرداند. برای جدیدترین صفحه عددی بسیار بالاتر از نوک زنجیره بفرستید، سپس برای رفتن به صفحههای قبلی کمترین ارتفاعی را که دریافت کردهاید.
آدرس یابنده پیش از خروج از استخر پوشانده میشود، پس نمیتوان از این اندپوینت برای جمعآوری آدرسها استفاده کرد. time بر حسب ثانیه Unix است، reward در کوچکترین واحد ارز است، و یک بلاک انفرادی اگر پرداخت شده باشد score برابر s0 و اگر یتیم شده باشد s1 دارد.
پرداختهایی که استخر ارسال کرده است، برای کل استخر یا برای یک آدرس.
پارامتر
timeالزامی
پرداختهای پیش از این مُهر زمانی Unix بر حسب ثانیه را برمیگرداند. برای جدیدترین صفحه زمان فعلی را بفرستید، سپس برای رفتن به صفحههای قبلی قدیمیترین مُهر زمانی که دریافت کردهاید.
address
محدود به یک آدرس پرداخت. برای همه پرداختهایی که استخر انجام داده است آن را حذف کنید.
limit
تعداد مواردی که برگردانده میشود. به اندازه صفحه خود استخر محدود میشود، پس عدد بزرگتر همان مقدار را برمیگرداند.
format
مقدار parsed را بفرستید تا به جای آرایه خام، اشیای { tx, amount, time } دریافت کنید.
conversions
همراه با address، مقدار 1 را بفرستید تا سابقه تبدیل هر پرداختی در این صفحه که به ارز دیگری تبدیل شده است را هم دریافت کنید. در این حالت پاسخ به { payments, conversions } تبدیل میشود. همراه با format=parsed نادیده گرفته میشود.
بدون format، یک آرایه تخت که به تناوب مقدار و مُهر زمانی را دارد و هر مقدار به شکل txid:amount است. مبلغها رشتههایی در کوچکترین واحد ارز هستند و باید رشته بمانند: تبدیل آنها به عدد در زنجیرهای با 18 رقم اعشار باعث از دست رفتن دقت میشود.
GET/api/get_miners_stats
ده ماینر بزرگ استخر، به همراه تفکیک بر اساس نرمافزار استخراج و منطقه که پشت صفحه ماینرها قرار دارد.
یک شیء با miners، agents، regions، regionHistory و statsDisplay. آدرسها پوشانده شدهاند. وقتی یک بخش فعال نباشد آرایه آن خالی برمیگردد و statsDisplay این را اعلام میکند.
GET/api/get_blocks_search
جستوجو در بلاکهای استخر بر اساس ارتفاع، هش بلاک یا آدرس یابنده، همزمان در بلاکهای در انتظار و پرداختشده.
پارامتر
qالزامی
یک ارتفاع، یک هش بلاک یا یک آدرس.
offset
این تعداد نتیجه را رد میکند. پاسخ شامل hasMore است تا بدانید آیا باید دوباره درخواست کنید.
جستوجو برای هر IP محدودیت نرخ دارد و فراتر رفتن از آن به جای یک خطای ساده، rateLimited را همراه با زمان دقیق انتظار در retryMs برمیگرداند. ابتدا /api/get_blocks_search_config را فراخوانی کنید تا محدوده طول و فعال بودن یا نبودن جستوجو را بدانید.
برای اجرای این درخواست، q را در بالا وارد کنید. فرمان آن را نشان میدهد چون استخر بدون آن با خطا پاسخ میدهد.
پاسخ
یک شیء با 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 استخراج خود آن آدرس بیاید. این بررسی و محدودیت نرخی که پیش از آن اعمال میشود در زبانه تنظیمات داشبورد توضیح داده شدهاند، نه اینجا.
برای اجرای این درخواست، address را در بالا وارد کنید. فرمان آن را نشان میدهد چون استخر بدون آن با خطا پاسخ میدهد.
پاسخ
{ banned, minerMessage }، و در صورت مسدود بودن، blockMining، blockPayments و reason هم. این همان اعلانی است که صفحه ماینر برای این آدرس نشان میدهد: مسدود از استخراج، از دریافت پرداخت، یا هیچکدام. minerMessage پیام اپراتور به این آدرس است، به شکل { message, type, createdAt, expiresAt }، یا null وقتی پیامی وجود نداشته باشد.
استفاده درست
با زمانبندی خود استخر درخواست بفرستید. اعداد در هر چرخه آمار یک بار دوباره محاسبه میشوند و config.updateInterval در پاسخ /api/stats طول آن را بر حسب ثانیه نشان میدهد. درخواستهای بیشتر از آن همان پاسخ را برمیگردانند و پهنای باند هر دو طرف را هدر میدهند.
/api/live_stats را به یک تایمر سریع ترجیح دهید. به محض اینکه چیز جدیدی باشد پاسخ میدهد، که هم برای شما سریعتر است و هم برای استخر سبکتر از درخواستهای پیاپی.
مبلغها را به شکل رشته نگه دارید. پاداشها و موجودیها در کوچکترین واحد ارز برگردانده میشوند. در زنجیرهای با 18 رقم اعشار، این اعداد صحیح از حدی که یک عدد JavaScript میتواند دقیق نگه دارد فراتر میروند، پس تبدیل آنها به عدد بیصدا یک پرداخت را گرد میکند.
انتظار داشته باشید آدرسها پوشانده شده باشند. فهرستهای عمومی بخش میانی هر آدرس را پنهان میکنند. آدرس کامل شما را فقط خودتان لازم دارید، و فقط جایی که خودتان آن را وارد میکنید.
محدودیت نرخ را انتظار بدانید، نه شکست. جایی که محدودیتی اعمال شود، پاسخ شامل retryMs است. به همان اندازه صبر کنید و دوباره تلاش کنید، به جای اینکه پشت سر هم درخواست بفرستید.
خود را معرفی کنید. یک User-Agent که نام ابزار شما را بگوید الزامی نیست، اما به ما امکان میدهد درباره یک تغییر به شما خبر دهیم، به جای اینکه حدس بزنید چه چیزی خراب شده است.