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

Хэрэв дүрэм туннель унах бүрт шууд пулын холболтыг хориглодог бол үүнийг пулын төгсгөлийн цэг дээр тодорхой блок болгон илэрхийл. Физик холбоосоор чимээгүй дахин оролддог клиент майнингээ үргэлжлүүлж, энэ дүрмийг зөрчихөө үргэлжлүүлэх бөгөөд түүний төлөв харагдац үүнийг дурдахгүй. Дүрмийг туннелийг зориуд унагаж, пулын порт руу огт хүрэх боломжгүй гэдгийг баталж шалга.

Холбоотой нийтлэлүүд