Softueri i minierave mban një socket të hapur drejt një adrese, dhe çdo pyetje për tunelin, rrugën dhe punën e kredituar varet nga ai socket. Ai socket është një sesion klienti në dalje drejt një endpointi të pool-it, jo një dëgjues që pranon peer-ë. Ecja më poshtë e ndjek atë nga katër vlerat që lëshoi pool-i deri në një share që pool-i regjistroi vërtet, dhe i lë shërbimet e tjera të hostit në paqe. Çdo hap prodhon një përgjigje që mund ta krahasosh, jo një përshtypje.

Fillo nga endpointi që pool-i lëshoi vërtet

Pool-i të jep katër vlera që formojnë të gjithë kontratën: emrin e hostit ose adresën, portën, variantin e protokollit dhe vargun e llogarisë. Merri nga paneli i pool-it ose nga mesazhi i mirëseardhjes, jo nga një udhëzues për një pool tjetër. Për të njëjtin shërbim ekzistojnë shard-e rajonale, kështu që një emër hosti i kopjuar nga një udhëzues i vjetër mund të lidhet ende dhe ende të kreditojë një llogari që nuk doje ta përdorje kurrë. Kopjoji katër vlerat fjalë për fjalë në konfigurimin e miner-it, sepse një varg llogarie i rishkruar humbet një ndarës.

Rryma që po rrugëton është ajo që udhëzuesi i zhvilluesit të Bitcoin e quan sesion Stratum: një lidhje TCP e vazhdueshme dygjysmëshe ku pool-i shpërndan punë dhe miner-i kthen share-e. Kjo nuk është e njëjta rrymë si lidhjet peer të një nyje të plotë ose sinkronizimi i zinxhirit të një portofoli, dhe pikërisht palosja e tyre në një klasë të vetme trafiku është vendi ku fillon pjesa më e madhe e konfuzionit. Vetëm e para i përket kësaj politike.

Aty ku pool-i ofron TLS, mbaj verifikimin e serverit që kërkon dokumentacioni i tij. Një tunel kripton hop-in nga makina jote te serveri VPN dhe mbaron atje; nuk garanton për atë që përgjigjet në anën tjetër. Mbaj të dy kontrollet, një në çdo skaj, nëse do që sesioni t'i mbijetojë një daljeje të kompromentuar.

Lidhe tunelin me procesin, jo me familjen

Dy pika lidhjeje funksionojnë: ekzekuto klientin VPN brenda hapësirës së emrave të rrjetit që përdor miner-i, ose jepi asaj hapësire emrash një portë që e çon trafikun e saj në tunel. Të dyja rregullimet e vendosin sesionin në rrugë para se pool-i ta shohë. Dështimi i zakonshëm është një klient në host, një miner në një container me urën e vet dhe një rrugë hosti që container-i nuk e konsulton kurrë. Dritarja e klientit duket e shëndetshme ndërsa pool-i regjistron adresën e shtëpisë tënde.

Kontrollo transportin e vetë tunelit përpara se të kufizosh çdo gjë. Klienti duhet të arrijë serverin e vet përmes shtresës bazë, kështu që një politikë që kap çdo paketë kap edhe paketat që do të ndërtonin tunelin. Atëherë tuneli nuk mund të niset dhe asgjë tjetër nuk del gjithashtu. Zgjidh me funksionin e tunelit të ndarë të klientit çfarë hyn në tunel; redaktimi me dorë i rrugëve të paracaktuara është mënyra se si shtresa bazë zhduket.

Kur politika është në vend, lexo tabelën e socket-eve në hapësirën e emrave që zotëron miner-in. Rryma drejt portës së pool-it duhet të rrijë në ndërfaqen e tunelit, dhe dy komanda i përgjigjen kësaj pyetjeje. Porta më poshtë është një shembull; zëvendësoje me atë që lëshoi pool-i.

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

Lexo rrugën dhe resolverin nga konteksti i vetë miner-it

Rrugëtimi dhe zgjidhja e emrave janë për hapësirë emrash, kështu që një kontroll i ekzekutuar në një shell të zakonshëm përshkruan makinën e gabuar sa herë që miner-i është në container. Hyr fillimisht në hapësirën e emrave dhe pastaj pyet cila ndërfaqe do të mbante një paketë drejt adresës së pool-it dhe cili resolver do të përgjigjej për emrin e hostit. Përgjigjet e hostit nuk transferohen, dhe hendeku mes tyre është një burim i zakonshëm fajësimi të vendosur gabim.

Emërto ndërfaqen që merr: tuneli do të thotë që sesioni është në rrugën e synuar, ndërsa lidhja fizike do të thotë që një rregull u përputh më herët nga sa prisje. Gjatësia e prefiksit vendos e para, pastaj metrika, pastaj rregullat e politikës, kështu që një tabelë me disa hyrje të paracaktuara nuk i dublon paketat, thjesht humbet.

Resolver-ët dështojnë veçmas nga rrugët. Një tunel që rishkruan /etc/resolv.conf mund ta lërë hapësirën e emrave duke treguar një resolver të arritshëm vetëm nga brenda tunelit, gjë që dështon para çdo shtrëngimi duarsh TCP. Zgjidh emrin e hostit të pool-it brenda hapësirës së emrave dhe krahasoje me adresën e publikuar. Nëse kërkimi skadon ose kthen diçka tjetër, rregullo zgjidhjen përpara se të prekësh rrugët.

Mbaj veçmas klientin e pool-it dhe dëgjuesin e nyjes

Porta 8333 është porta peer e Bitcoin Core, ku një nyje e plotë dëgjon lidhje hyrëse; një miner pool nuk ka kurrë nevojë që ajo të jetë e hapur, dhe hapja e saj nuk rregullon një defekt në dalje. Dëgjuesit hyrës dhe sesionet në dalje janë role të kundërta me supozime besimi të kundërta. Asgjë në konfigurimin e një miner-i nuk e lidh atë portë, kështu që një portë e mbyllur nuk mund të shpjegojë asnjë gabim që ai raporton. Një këshillë e shkruar për arritshmërinë e një nyje mund të lërë pra një shërbim publik duke punuar në një host që duhej vetëm të dorëzonte share-e.

Nëse një makinë e bën vërtet të dyja, trajto çdo rol si shërbim më vete me vendimin e vet të aksesit. Dëgjuesi i nyjes i përket pas politikës që aplikon për shërbimet publike, dhe sesioni i miner-it i përket politikës së daljes që zgjedh tunelin. Shëno çfarë roli luan host-i dhe hiq rregullat e rolit tjetër kur kjo ndryshon, sepse një rregull lejimi i mbetur ia kalon arsyes së vet.

Vërteto që pool-i e mori punën

Një ventilator i zënë dhe një hashrate në rritje tregojnë se miner-i po llogarit, jo se diçka arriti pool-in. Prova ndodhet në numëruesit e dërgimit të klientit ose në panelin e pool-it: share-e të pranuara, share-e të refuzuara dhe arsyeja e bashkangjitur çdo refuzimi. Ata numra ndajnë tre defekte që nga jashtë duken njësoj: asnjë sesion, një sesion pa kredit dhe një sesion që rilidhet vazhdimisht. Lexoji para se të ndryshosh çdo konfigurim.

Vëzhgo një përpjekje lidhjeje me logim të detajuar dhe shëno fazën e fundit që pati sukses. Faza ku sekuenca ndalon është më e dobishme se çdo mesazh i vetëm rreth saj:

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

Pastaj lëre klientin të punojë një dritare fikse dhe numëro të dy rezultatet nga logu i tij. Një grep për numërues mjafton, dhe krahasimi i tyre në të njëjtën dritare ndan një pool të ngadaltë nga një rrugë e thyer. Përshtate rrugën atje ku shkruan klienti yt, sepse dy numërimet nuk varen nga vendndodhja:

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

Nëse një rregull ndalon një lidhje të drejtpërdrejtë me pool-in sa herë që tuneli bie, shprehe si bllokim të qartë në endpointin e pool-it. Një klient që riprovon në heshtje përmes lidhjes fizike do të vazhdojë të minojë dhe do të vazhdojë ta shkelë atë rregull, dhe ekrani i tij i statusit nuk do ta përmendë. Testoje rregullin duke e hedhur tunelin me qëllim dhe duke konfirmuar se porta e pool-it nuk arrihet fare.

Artikuj të ngjashëm