Phần mềm đào giữ một socket mở tới một địa chỉ, và mọi câu hỏi về đường hầm, tuyến đường và công việc được ghi có đều treo trên socket đó. Socket đó là một phiên máy khách đi ra tới điểm cuối của pool, không phải trình lắng nghe chấp nhận peer. Phần trình bày dưới đây theo nó từ bốn giá trị mà pool đã phát hành tới một share mà pool thực sự ghi sổ, và để yên các dịch vụ khác của máy chủ. Mỗi bước tạo ra một câu trả lời bạn có thể so sánh, không phải một ấn tượng.

Bắt đầu từ điểm cuối mà pool thực sự đã phát hành

Pool trao cho bạn bốn giá trị tạo nên toàn bộ hợp đồng: tên máy chủ hoặc địa chỉ, cổng, biến thể giao thức và chuỗi tài khoản. Lấy chúng từ bảng điều khiển của pool hoặc thông báo chào mừng, không phải từ hướng dẫn cho một pool khác. Có các shard theo khu vực cho cùng dịch vụ, nên một tên máy chủ sao chép từ hướng dẫn cũ vẫn có thể kết nối và vẫn có thể ghi có một tài khoản bạn chưa bao giờ định dùng. Sao chép nguyên văn bốn giá trị vào cấu hình của thợ đào, vì chuỗi tài khoản gõ lại sẽ mất một dấu phân cách.

Luồng bạn đang định tuyến là luồng mà hướng dẫn nhà phát triển Bitcoin gọi là phiên Stratum: một kết nối TCP hai chiều liên tục, nơi pool phân phối công việc và thợ đào trả lại share. Đây không phải cùng luồng với các kết nối peer của một nút đầy đủ hay đồng bộ chuỗi của ví, và việc gộp chúng vào một lớp lưu lượng là nơi phần lớn sự nhầm lẫn bắt đầu. Chỉ cái đầu tiên thuộc chính sách này.

Ở nơi pool cung cấp TLS, hãy giữ việc xác minh máy chủ mà tài liệu của nó yêu cầu. Đường hầm mã hóa chặng từ máy của bạn tới máy chủ VPN và kết thúc ở đó; nó không bảo chứng cho người trả lời ở phía bên kia. Giữ cả hai kiểm tra, một ở mỗi đầu, nếu bạn muốn phiên sống sót qua một lối ra bị xâm phạm.

Gắn đường hầm vào tiến trình, không vào hộ gia đình

Hai điểm gắn hoạt động: chạy máy khách VPN bên trong không gian tên mạng mà thợ đào dùng, hoặc cấp cho không gian tên đó một cổng dẫn lưu lượng của nó vào đường hầm. Cả hai cách đặt phiên lên đường đi trước khi pool nhìn thấy nó. Lỗi thường gặp là máy khách trên máy chủ, thợ đào trong container có cầu riêng và một tuyến đường máy chủ mà container không bao giờ hỏi tới. Cửa sổ máy khách trông khỏe mạnh trong khi pool ghi lại địa chỉ nhà của bạn.

Kiểm tra vận chuyển của chính đường hầm trước khi giới hạn bất cứ thứ gì. Máy khách phải tới được máy chủ của nó qua lớp nền, nên một chính sách bắt mọi gói cũng bắt luôn các gói sẽ dựng nên đường hầm. Khi đó đường hầm không thể khởi động và không gì khác đi ra được. Chọn bằng tính năng đường hầm chia tách của máy khách xem gì đi vào đường hầm; sửa tuyến mặc định bằng tay là cách lớp nền biến mất.

Khi chính sách đã vào vị trí, đọc bảng socket trong không gian tên sở hữu thợ đào. Luồng tới cổng của pool nên nằm trên giao diện đường hầm, và hai lệnh trả lời câu hỏi đó. Cổng bên dưới là một ví dụ; thay bằng cổng mà pool đã phát hành.

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

Đọc tuyến đường và bộ phân giải từ ngữ cảnh của chính thợ đào

Định tuyến và phân giải tên là theo từng không gian tên, nên một kiểm tra chạy trong shell thường mô tả sai máy mỗi khi thợ đào nằm trong container. Vào không gian tên trước rồi hỏi giao diện nào sẽ mang một gói tới địa chỉ của pool và bộ phân giải nào sẽ trả lời cho tên máy chủ của nó. Câu trả lời của máy chủ không chuyển sang, và khoảng cách giữa chúng là nguồn phổ biến của việc đổ lỗi sai chỗ.

Đặt tên cho giao diện bạn nhận được: đường hầm nghĩa là phiên đang ở trên đường dự định, còn liên kết vật lý nghĩa là một quy tắc khớp sớm hơn bạn tưởng. Độ dài tiền tố quyết định trước, rồi tới metric, rồi tới các quy tắc chính sách, nên một bảng có nhiều mục mặc định không nhân đôi gói, nó chỉ thua.

Bộ phân giải thất bại riêng so với tuyến đường. Một đường hầm ghi lại /etc/resolv.conf có thể để không gian tên trỏ tới một bộ phân giải chỉ tiếp cận được từ bên trong đường hầm, điều này thất bại trước khi bất kỳ bắt tay TCP nào xảy ra. Phân giải tên máy chủ của pool bên trong không gian tên và so sánh với địa chỉ đã công bố. Nếu tra cứu hết thời gian hoặc trả về thứ khác, hãy sửa phân giải trước khi chạm vào tuyến đường.

Tách riêng máy khách pool và trình lắng nghe nút

Cổng 8333 là cổng peer của Bitcoin Core, nơi một nút đầy đủ lắng nghe các kết nối đi vào; thợ đào trong pool không bao giờ cần nó mở, và mở nó không sửa được một lỗi đi ra. Trình lắng nghe đi vào và phiên đi ra là những vai trò đối lập với giả định tin cậy đối lập. Không gì trong cấu hình của thợ đào ràng buộc cổng đó, nên một cổng đóng không thể giải thích bất kỳ lỗi nào nó báo cáo. Lời khuyên viết cho khả năng tiếp cận của một nút vì thế có thể để một dịch vụ công chạy trên máy chủ chỉ đáng lẽ gửi share.

Nếu một máy thực sự làm cả hai, hãy xử lý mỗi vai trò như dịch vụ riêng với quyết định truy cập riêng. Trình lắng nghe của nút thuộc về phía sau chính sách bạn áp cho dịch vụ công, và phiên của thợ đào thuộc chính sách đi ra chọn đường hầm. Ghi lại máy chủ đóng vai nào và gỡ bỏ các quy tắc của vai kia khi điều đó thay đổi, vì một quy tắc cho phép còn sót lại sống lâu hơn lý do của nó.

Chứng minh rằng pool đã nhận công việc

Một quạt chạy rộn ràng và hashrate tăng cho thấy thợ đào đang tính toán, không phải rằng có gì đã tới pool. Bằng chứng nằm ở các bộ đếm gửi của máy khách hoặc trên bảng điều khiển của pool: share được chấp nhận, share bị từ chối và lý do gắn với mỗi lần từ chối. Những con số đó tách ba lỗi trông giống hệt nhau từ bên ngoài: không có phiên, phiên không được ghi có và phiên liên tục kết nối lại. Đọc chúng trước khi thay đổi bất kỳ cấu hình nào.

Quan sát một lần thử kết nối với ghi nhật ký chi tiết và ghi lại giai đoạn cuối cùng thành công. Giai đoạn mà chuỗi dừng lại hữu ích hơn bất kỳ thông điệp đơn lẻ nào quanh nó:

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

Sau đó để máy khách chạy một cửa sổ cố định và đếm cả hai kết cục từ nhật ký của nó. Một grep cho mỗi bộ đếm là đủ, và so sánh chúng trên cùng cửa sổ tách một pool chậm khỏi một đường đi hỏng. Điều chỉnh đường dẫn tới nơi máy khách của bạn ghi, vì hai phép đếm không phụ thuộc vào vị trí:

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

Nếu một quy tắc cấm kết nối trực tiếp tới pool mỗi khi đường hầm sụp, hãy diễn đạt nó như một chặn rõ ràng trên điểm cuối của pool. Một máy khách lặng lẽ thử lại qua liên kết vật lý sẽ tiếp tục đào và tiếp tục vi phạm quy tắc đó, và màn hình trạng thái của nó sẽ không nhắc tới điều này. Hãy thử quy tắc bằng cách cố ý làm sập đường hầm và xác nhận rằng cổng của pool hoàn toàn không tiếp cận được.

Bài viết liên quan