VPN വഴി മൈനിംഗ് പൂൾ: സെഷൻ ശരിയായ വഴിയിൽ നിർത്തുക
പൂൾ മൈനർ ഒരു പുറത്തേക്കുള്ള Stratum സെഷൻ തുറക്കുന്നു, peer പോർട്ട് അല്ല. ടണൽ ആ പ്രക്രിയയുടെ കീഴിൽ വയ്ക്കുകയും റൂട്ടും റിസോൾവറും അതിന്റെ നെയിംസ്പേസിൽ നിന്ന് വായിക്കുകയും ചെയ്യുക.
മൈനിംഗ് സോഫ്റ്റ്വെയർ ഒരു സോക്കറ്റ് ഒരു വിലാസത്തിലേക്ക് തുറന്ന് വയ്ക്കുന്നു, ടണൽ, റൂട്ട്, ക്രെഡിറ്റ് ചെയ്ത ജോലി എന്നിവയെക്കുറിച്ചുള്ള ഓരോ ചോദ്യവും ആ സോക്കറ്റിൽ തൂങ്ങിക്കിടക്കുന്നു. ആ സോക്കറ്റ് പൂളിന്റെ അവസാന പോയിന്റിലേക്കുള്ള പുറത്തേക്കുള്ള ക്ലയന്റ് സെഷൻ ആണ്, 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 പോർട്ടാണ്, അവിടെ പൂർണ്ണ നോഡ് വരുന്ന ബന്ധങ്ങൾ കേൾക്കുന്നു; പൂൾ മൈനറിന് അത് ഒരിക്കലും തുറന്നിരിക്കേണ്ടതില്ല, അത് തുറക്കുന്നത് പുറത്തേക്കുള്ള തകരാറിനെ ശരിയാക്കുന്നില്ല. വരുന്ന ശ്രോതാക്കളും പുറത്തേക്കുള്ള സെഷനുകളും വിപരീത വിശ്വാസ അനുമാനങ്ങളുള്ള വിപരീത വേഷങ്ങളാണ്. മൈനറിന്റെ കോൺഫിഗറേഷനിൽ ഒന്നും ആ പോർട്ട് കെട്ടുന്നില്ല, അതിനാൽ അടച്ച പോർട്ട് അത് റിപ്പോർട്ട് ചെയ്യുന്ന ഏത് പിശകും വിശദീകരിക്കാനാവില്ല. അതിനാൽ ഒരു നോഡിന്റെ എത്തിച്ചേരലിനായി എഴുതിയ ഉപദേശം വിഹിതങ്ങൾ അയക്കാൻ മാത്രമുള്ള ഹോസ്റ്റിൽ ഒരു പൊതു സേവനം പ്രവർത്തിച്ചുകൊണ്ടിരിക്കാൻ വിട്ടേക്കാം.
ഒരു യന്ത്രം യഥാർത്ഥത്തിൽ രണ്ടും ചെയ്യുന്നുവെങ്കിൽ, ഓരോ വേഷത്തെയും അതിന്റെ സ്വന്തം പ്രവേശന തീരുമാനത്തോടെ വെവ്വേറെ സേവനമായി കാണുക. നോഡിന്റെ ശ്രോതാവ് നിങ്ങൾ പൊതു സേവനങ്ങളിൽ പ്രയോഗിക്കുന്ന നയത്തിന് പിന്നിലാണ്, മൈനറിന്റെ സെഷൻ ടണൽ തിരഞ്ഞെടുക്കുന്ന പുറത്തേക്കുള്ള നയത്തിനുള്ളതാണ്. ഹോസ്റ്റ് ഏത് വേഷം വഹിക്കുന്നു എന്ന് രേഖപ്പെടുത്തി അത് മാറുമ്പോൾ മറ്റേ വേഷത്തിന്റെ നിയമങ്ങൾ നീക്കം ചെയ്യുക, കാരണം ബാക്കിയുള്ള അനുമതി നിയമം അതിന്റെ കാരണത്തേക്കാൾ കൂടുതൽ കാലം ജീവിക്കുന്നു.
പൂൾ ജോലി സ്വീകരിച്ചു എന്ന് തെളിയിക്കുക
തിരക്കുള്ള ഫാൻ, ഉയരുന്ന ഹാഷ്റേറ്റ് എന്നിവ മൈനർ കണക്കുകൂട്ടുന്നു എന്ന് കാണിക്കുന്നു, പൂളിലേക്ക് എന്തെങ്കിലും എത്തി എന്നല്ല. തെളിവ് ക്ലയന്റിന്റെ അയക്കൽ കൗണ്ടറുകളിലോ പൂളിന്റെ ഡാഷ്ബോർഡിലോ ഉണ്ട്: സ്വീകരിച്ച വിഹിതങ്ങൾ, നിരസിച്ച വിഹിതങ്ങൾ, ഓരോ നിരസിക്കലിനും ചേർത്ത കാരണം. ആ സംഖ്യകൾ പുറത്തുനിന്ന് ഒരേപോലെ തോന്നുന്ന മൂന്ന് പരാജയങ്ങളെ വേർതിരിക്കുന്നു: സെഷൻ ഇല്ല, ക്രെഡിറ്റ് ഇല്ലാത്ത സെഷൻ, ആവർത്തിച്ച് വീണ്ടും ബന്ധിപ്പിക്കുന്ന സെഷൻ. ഏതെങ്കിലും കോൺഫിഗറേഷൻ മാറ്റുന്നതിന് മുമ്പ് അവ വായിക്കുക.
വിശദമായ ലോഗോടെ ഒരു ബന്ധപ്പെടൽ ശ്രമം നിരീക്ഷിച്ച് വിജയിച്ച അവസാന ഘട്ടം രേഖപ്പെടുത്തുക. ക്രമം നിൽക്കുന്ന ഘട്ടം അതിന് ചുറ്റുമുള്ള ഏതെങ്കിലും ഒരു സന്ദേശത്തേക്കാൾ ഉപയോഗപ്രദമാണ്:
| 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 |
തുടർന്ന് ക്ലയന്റിനെ ഒരു നിശ്ചിത വിൻഡോവരെ പ്രവർത്തിപ്പിക്കാൻ വിട്ട് അതിന്റെ ലോഗിൽ നിന്ന് രണ്ട് ഫലങ്ങളും എണ്ണുക. ഓരോ കൗണ്ടറിനും ഒരു grep മതി, അവയെ അതേ വിൻഡോയിൽ താരതമ്യം ചെയ്യുന്നത് മന്ദഗതിയിലുള്ള പൂളിനെ തകർന്ന വഴിയിൽ നിന്ന് വേർതിരിക്കുന്നു. വഴി നിങ്ങളുടെ ക്ലയന്റ് എഴുതുന്നിടത്തേക്ക് ക്രമീകരിക്കുക, കാരണം രണ്ട് എണ്ണങ്ങളും സ്ഥാനത്തെ ആശ്രയിക്കുന്നില്ല:
grep -c Accepted /var/log/miner.log
grep -c Rejected /var/log/miner.logഒരു നിയമം ടണൽ വീഴുന്ന ഓരോ തവണയും പൂളിലേക്കുള്ള നേരിട്ടുള്ള ബന്ധം വിലക്കുന്നുവെങ്കിൽ, അത് പൂളിന്റെ അവസാന പോയിന്റിൽ വ്യക്തമായ തടസ്സമായി പ്രകടിപ്പിക്കുക. ഭൗതിക ലിങ്കിലൂടെ നിശബ്ദമായി വീണ്ടും ശ്രമിക്കുന്ന ക്ലയന്റ് മൈനിംഗ് തുടരുകയും ആ നിയമം ലംഘിക്കൽ തുടരുകയും ചെയ്യും, അതിന്റെ സ്ഥിതി പ്രദർശനം അത് പരാമർശിക്കുകയില്ല. ടണൽ ബോധപൂർവം വീഴ്ത്തി പൂൾ പോർട്ടിൽ ഒട്ടും എത്താനാവില്ല എന്ന് ഉറപ്പാക്കി നിയമം പരീക്ഷിക്കുക.