Майнинг бағдарламасы бір сокетті бір адреске ашық ұстайды, ал туннель, маршрут және есептелген жұмыс туралы әрбір сұрақ осы сокетке байланып тұр. Бұл сокет — пулдың соңғы нүктесіне шыққан клиенттік сессия, peer-лерді қабылдайтын тыңдаушы емес. Төмендегі шолу оны пул берген төрт мәннен пул шынымен есепке алған үлеске дейін алып барады және хосттың басқа қызметтеріне тиіспейді. Әр қадам салыстыруға болатын жауап береді, әсер емес.

Пул шынымен берген соңғы нүктеден бастаңыз

Пул сізге бүкіл келісімді құрайтын төрт мәнді береді: хост аты немесе адрес, порт, протокол нұсқасы және тіркелгі жолы. Оларды пул тақтасынан немесе қарсы алу хабарламасынан алыңыз, басқа пулға арналған нұсқаулықтан емес. Сол қызмет үшін аймақтық шардтар бар, сондықтан ескі нұсқаулықтан көшірілген хост аты әлі де қосылып, сіз ешқашан қолданғыңыз келмеген тіркелгіге әлі де кредит жаза алады. Төрт мәнді майнер конфигурациясына сөзбе-сөз көшіріңіз, өйткені қайта терулі тіркелгі жолы бөлгішті жоғалтады.

Сіз маршруттайтын ағын — Bitcoin әзірлеушісінің нұсқаулығы Stratum сессиясы деп атайтын ағын: пул жұмысты бөлетін және майнер үлестерді қайтаратын тұрақты екі бағытты TCP байланысы. Бұл толық түйіннің peer байланыстары немесе әмиянның тізбек синхрондауы сияқты ағын емес, және оларды бір трафик класына жинау — шатасудың көбі басталатын жер. Бұл саясатқа тек біріншісі жатады.

Пул TLS ұсынатын жерде оның құжаттамасы талап ететін сервер тексеруін сақтаңыз. Туннель машинаңыздан VPN серверіне дейінгі хопты шифрлайды және сол жерде аяқталады; ол арғы жақта кім жауап беретініне кепілдік бермейді. Сессия компромисске ұшыраған шығыстан аман қалуы үшін екі ұшында да екі тексеруді сақтаңыз.

Туннельді процеске бекітіңіз, үй шаруашылығына емес

Екі бекіту нүктесі жұмыс істейді: VPN клиентін майнер қолданатын желілік атау кеңістігінің ішінде іске қосыңыз, немесе сол атау кеңістігіне трафигін туннельге апаратын шлюз беріңіз. Екі орналасу да сессияны пул оны көрмей тұрып жолға қояды. Әдеттегі сәтсіздік — хосттағы клиент, өз көпірі бар контейнердегі майнер және контейнер ешқашан сұрамайтын хост маршруты. Клиент терезесі сау көрінеді, ал пул сіздің үй мекенжайыңызды жазып алады.

Бірдеңені шектемес бұрын туннельдің өз тасымалын тексеріңіз. Клиент өз серверіне астыңғы қабат арқылы жетуі керек, сондықтан әр пакетті ұстайтын саясат туннельді құрар еді пакеттерді де ұстайды. Сонда туннель іске қосылмайды және басқа ештеңе де шықпайды. Клиенттің бөлінген туннель функциясымен туннельге не кіретінін таңдаңыз; әдепкі маршруттарды қолмен өңдеу — астыңғы қабат жоғалатын жол.

Саясат орнында болған соң, майнер тиесілі атау кеңістігіндегі сокет кестесін оқыңыз. Пул портына ағын туннель интерфейсінде отыруы керек, және екі команда бұл сұраққа жауап береді. Төмендегі порт — мысал; пул берген портты қойыңыз.

sudo nsenter -t "$(pidof cgminer)" -n ss -tnp state established 'dport = :3333'
sudo nsenter -t "$(pidof cgminer)" -n ip route get 203.0.113.10

Маршрут пен резолверді майнердің өз контекстінен оқыңыз

Маршруттау және атауларды шешу атау кеңістігі бойынша жұмыс істейді, сондықтан қарапайым қабықта жүргізілген тексеру майнер контейнерде болғанда дұрыс емес машинаны сипаттайды. Алдымен атау кеңістігіне кіріп, содан кейін пул адресіне пакетті қай интерфейс апаратынын және оның хост атына қай резолвер жауап беретінін сұраңыз. Хосттың жауаптары берілмейді, және олардың арасындағы алшақтық қате бағытталған кінәның жиі көзі.

Алған интерфейсті атаңыз: туннель сессияның көзделген жолда екенін білдіреді, ал физикалық байланыс ереженің күткеннен ертерек сәйкес келгенін білдіреді. Префикс ұзындығы бірінші шешеді, содан кейін метрика, содан кейін саясат ережелері, сондықтан бірнеше әдепкі жазбасы бар кесте пакеттерді қайталамайды, тек ұтылады.

Резолверлер маршруттардан бөлек істен шығады. /etc/resolv.conf файлын қайта жазатын туннель атау кеңістігін тек туннель ішінен қолжетімді резолверге сілтеуі мүмкін, бұл кез келген TCP қол алысуына дейін істен шығады. Пулдың хост атын атау кеңістігі ішінде шешіп, жарияланған адреспен салыстырыңыз. Егер сұрау уақыты бітсе немесе басқа нәрсе қайтарса, маршруттарға тиіспес бұрын шешуді түзетіңіз.

Пул клиенті мен түйін тыңдаушысын бөлек ұстаңыз

8333 порты — Bitcoin Core-тың peer порты, онда толық түйін кіріс байланыстарын тыңдайды; пул майнеріне ол ешқашан ашық қажет емес, және оны ашу шығыс ақауын жөндемейді. Кіріс тыңдаушылар мен шығыс сессиялар — қарама-қарсы сенім болжамдары бар қарама-қарсы рөлдер. Майнер конфигурациясында ештеңе бұл портты байланыстырмайды, сондықтан жабық порт ол хабарлайтын ешбір қатені түсіндіре алмайды. Түйіннің қолжетімділігіне арналған кеңес осылайша тек үлестерді жіберуге тиіс хостта жария қызметті жұмыс істеп қалдыруы мүмкін.

Егер бір машина шынымен екеуін де жасаса, әр рөлді өз қатынау шешімі бар жеке қызмет ретінде қарастырыңыз. Түйіннің тыңдаушысы жария қызметтерге қолданатын саясаттың артына жатады, ал майнердің сессиясы туннельді таңдайтын шығыс саясатына жатады. Хост қандай рөл ойнайтынын жазып алыңыз және бұл өзгергенде екінші рөлдің ережелерін алып тастаңыз, өйткені қалған рұқсат ережесі өз себебінен ұзақ өмір сүреді.

Пул жұмысты алғанын дәлелдеңіз

Қарбалас желдеткіш пен өсіп келе жатқан hashrate майнердің есептеп жатқанын көрсетеді, пулға бірдеңе жеткенін емес. Дәлел клиенттің жіберу санауыштарында немесе пул тақтасында: қабылданған үлестер, қабылданбаған үлестер және әр бас тартуға тіркелген себеп. Бұл сандар сырттан бірдей көрінетін үш ақауды ажыратады: сессия жоқ, кредитсіз сессия және үнемі қайта қосылатын сессия. Кез келген конфигурацияны өзгертудің алдында оларды оқыңыз.

Бір қосылу әрекетін егжей-тегжейлі логтаумен бақылап, соңғы сәтті кезеңді белгілеңіз. Тізбек тоқтайтын кезең айналасындағы кез келген жеке хабарламадан пайдалырақ:

Last stage reachedWhat it rules outProbe to run next
Name lookup completedResolver and namespace reachabilityip route get for the returned address
TCP connect completedRoute and egress filteringss -tnp on the tunnel interface
Subscription returned a jobEndpoint or protocol mismatchAccepted against rejected counts

Содан кейін клиентке белгіленген терезе жұмыс істетіп, оның логынан екі нәтижені де санаңыз. Әр санауышқа бір grep жеткілікті, және оларды сол терезеде салыстыру баяу пулды бұзылған жолдан ажыратады. Жолды клиентіңіз жазатын жерге бейімдеңіз, өйткені екі санау орынға тәуелді емес:

grep -c Accepted /var/log/miner.log
grep -c Rejected /var/log/miner.log

Егер ереже туннель құлаған сайын тікелей пул байланысына тыйым салса, оны пулдың соңғы нүктесінде айқын бұғаттау ретінде көрсетіңіз. Физикалық байланыс арқылы үнсіз қайта әрекеттенетін клиент майнингті жалғастырады және бұл ережені бұзуды жалғастырады, ал оның күй дисплейі бұны атап өтпейді. Ережені туннельді әдейі құлатып, пул портына мүлдем қол жетпейтінін растау арқылы тексеріңіз.

Қатысты мақалалар