Miningpool fia VPN: hâld de sesje op it rjochte paad
In poolminer iepenet ien útgeande Stratum-sesje, net in peer-poarte. Lis it tunnel ûnder dat proses en lês de rûte en de resolver út syn nammeromte.
Miningsoftware hâldt ien socket iepen nei ien adres, en elke fraach oer it tunnel, de rûte en it krediteare wurk hinget oan dy socket. Dy socket is in útgeande kliïntsesje nei in einpunt fan 'e pool, net in listener dy't peers akseptearret. De kuier hjirûnder folget him fan 'e fjouwer wearden dy't de pool útjoech oant in share dy't de pool echt boekte, en lit de oare tsjinsten fan 'e host mei rêst. Eltse stap jout in antwurd dat jo ferlykje kinne, gjin yndruk.
Begjin by it einpunt dat de pool echt útjoech
De pool jout jo fjouwer wearden dy't it hiele kontrakt foarmje: hostnamme as adres, poarte, protokolferzje en akkountstring. Nim se fan it dashboard fan 'e pool of út it onboardingberjocht, net út in hantlieding foar in oare pool. Der binne regionale shards foar deselde tsjinst, dus in hostnamme kopiearre út in âlde gids kin noch hieltyd ferbine en noch hieltyd in akkount kreditearje dat jo nea bedoelden te brûken. Kopiearje de fjouwer wearden letterlik yn 'e konfiguraasje fan 'e miner, want in oertikke akkountstring ferliest in skiedingsteken.
De stream dy't jo routearje is dejinge dy't de Bitcoin-ûntwikkelersgids Stratum-sesje neamt: in permaninte twarjochte TCP-ferbining wêryn't de pool wurk ferspriedt en de miner shares weromstjoerd. Dat is net deselde stream as de peer-ferbiningen fan in folsleine node of de keatlingsykronisaasje fan in wallet, en it opinoar folden fan dy yn ien ferkearsklas is wêr't it measte betizing begjint. Allinnich de earste heart ûnder dit belied.
Wêr't de pool TLS biedt, hâld de serverferifikaasje oan dy't syn dokumintaasje easket. In tunnel fersiferet de hop fan jo masine nei de VPN-server en einiget dêr; hy stiet net boarche foar wa't oan 'e oare kant antwurdet. Hâld beide kontrôles, ien oan elk ein, as jo wolle dat de sesje in kompromittearre útgong oerlibbet.
Hâld it tunnel oan it proses, net oan it húshâlden
Twa oanheakpuntten wurkje: rinn de VPN-kliïnt binnen de netwurknammeromte dy't de miner brûkt, of jou dy nammeromte in gateway dy't syn ferkear it tunnel yn draacht. Beide opstellings sette de sesje op it paad foardat de pool him sjocht. De gewoane mislearring is in kliïnt op 'e host, in miner yn in container mei syn eigen brêge en in hostrûte dy't de container nea rieplachtet. It kliïntfinster liket sûn wylst de pool jo thúsadres registrearret.
Kontrolearje it eigen ferfier fan it tunnel foardat jo wat ôfbakenje. De kliïnt moat syn server troch de underlay berikke, dus in belied dat elk pakket fangt fangt ek de pakketten dy't it tunnel bouwe soene. Dan kin it tunnel net starte en giet der ek neat oars út. Kies mei de split-tunnelfunksje fan 'e kliïnt wat it tunnel yn giet; standertrûtes mei de hân bewurkje is hoe't de underlay ferdwynt.
Mei it belied op syn plak, lês de sockettabel yn 'e nammeromte dy't de miner besit. De stream nei de poarte fan 'e pool heart op 'e tunnelinterface te stean, en twa opdrachten beantwurdzje dy fraach. De poarte hjirûnder is in foarbyld; ferfange troch dejinge dy't de pool útjoech.
sudo nsenter -t "$(pidof cgminer)" -n ss -tnp state established 'dport = :3333'
sudo nsenter -t "$(pidof cgminer)" -n ip route get 203.0.113.10Lês rûte en resolver út 'e eigen kontekst fan 'e miner
Routing en nammeneftersyk binne per nammeromte, dus in kontrôle yn in gewoane shell beskriuwt de ferkearde masine sa gau't de miner yn in container draait. Gean earst de nammeromte yn en freegje dan hokker interface in pakket nei it pooladres drage soe en hokker resolver foar syn hostnamme antwurdzje soe. De antwurden fan 'e host geane net oer, en de kleau dertusken is in faak foarkommende boarne fan ferkeard pleatste skuld.
Neam de interface dy't jo krije: it tunnel betsjut dat de sesje op it bedoelde paad sit, wylst de fysike keppeling betsjut dat in regel earder oerienkaam as jo ferwachten. De prefikslengte beslissit earst, dan de metryk, dan de beliedsregels, dus in tabel mei ferskate standertynfieringen duplisearret gjin pakketten, hy ferliest gewoan.
Resolvers mislearje apart fan rûtes. In tunnel dy't /etc/resolv.conf oerskriuwt, kin de nammeromte nei in resolver wize litte dy't allinnich fan binnen it tunnel berikber is, wat mislearret foardat der in TCP-hânjaan bart. Los de hostnamme fan 'e pool yn 'e nammeromte op en ferlykje dy mei it publisearre adres. As de syktocht ferrint of wat oars weromjout, reparearje dan de resolúsje foardat jo rûtes oanreitsje.
Hâld de poolkliïnt en de nodelistener skieden
Poarte 8333 is de peer-poarte fan Bitcoin Core, wêr't in folsleine node op ynkommende ferbiningen harket; in poolminer hat him nea iepen nedich, en him iepenje reparearret gjin útgeande fout. Ynkommende listeners en útgeande sesjes binne tsjinoerstelde rollen mei tsjinoerstelde fertrouwensannames. Neat yn 'e konfiguraasje fan in miner bynt dy poarte, dus in sletten poarte kin gjin flater ferklearje dy't hy meldt. Advys skreaun foar de berikberens fan in node kin dêrom in publike tsjinst draaie litte op in host dy't allinnich shares yntsjinje moast.
As ien masine echt beide docht, behannelje elke rol as in eigen tsjinst mei eigen tagongsbeslissing. De listener fan 'e node heart efter it belied dat jo op publike tsjinsten tapasse, en de sesje fan 'e miner heart by it útgeande belied dat it tunnel kiest. Skriuw op hokker rol de host spilet en ferwiderje de regels fan 'e oare rol as dat feroaret, want in efterbleaune tasteanregel oerlibbet syn reden.
Bewiis dat de pool it wurk krige
In drokke fan en in stigende hashrate litte sjen dat de miner rekkenet, net dat der wat de pool berikt hat. It bewiis sit yn 'e yntsjin-sintellers fan 'e kliïnt of op it dashboard fan 'e pool: akseptearre shares, wegere shares en de reden by elke wegering. Dy sifers skiede trije flaters dy't fan bûten itselde lykje: gjin sesje, in sesje sûnder kredyt en in sesje dy't hieltyd opnij ferbynt. Lês se foardat jo hokker konfiguraasje dan ek feroarje.
Observearje ien ferbiningspoging mei wiidweidige logging en notearje de lêste faze dy't slagge. De faze wêr't de sekwinsje stopt is nuttiger as hokker inkeld berjocht dan ek deromhinne:
| Last stage reached | What it rules out | Probe to run next |
|---|---|---|
| Name lookup completed | Resolver and namespace reachability | ip route get for the returned address |
| TCP connect completed | Route and egress filtering | ss -tnp on the tunnel interface |
| Subscription returned a job | Endpoint or protocol mismatch | Accepted against rejected counts |
Lit de kliïnt dan in fêst finster draaie en tel beide útkomsten út syn log. Ien grep per sinteller is genôch, en se oer itselde finster ferlykje skiedt in stadige pool fan in brutsen paad. Pas it paad oan nei wêr't jo kliïnt skriuwt, want de twa tellings hingje net fan 'e lokaasje ôf:
grep -c Accepted /var/log/miner.log
grep -c Rejected /var/log/miner.logAs in regel in direkte poolferbining ferbiedt eltse kear as it tunnel falt, druk it dan út as in eksplisite blokkade op it einpunt fan 'e pool. In kliïnt dy't stil oer de fysike keppeling opnij besiket, bliuwt mine en bliuwt dy regel oertrêdzje, en syn statusdisplay neamt it net. Test de regel troch it tunnel mei opsetsin falle te litten en te befêstigjen dat de poarte fan 'e pool hielendal net berikber is.