JayDDee / cpuminer-opt

Optimized multi algo CPU miner
Other
774 stars 544 forks source link

stratum+ssl doesn't work #370

Closed JayDDee closed 2 years ago

JayDDee commented 2 years ago

cpuminer-opt supports secure stratum using the stratum+tcps protocol specifier. It's the same, only the name is different.

--url stratum+tcps://[URL]:[PORT]

stratum+ssl will be added as a synonym in the next release. Since there are no plans for a new release at this time this issue will serve to document the workaround.

JayDDee commented 2 years ago

Maybe not. It appears stratum+tcps & stratum+ssl are not the same. Zergpool says use stratum+ssl but I can't get it to work. But stratum+tcps does work at Zergpool.

With the cli parser modified to accept "stratum+ssl" as a valid protocol and setting the CURL_GLOBAL_SSL flag the connection fails on the ssl port. Strangely it connects to the tcp port even with CURL_GLOBAL_SSL set.

statum+tcps with CURL_GLOBAL_SSL set fails to connect to the tcp port.

Other than seting CURL_GLOBAL_SSL the miner makes no other distinction among the different protocols. The protocol is passed to curl as part of the URL. Any differences in behaviour not related to the CURL_GLOBAL_SSL flag are not caused by the miner.

JayDDee commented 2 years ago

After a bit more testing I have made the following observations:

  1. stratum+tcp and stratum+ssl behave the same

  2. CURL_GLOBAL_SSL flag makes no difference regardless of the protocol or port specified.

  3. the only way to successfully connect to the ssl port was to use stratum+tcps.

JayDDee commented 2 years ago

I think I've solved the mystery, I missed some code that mangles the url for curl. This code replaces the "stratum+tcp" prefix with "http". The concept of "stratum+tcp" only has meaning within the miner, actual network traffic is all HTTP. How the user specifies whether to use stratum and whether to use SSL is strictly at the whim of the miner software, it has no meaning to any RPC node or stratum pool.

I am in no hurry to make any changes. Zergpool's instructions are misleading. They are not pool instructions but instructions using the syntax of specific mining software. SSL isn't the only instance of this problem.

JayDDee commented 2 years ago

"stratum+ssl" appears to be more common than "stratum+tcps" so it only makes sense to support it.

The next release will recognize "stratum+ssl" as well as "stratum+tcps" as synonymous. In addition any logs that display the short url will now display the full url including the protocol prefix to confirm whether an ssl connection is being used.

There is no timetable for the next release since there are no other issues and SSL can be used by specifying stratum+tcps".

JayDDee commented 2 years ago

cpuminer-opt-3.19.8 is released. Please report any problems.

JayDDee commented 2 years ago

No problems reported.