Майнинг программасы бир сокетти бир дарекке ачык кармайт, ал эми туннель, маршрут жана эсептелген жумуш тууралуу ар бир суроо ошол сокетке илинип турат. Бул сокет — пулдун акыркы чекитине чыгуучу кардар сессиясы, 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

Эгер эреже туннель кулаган сайын түз пул байланышына тыюу салса, аны пулдун акыркы чекитинде ачык бөгөт катары туюндуруңуз. Физикалык байланыш аркылуу үнсүз кайра аракеттенген кардар майнингди улантат жана бул эрежени бузууну улантат, ал эми анын абал дисплейи муну эскертпейт. Эрежени туннелди атайын кулатып, пул портуна таптакыр жетүү мүмкүн эместигин ырастоо менен текшериңиз.

Тектеш макалалар