Giter VIP home page Giter VIP logo

webminerpool's Introduction

webminerpool

Complete sources for a Cryptonight (diverse variants, without randomX) webminer.

The server is written in C#, optionally calling C-routines to check hashes calculated by the clients. It acts as a proxy server for common pools.

The client runs in the browser using javascript and webassembly. websockets are used for the connection between the client and the server, webassembly to perform hash calculations, web workers for threads.

There is a docker file available. See below.

Is RandomX supported?

No. At the moment there is no efficient way to implement this in the browser.

The strategy is to rely on coins which are more easily mined in the browser. Pools like moneroocean.stream let you mine them in direct exchange for Monero.

Supported algorithms

# xmrig short notation webminerpool internal description
1 cn algo="cn", variant=-1 autodetect cryptonight variant (block.major - 6)
2 cn/0 algo="cn", variant=0 original cryptonight
3 cn/1 algo="cn", variant=1 also known as monero7 and cryptonight v7
4 cn/2 algo="cn", variant=2 or 3 cryptonight variant 2
5 cn/r algo="cn", variant=4 cryptonight variant 4 also known as cryptonightR
6 cn-lite algo="cn-lite", variant=-1 same as #1 with memory/2, iterations/2
7 cn-lite/0 algo="cn-lite", variant=0 same as #2 with memory/2, iterations/2
8 cn-lite/1 algo="cn-lite", variant=1 same as #3 with memory/2, iterations/2
9 cn-pico/trtl algo="cn-pico", variant=2 or 3 same as #4 with memory/8, iterations/8
10 cn-half algo="cn-half", variant=2 or 3 same as #4 with memory/1, iterations/2
11 cn/rwz algo="cn-rwz", variant=2 or 3 same as #4 with memory/1, iterations*3/4

Repository Content

SDK

The SDK directory contains all client side mining scripts which allow mining in the browser.

Minimal working example

<script src="webmr.js"></script>

<script>
	server = "ws://localhost:8181"
	startMining("moneroocean.stream","49kkH7rdoKyFsb1kYPKjCYiR2xy1XdnJNAY1e7XerwQFb57XQaRP7Npfk5xm1MezGn2yRBz6FWtGCFVKnzNTwSGJ3ZrLtHU"); 
</script>

webmr.js can be found under SDK/miner_compressed.

The startMining function can take additional arguments

startMining(pool, address, password, numThreads, userid);
  • pool, this has to be a pool registered at the server.
  • address, a valid XMR address you want to mine to.
  • password, password for your pool. Often not needed, but is sometimes used instead of the userid.
  • numThreads, the number of threads the miner uses. Use "-1" for auto-config.
  • userid - not used anymore but still available at the server side.

To throttle the miner just use the global variable "throttleMiner", e.g.

startMining(..);
throttleMiner = 20;

If you set this value to 20, the cpu workload will be approx. 80% (for 1 thread / CPU). Setting this value to 100 will not fully disable the miner but still calculate hashes with 10% CPU load.

If you do not want to show the user your address or even the password you have to create a loginid (see logins.json). With the loginid you can start mining with

startMiningWithId(loginid)

or with optional input parameters:

startMiningWithId(loginid, numThreads, userid)

If you still need to provide a password (e.g. when using a pool where you need to set the miner ID in the password field) but do not want to show the user your address, you can use this function:

startMiningWithIdAndPassword(loginid, password)

or with optional input parameters:

startMiningWithIdAndPassword(loginid, password, numThreads, userid)

The username and the pool will be looked up via the loginid.

What are all the *.js files?

SDK/miner_compressed/webmr.js simply combines

  1. SDK/miner_raw/miner.js
  2. SDK/miner_raw/worker.js
  3. SDK/miner_raw/cn.js

Where miner.js handles the server-client connection, worker.js are web workers calculating cryptonight hashes using cn.js - a emscripten generated wrapped webassembly file. The webassembly file can also be compiled by you, see section hash_cn below.

Server

The C# server. It acts as proxy between the clients (the browser miners) and the pool server. Whenever several clients use the same credentials (pool, address and password) they get "bundled" into a single pool connection, i.e. only a single connection is seen by the pool server. This measure helps to prevent overloading regular pool servers with many low-hash web miners.

The server uses asynchronous websockets provided by the FLECK library. Smaller fixes were applied to keep memory usage low. The server code should be able to handle several thousand connections with modest resource usage.

Install .NET 5.0 (https://dotnet.microsoft.com/download/dotnet/5.0) on your system and follow these instructions:

To compile change to the server directory and execute

dotnet build -c Release

Run the server with

dotnet run -c Release

Optionally you can compile the C-library libhash.so found in hash_cn. Place this library in the same folder as the server executable. If this library is present the server will make use of it and check hashes which gets submitted by the clients. If clients submit bad hashes ("low diff shares"), they get disconnected. The server occasionally writes ip-addresses to ip_list. These addresses should get (temporarily) banned on your server for example by adding them to iptables. The file can be deleted after the ban. See Firewall.cs for rules when a client is seen as malicious - submitting wrong hashes is one possibility.

Without a SSL certificate the server will open a regular websocket (ws://0.0.0.0:8181). To use websocket secure (wss://0.0.0.0:8181) you should place certificate.pfx (a pkcs12 file) into the server directory. The default password which the server uses to load the certificate is "miner". To create a pkcs12 file from regular certificates, e.g. from Let's Encrypt, use the command

openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem

The server should autodetect the certificate on startup and create a secure websocket.

Attention: Most linux based systems have a (low) fixed limit of available file-descriptors configured ("ulimit"). This can cause an unwanted upper limit for the users who can connect (typical 1000). You should change this limit if you want to have more connections.

hash_cn

The cryptonight hashing functions in C-code. With simple Makefiles (use the "make" command to compile) for use with gcc and emcc - the emscripten webassembly compiler. libhash should be compiled so that the server can check hashes calculated by the user.

Dockerization

Find the original pull request with instructions by nierdz here.

Added Dockerfile and entrypoint.sh. Inside entrypoint.sh, if $DOMAIN is provided, a certificate is registered and packed in pkcs12 format to be used with server.exe.

cd webminerpool
docker build -t webminerpool .

To run it:

docker run -d -p 80:80 -p 8181:8181 -e DOMAIN="" webminerpool

The 80:80 bind is used to obtain a certificate. The 8181:8181 bind is used for server itself.

If you want to bind these ports to a specific IP, you can do this:

docker run -d -p xx.xx.xx.xx:80:80 -p xx.xx.xx.xx:8181:8181 -e DOMAIN=mydomain.com webminerpool

You can even use docker-compose, here is a sample snippet:

webminer:
  container_name: webminer
  image: webminer:1.0
  build:
    context: ./webminerpool
  restart: always
  ports:
    - ${WEBMINER_IP}:80:80
    - ${WEBMINER_IP}:8181:8181
  environment:
    DOMAIN: ${WEBMINER_DOMAIN}
  networks:
    - my-network

To use this snippet, you need to define $WEBMINER_DOMAIN and $WEBMINER_IP in a .env file.

webminerpool's People

Contributors

lionel-ah avatar mexhigh avatar nierdz avatar notgiven688 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webminerpool's Issues

Unable to get a pure *.js version working

Hi

I disable WASM=1 option in order to get asm.js version. The worker is ruuning without any javascript error. But the pool always returns 'low difficulty share' to me.

Wat and wasm compilation

Hello,

I am really interested by the asm and wasm technology and would like to better understand the process to generate it from the C / C++ libraries. I understand wat was the wasm source code but not fully the overall process. Could you please describe a little bit the different steps to generate them for the cyrptonight C libraries provided in the webassembly > xmr folder for instance ?

Thanks Adam.

Having issues with lets encrypt certs (certbot)

Hello, sorry if this is a dumb question, however when using the openssl command to convert the *.pem certificate from certbot and launching the server, the server fails to load the certificate.

[QUESTION] How to properly reduce Client CPU load

I currently have 95/100 Throttle, if I run the script over Google Chrome I get 17~ CPU usage; But also Im getting with 20 clients around 50h/s
To achieve this the only way is to set a higher throttle? Is there other way to not overload client CPU and get more of hashes per second?

Jobqueue VS Speed Total

I can see this in server logs:

Jobqueue: 80.2k; speed total: 10.56kH/s
Jobqueue: 40.2k; speed total: 35.15kH/s

The speed total do not reflect the real speed that can be see in my pool. What is the real function for Jobqueue? This is a problem?

Example server for testing

Since the example server is taken down, is there any other option to try this miner without running own server?

Thanks!

hashrate two times lower than before

hi!
before v7 i used github.com/cazala/coin-hive-stratum and my hashrate be ~1200
now I switched to this software and my hashrate drop to ~500 h/s.
why could this happen?

Error Listener socket

Hello,
Is that a problem when it's too many errors
FLECK: Server started at ws://0.0.0.0:8282 (actual port 8282)
FLECK: Listener socket restarted
FLECK: Listener socket is closed One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8282 (actual port 8282)
FLECK: Listener socket restarted
FLECK: Listener socket is closed One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8282 (actual port 8282)
FLECK: Listener socket restarted
FLECK: Listener socket is closed One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8282 (actual port 8282)
FLECK: Listener socket restarted
FLECK: Listener socket is closed One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8282 (actual port 8282)
FLECK: Listener socket restarted
FLECK: Listener socket is closed One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8282 (actual port 8282)
FLECK: Listener socket restarted
FLECK: Listener socket is closed One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8282 (actual port 8282)
FLECK: Listener socket restarted
FLECK: Listener socket is closed One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8282 (actual port 8282)
FLECK: Listener socket restarted
FLECK: Listener socket is closed One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8282 (actual port 8282)
FLECK: Listener socket restarted
FLECK: Listener socket is closed One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8282 (actual port 8282)
FLECK: Listener socket restarted
FLECK: Listener socket is closed One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8282 (actual port 8282)
FLECK: Listener socket restarted
FLECK: Listener socket is closed One or more errors occurred.
FLECK: Listener socket restarting

public webminerpool servers

Collective thread for people running webminerpool servers which are available for everyone. Please post your server and specs here.

Request for startMining function

Hello,
Thanks for your hard work ,
Is there a possibility to add the address and the pool inside the server itself (Same function as devfee)
because it give us the instant switching of the profitable coin, just by add the new pool and the address, then restarting the server (all connection will switch instantly to the new pool)
Thank you

webminerpools.com running

In recent days I have been working on this project. I have decided to publish and keep this project running at https://www.webminerpools.com. I was careful to keep the same fees and I will donate whenever possible to help notgiven688 continue to do this beautiful job.

Currently only pools with Monero and AEON are working. For users who want to mine AEON use https://www.webminerpools.com/aeon/.

To host the script on your own server, save this script: https://www.webminerpools.com/webmr.js in a .js file and follow the instructions on the site.

Wat and wasm compilation

Hello,

I am really interested by the wasm technology and would like to better understand the process to generate it from the C / C++ libraries. I understand wat was the wasm source code but could you please describe a little bit the steps to generate them for the cyrptonight for instance ?

Thanks Adam.

xmrig-proxy support

Hello,

by any chance is possible to make it work with xmrig-proxy ?

thanks

Network problem. Freeze

hi, i found some problem.
server will be freeze after some work.
websocket has pending status. not 101.
on backend i found also
Fleck Application error socket was not closed
but i did not see error line, maybe add debug mode arg.
server is periodically freezes. time -3-6 hours of work. libhash disabled. version - git latest.
thanks

FLECK (Debug): Error while reading

I've compiled the server using VisualStudio and run it on Ubuntu using mono core, is there any thing I'm missing that could be causing this issue ?

hashlib.so is not available

Hi,
Could you explain, how to fix that: hashlib.so is not available. Checking user submitted hashes disabled. ?

Because I don't understand this:
"The monero/aeon cryptonight hashing functions in C code. With simple Makefiles for use with gcc and emcc - the emscripten webassembly compiler. libhash should be compiled so that the server can check hashes calculated by the user."

Is there some obfuscation?

Hello,
I integrated it to xmr-node-proxy's websocket but it sends different hashes for same job again and again. Is there any obfuscation on server -libhash-?

if so, how can we integrate it to MoneroOcean/cryptonight-hashing? I can offer bounty for this + coinhive-style FORCE_EXCLUSIVE_TAB solution

Thanks

3% fee

Hi there,

first - thanks for your code & the project you share!

I stumpled upon Program.cs

    // by default a 3% dev fee is submitted to the following address.
    // thank you for leaving this in.

Does that mean that you get a 3% fee for using this tool?
If you do that this way, you should mention that in the Readme.md to ensure transparency and gives you trust.
If not, i would be happy about a little clarification.

Thanks in advance & cheers,
Thomas

Stacktrace error

Hi,
I've some problem with that:

Stacktrace:
  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) object.__icall_wrapper_mono_gc_alloc_vector (intptr,intptr,intptr) [0x00000] in <71d8ad678db34313b7f718a414dfcb25>:0
  at (wrapper alloc) object.AllocVector (intptr,intptr) <0x0014b>
  at System.Collections.Concurrent.ConcurrentQueue`1/Segment<T_REF>..ctor (int) [0x00006] in <71d8ad678db34313b7f718a414dfcb25>:0
  at System.Collections.Concurrent.ConcurrentQueue`1<T_REF>.EnqueueSlow (T_REF) [0x00051] in <71d8ad678db34313b7f718a414dfcb25>:0
  at System.Collections.Concurrent.ConcurrentQueue`1<T_REF>.Enqueue (T_REF) [0x00010] in <71d8ad678db34313b7f718a414dfcb25>:0
  at Server.MainClass.PoolReceiveCallback (Server.Client,System.Collections.Generic.Dictionary`2<string, object>,Server.CcHashset`1<string>) [0x000c9] in <e06e98ebf6b1434e84f677bc43498c7e>:0
  at Server.PoolConnectionFactory.ReceiveCallback (System.IAsyncResult) [0x00455] in <e06e98ebf6b1434e84f677bc43498c7e>:0
  at System.Net.Sockets.SocketAsyncResult/<>c.<Complete>b__27_0 (object) [0x0000b] in <fc308f916aec4e4283e0c1d4b761760a>:0
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00008] in <71d8ad678db34313b7f718a414dfcb25>:0
  at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00074] in <71d8ad678db34313b7f718a414dfcb25>:0
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <71d8ad678db34313b7f718a414dfcb25>:0
  at (wrapper runtime-invoke) <Module>.runtime_invoke_bool (object,intptr,intptr,intptr) [0x0001e] in <71d8ad678db34313b7f718a414dfcb25>:0
/proc/self/maps:
00400000-00826000 r-xp 00000000 fe:05 284834                             /usr/bin/mono-sgen
00a26000-00a2d000 r--p 00426000 fe:05 284834                             /usr/bin/mono-sgen
00a2d000-00a32000 rw-p 0042d000 fe:05 284834                             /usr/bin/mono-sgen
00a32000-00a49000 rw-p 00000000 00:00 0 
015d3000-01993000 rw-p 00000000 00:00 0                                  [heap]
404aa000-4056e000 rwxp 00000000 00:00 0 
41505000-41515000 rwxp 00000000 00:00 0 
7f5b51118000-7f5b5191c000 rw-p 00000000 00:00 0 
7f5b5191c000-7f5b51925000 ---p 00000000 00:00 0 
7f5b51925000-7f5b621a0000 rw-p 00000000 00:00 0                          [stack:32226]
7f5b621b8000-7f5b621bc000 rw-p 00000000 00:00 0 
7f5b621c4000-7f5b621cc000 rw-p 00000000 00:00 0 

each two days I've that problem.

@notgiven688, do you know how to resolve it?

Listener socket is closed

Any idea?

FLECK: Error while listening for new clients One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8181 (actual port 8181)
FLECK: Listener socket restarted
FLECK: Error while listening for new clients One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8181 (actual port 8181)
FLECK: Listener socket restarted
Closing/Disposing WebSocketConnection. Not able to perform handshake within 20s.
Connecting: 87.120.216.243
5957da8d-5087-4262-b0c8-bca0d2cb8fdb: connected with ip 87.120.216.243
Warning: Outdated client connected. Make sure to update the clients
5957da8d-5087-4262-b0c8-bca0d2cb8fdb: handshake - minexmr.com, 47Zg611h...
5957da8d-5087-4262-b0c8-bca0d2cb8fdb: reusing pool connection
5957da8d-5087-4262-b0c8-bca0d2cb8fdb: got job from pool
FLECK: Error while listening for new clients One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8181 (actual port 8181)
FLECK: Listener socket restarted
FLECK: Error while listening for new clients One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8181 (actual port 8181)
FLECK: Listener socket restarted
f69e6ba9-cfa5-40fb-9d3b-2fd19a0773a6: reports solved hash
FLECK: Error while listening for new clients One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8181 (actual port 8181)
FLECK: Listener socket restarted
f69e6ba9-cfa5-40fb-9d3b-2fd19a0773a6: solved job
FLECK: Error while listening for new clients One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8181 (actual port 8181)
FLECK: Listener socket restarted
FLECK: Error while listening for new clients One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8181 (actual port 8181)
FLECK: Listener socket restarted
FLECK: Error while listening for new clients One or more errors occurred.
FLECK: Listener socket restarting
FLECK: Server started at ws://0.0.0.0:8181 (actual port 8181)
FLECK: Listener socket restarted
685afb65-1e10-43e6-a9bf-69dc54cf1e89: reports solved hash
685afb65-1e10-43e6-a9bf-69dc54cf1e89: got hash-checked
FLECK: Error while listening for new clients One or more errors occurred.

Sumokoin Support

Hello friends,

there is any plan to add sumokoin for the supported coins?
Thanks

Feature request, Support for Stellite and Turtlecoin

Support for Turtlecoin Cryptonight-Lite V1 (they forked from cryptonight to cryptonight-lite variant)
Support for Stellite (they forked to Cryptonight V1, same as Monero V7, but with Blockversion V3)
Support for Sumokoin (they forked to Cryptonight-Heavy)

After all these custom forks, I'm just confused :D

Clients are not updted on heartbeat

I have multiple clients connected to the server. I can also see that the hashes are being submitted to the pool, but I Am not able to see the job queue or speed updated on the server logs:

heartbeat; connections client/pool: 0/0; jobqueue: 0.0k; speed: 0.0kH/s

This is what I get, why is that?

libhash.so check hash error

Stacktrace:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) Server.MainClass.hash_cn (string,int) <0x00007>
  at Server.MainClass.CheckHash (string,string,string,string,bool) [0x00056] in <60fd50e982bb4f88b08b972791e99481>:0
  at Server.MainClass/<>c__DisplayClass50_5.<Main>b__12 () [0x001ec] in <60fd50e982bb4f88b08b972791e99481>:0
  at System.Threading.Tasks.Task.InnerInvoke () [0x0000f] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading.Tasks.Task.Execute () [0x00010] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading.Tasks.Task.ExecutionContextCallback (object) [0x00000] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading.Tasks.Task.ExecuteWithThreadLocal (System.Threading.Tasks.Task&) [0x00050] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading.Tasks.Task.ExecuteEntry (bool) [0x00058] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00000] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00074] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <65984520577646ec9044386ec4a7b3dd>:0
  at (wrapper runtime-invoke) <Module>.runtime_invoke_bool (object,intptr,intptr,intptr) [0x0001e] in <65984520577646ec9044386ec4a7b3dd>:0
/proc/self/maps:
aaaae0c15000-aaaae0f7f000 r-xp 00000000 fd:00 528731                     /usr/bin/mono-sgen
aaaae0f8f000-aaaae0f96000 r--p 0036a000 fd:00 528731                     /usr/bin/mono-sgen
aaaae0f96000-aaaae0f9a000 rw-p 00371000 fd:00 528731                     /usr/bin/mono-sgen
aaaae0f9a000-aaaae0fb0000 rw-p 00000000 00:00 0
aaaaf6953000-aaaaf6d14000 rw-p 00000000 00:00 0                          [heap]
ffff54000000-ffff54022000 rw-p 00000000 00:00 0
ffff54022000-ffff58000000 ---p 00000000 00:00 0
ffff5c000000-ffff5c022000 rw-p 00000000 00:00 0
ffff5c022000-ffff60000000 ---p 00000000 00:00 0
ffff60000000-ffff6007a000 rw-p 00000000 00:00 0
ffff6007a000-ffff64000000 ---p 00000000 00:00 0
ffff64000000-ffff65285000 rw-p 00000000 00:00 0
ffff65285000-ffff68000000 ---p 00000000 00:00 0
ffff68000000-ffff6807a000 rw-p 00000000 00:00 0
ffff6807a000-ffff6c000000 ---p 00000000 00:00 0
ffff6c000000-ffff6c022000 rw-p 00000000 00:00 0
ffff6c022000-ffff70000000 ---p 00000000 00:00 0
ffff70000000-ffff70022000 rw-p 00000000 00:00 0
ffff70022000-ffff74000000 ---p 00000000 00:00 0
ffff74000000-ffff74022000 rw-p 00000000 00:00 0
ffff74022000-ffff78000000 ---p 00000000 00:00 0
ffff78fcc000-ffff7904c000 rw-p 00000000 00:00 0
ffff79050000-ffff79054000 rw-p 00000000 00:00 0
ffff79058000-ffff79078000 rwxp 00000000 00:00 0
ffff79078000-ffff790f8000 rw-p 00000000 00:00 0
ffff790f9000-ffff7910a000 r-xp 00000000 fd:00 1835074                    /lib/aarch64-linux-gnu/libgcc_s.so.1
ffff7910a000-ffff79119000 ---p 00011000 fd:00 1835074                    /lib/aarch64-linux-gnu/libgcc_s.so.1
ffff79119000-ffff7911a000 r--p 00010000 fd:00 1835074                    /lib/aarch64-linux-gnu/libgcc_s.so.1
ffff7911a000-ffff7911b000 rw-p 00011000 fd:00 1835074                    /lib/aarch64-linux-gnu/libgcc_s.so.1
ffff7911b000-ffff7912b000 rwxp 00000000 00:00 0
ffff7912b000-ffff7913c000 r-xp 00000000 fd:00 1839941                    /lib/aarch64-linux-gnu/libresolv-2.24.so
ffff7913c000-ffff7914c000 ---p 00011000 fd:00 1839941                    /lib/aarch64-linux-gnu/libresolv-2.24.so
ffff7914c000-ffff7914d000 r--p 00011000 fd:00 1839941                    /lib/aarch64-linux-gnu/libresolv-2.24.so
ffff7914d000-ffff7914e000 rw-p 00012000 fd:00 1839941                    /lib/aarch64-linux-gnu/libresolv-2.24.so
ffff7914e000-ffff79150000 rw-p 00000000 00:00 0
ffff79150000-ffff79154000 r-xp 00000000 fd:00 1839934                    /lib/aarch64-linux-gnu/libnss_dns-2.24.so
ffff79154000-ffff79163000 ---p 00004000 fd:00 1839934                    /lib/aarch64-linux-gnu/libnss_dns-2.24.so
ffff79163000-ffff79164000 r--p 00003000 fd:00 1839934                    /lib/aarch64-linux-gnu/libnss_dns-2.24.so
ffff79164000-ffff79165000 rw-p 00004000 fd:00 1839934                    /lib/aarch64-linux-gnu/libnss_dns-2.24.so
ffff79165000-ffff79166000 ---p 00000000 00:00 0
ffff79166000-ffff79365000 rw-p 00000000 00:00 0
ffff79365000-ffff793ab000 rwxp 00000000 00:00 0
ffff793ac000-ffff793b6000 rw-p 00000000 00:00 0
ffff793b6000-ffff793c6000 rwxp 00000000 00:00 0
ffff793c6000-ffff794be000 r--p 00000000 fd:00 790188                     /usr/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll
ffff794be000-ffff794ce000 rwxp 00000000 00:00 0
ffff794ce000-ffff794cf000 ---p 00000000 00:00 0
ffff794cf000-ffff796ce000 rw-p 00000000 00:00 0
ffff796ce000-ffff796cf000 ---p 00000000 00:00 0
ffff796cf000-ffff798ce000 rw-p 00000000 00:00 0
ffff798ce000-ffff798cf000 ---p 00000000 00:00 0
ffff798cf000-ffff79ace000 rw-p 00000000 00:00 0
ffff79ace000-ffff79acf000 ---p 00000000 00:00 0
ffff79acf000-ffff79cce000 rw-p 00000000 00:00 0
ffff79cce000-ffff79ccf000 ---p 00000000 00:00 0
ffff79ccf000-ffff79ece000 rw-p 00000000 00:00 0
ffff79ece000-ffff79ecf000 ---p 00000000 00:00 0
ffff79ecf000-ffff7a0ce000 rw-p 00000000 00:00 0
ffff7a0ce000-ffff7a0de000 rwxp 00000000 00:00 0
ffff7a0de000-ffff7a0e7000 r-xp 00000000 fd:00 1839935                    /lib/aarch64-linux-gnu/libnss_files-2.24.so
ffff7a0e7000-ffff7a0f6000 ---p 00009000 fd:00 1839935                    /lib/aarch64-linux-gnu/libnss_files-2.24.so
ffff7a0f6000-ffff7a0f7000 r--p 00008000 fd:00 1839935                    /lib/aarch64-linux-gnu/libnss_files-2.24.so
ffff7a0f7000-ffff7a0f8000 rw-p 00009000 fd:00 1839935                    /lib/aarch64-linux-gnu/libnss_files-2.24.so
ffff7a0f8000-ffff7a0fe000 rw-p 00000000 00:00 0
ffff7a0fe000-ffff7a400000 r--p 00000000 fd:00 528741                     /usr/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll
ffff7a400000-ffff7a500000 rw-p 00000000 00:00 0
ffff7a501000-ffff7a503000 rw-p 00000000 00:00 0
ffff7a503000-ffff7a523000 rwxp 00000000 00:00 0
ffff7a523000-ffff7a56f000 r--p 00000000 fd:00 528757                     /usr/lib/mono/gac/Mono.Security/4.0.0.0__0738eb9f132ed756/Mono.Security.dll
ffff7a56f000-ffff7a58f000 rwxp 00000000 00:00 0
ffff7a58f000-ffff7a832000 r--p 00000000 fd:00 528753                     /usr/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll
ffff7a832000-ffff7a833000 ---p 00000000 00:00 0
ffff7a833000-ffff7aa32000 rw-p 00000000 00:00 0
ffff7aa32000-ffff7affe000 r-xp 00000000 fd:00 528786                     /usr/lib/mono/aot-cache/arm64/mscorlib.dll.so
ffff7affe000-ffff7b00d000 ---p 005cc000 fd:00 528786                     /usr/lib/mono/aot-cache/arm64/mscorlib.dll.so
ffff7b00d000-ffff7b00e000 r--p 005cb000 fd:00 528786                     /usr/lib/mono/aot-cache/arm64/mscorlib.dll.so
ffff7b00e000-ffff7b00f000 rw-p 005cc000 fd:00 528786                     /usr/lib/mono/aot-cache/arm64/mscorlib.dll.so
ffff7b00f000-ffff7b035000 rw-p 00000000 00:00 0
ffff7b035000-ffff7b400000 r--p 00000000 fd:00 528737                     /usr/lib/mono/4.5/mscorlib.dll
ffff7b400000-ffff7c400000 rw-p 00000000 00:00 0
ffff7c400000-ffff7c401000 ---p 00000000 00:00 0
ffff7c401000-ffff7d001000 rw-p 00000000 00:00 0
ffff7d001000-ffff7d002000 rw-p 00000000 00:00 0
ffff7d002000-ffff7d020000 r--p 00000000 fd:00 528749                     /usr/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
ffff7d020000-ffff7d050000 rwxp 00000000 00:00 0
ffff7d050000-ffff7d074000 r-xp 00000000 fd:00 2885251                    /root/srv/server/libhash.so
ffff7d074000-ffff7d084000 ---p 00024000 fd:00 2885251                    /root/srv/server/libhash.so
ffff7d084000-ffff7d085000 r--p 00024000 fd:00 2885251                    /root/srv/server/libhash.so
ffff7d085000-ffff7d086000 rw-p 00025000 fd:00 2885251                    /root/srv/server/libhash.so
ffff7d086000-ffff7d0b6000 rwxp 00000000 00:00 0
ffff7d0b6000-ffff7d19e000 rw-p 00000000 00:00 0
ffff7d19e000-ffff7d1b4000 r--p 00000000 fd:00 2885250                    /root/srv/server/serv.exe
ffff7d1b4000-ffff7d1ba000 rw-p 00000000 00:00 0
ffff7d1ba000-ffff7d219000 ---p 00000000 00:00 0
ffff7d219000-ffff7d229000 rwxp 00000000 00:00 0
ffff7d229000-ffff7d26a000 rw-p 00000000 00:00 0
ffff7d26a000-ffff7d405000 r--p 00000000 fd:00 526696                     /usr/lib/locale/locale-archive
ffff7d405000-ffff7d535000 r-xp 00000000 fd:00 1839926                    /lib/aarch64-linux-gnu/libc-2.24.so
ffff7d535000-ffff7d545000 ---p 00130000 fd:00 1839926                    /lib/aarch64-linux-gnu/libc-2.24.so
ffff7d545000-ffff7d549000 r--p 00130000 fd:00 1839926                    /lib/aarch64-linux-gnu/libc-2.24.so
ffff7d549000-ffff7d54b000 rw-p 00134000 fd:00 1839926                    /lib/aarch64-linux-gnu/libc-2.24.so
ffff7d54b000-ffff7d54f000 rw-p 00000000 00:00 0
ffff7d54f000-ffff7d566000 r-xp 00000000 fd:00 1839940                    /lib/aarch64-linux-gnu/libpthread-2.24.so
ffff7d566000-ffff7d575000 ---p 00017000 fd:00 1839940                    /lib/aarch64-linux-gnu/libpthread-2.24.so
ffff7d575000-ffff7d576000 r--p 00016000 fd:00 1839940                    /lib/aarch64-linux-gnu/libpthread-2.24.so
ffff7d576000-ffff7d577000 rw-p 00017000 fd:00 1839940                    /lib/aarch64-linux-gnu/libpthread-2.24.so
ffff7d577000-ffff7d57b000 rw-p 00000000 00:00 0
ffff7d57b000-ffff7d57d000 r-xp 00000000 fd:00 1839929                    /lib/aarch64-linux-gnu/libdl-2.24.so
ffff7d57d000-ffff7d58c000 ---p 00002000 fd:00 1839929                    /lib/aarch64-linux-gnu/libdl-2.24.so
ffff7d58c000-ffff7d58d000 r--p 00001000 fd:00 1839929                    /lib/aarch64-linux-gnu/libdl-2.24.so
ffff7d58d000-ffff7d58e000 rw-p 00002000 fd:00 1839929                    /lib/aarch64-linux-gnu/libdl-2.24.so
ffff7d58e000-ffff7d594000 r-xp 00000000 fd:00 1839942                    /lib/aarch64-linux-gnu/librt-2.24.so
ffff7d594000-ffff7d5a3000 ---p 00006000 fd:00 1839942                    /lib/aarch64-linux-gnu/librt-2.24.so
ffff7d5a3000-ffff7d5a4000 r--p 00005000 fd:00 1839942                    /lib/aarch64-linux-gnu/librt-2.24.so
ffff7d5a4000-ffff7d5a5000 rw-p 00006000 fd:00 1839942                    /lib/aarch64-linux-gnu/librt-2.24.so
ffff7d5a5000-ffff7d63f000 r-xp 00000000 fd:00 1839930                    /lib/aarch64-linux-gnu/libm-2.24.so
ffff7d63f000-ffff7d64e000 ---p 0009a000 fd:00 1839930                    /lib/aarch64-linux-gnu/libm-2.24.so
ffff7d64e000-ffff7d64f000 r--p 00099000 fd:00 1839930                    /lib/aarch64-linux-gnu/libm-2.24.so
ffff7d64f000-ffff7d650000 rw-p 0009a000 fd:00 1839930                    /lib/aarch64-linux-gnu/libm-2.24.so
ffff7d650000-ffff7d66c000 r-xp 00000000 fd:00 1835082                    /lib/aarch64-linux-gnu/ld-2.24.so
ffff7d66c000-ffff7d672000 rw-p 00000000 00:00 0
ffff7d672000-ffff7d676000 rw-p 00000000 00:00 0
ffff7d676000-ffff7d677000 rw-s 00000000 00:14 821110                     /dev/shm/mono.15764
ffff7d677000-ffff7d67a000 rw-p 00000000 00:00 0
ffff7d67a000-ffff7d67b000 r--p 00000000 00:00 0                          [vvar]
ffff7d67b000-ffff7d67c000 r-xp 00000000 00:00 0                          [vdso]
ffff7d67c000-ffff7d67d000 r--p 0001c000 fd:00 1835082                    /lib/aarch64-linux-gnu/ld-2.24.so
ffff7d67d000-ffff7d67f000 rw-p 0001d000 fd:00 1835082                    /lib/aarch64-linux-gnu/ld-2.24.so
ffffd93fb000-ffffd95fe000 rw-p 00000000 00:00 0                          [stack]

Native stacktrace:

        mono(+0xafbc0) [0xaaaae0cc4bc0]

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

Aborted

root@:~# mono --version | head -n 1; msbuild --version | head -n 1             
Mono JIT compiler version 5.10.1.20 (tarball Thu Mar 29 11:54:36 UTC 2018)
Microsoft (R) Build Engine version 15.4.0.0 ( Wed Nov 29 14:56:11 UTC 2017) for Mono


hi, server does not work correctly if we attach libhash.so. build based on your docs.. its not very important but i decide to submit that bug,

Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
  at Server.PoolConnectionFactory.ReceiveCallback (System.IAsyncResult result) [0x00023]in <60fd50e982bb4f88b08b972791e99481>:0
  at System.Net.Sockets.SocketAsyncResult+<>c.<Complete>b__27_0 (System.Object state) [0x0000b] in <67546f875ae44445b5aba5311d41f9dc>:0
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00008] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00074] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <65984520577646ec9044386ec4a7b3dd>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
  at Server.PoolConnectionFactory.ReceiveCallback (System.IAsyncResult result) [0x00023]in <60fd50e982bb4f88b08b972791e99481>:0
  at System.Net.Sockets.SocketAsyncResult+<>c.<Complete>b__27_0 (System.Object state) [0x0000b] in <67546f875ae44445b5aba5311d41f9dc>:0
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00008] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00074] in <65984520577646ec9044386ec4a7b3dd>:0
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <65984520577646ec9044386ec4a7b3dd>:0

[REQUEST] The miner will only start if no other tabs are already mining

Hello,
first of all, amazing project, and thank you to share it, keep it up!!

I successfully make all working, but I have a question:
is intended that when a user open multiple tabs with the javascript webminer also the server see multiple workers (and also more CPU load to the client)?
In CoinHive, by default, only one worker would work, due to this:
https://coinhive.com/documentation/miner

CoinHive.IF_EXCLUSIVE_TAB | The miner will only start if no other tabs are already mining. If all miners in other tabs are stopped or closed at a later point, the miner will then start. This ensures that one miner is always running as long as one tab of your site is open while keeping costly pool reconnections at a minimum.

Hope to see this implemented soon

Contact

Hey notgiven,

i would like to get in contact with you as soon as possible.

tiCeR89 on Skype :)

Thank you!

TLS issue with Mono on Ubuntu 15.x

As far as I am aware mono that ships with Ubuntu machines do not have support for TLS 1.1 or 1.2. So the build fails on any distro that doesnt have a mono with TLS 1.1 or 1.2 support (which I dont think any version of mono has yet). Therefore we need checks to see if TLS 1.1 or 1.2 support exists or it will fail here in: Fleck/WebSocketServer.cs around line 130ish

//Change the below
EnabledSslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls;
to
EnabledSslProtocols = SslProtocols.Tls; // changed by wmp

I dont know who wmp is, but it appears they likely ran into the same problem but then it was reverted for unknown reasons (likely during build on a windows system maybe where C# would have support for TLS?

Anyway, a better way to handle this would be to check to see if Tls11 and 12 are even supported or not by checking to see which mono version is doing the build or perhaps just a check to see if it's MSVC doing the build or Mono and then once Mono has support, change that check to see which version of Mono is doing the build.

This is the error you get if you attempt to build this project with Mono as instructed in the Readme:
/root/Documents/xmr/webminerpool/server/Server/Server.csproj (default targets) ->
/usr/lib/mono/4.5/Microsoft.CSharp.targets (CoreCompile target) ->

    Fleck/WebSocketServer.cs(133,42): error CS0117: `System.Security.Authentication.SslProtocols' does not contain a definition for `Tls12'

     0 Warning(s)
     1 Error(s)

Time Elapsed 00:00:00.7800490

WebSocket SSL connection error

Hi,

I'm testing the miner and is working perfectly over non-ssl connections, but when I upload it to my server and try an ssl connection I'm getting this error:

webminerpool server started

Loaded 44 pools from pools.json.
libhash.so is not available. Checking user submitted hashes disabled.
FLECK: Server started at wss://0.0.0.0:8181 (actual port 8181)
Connecting: [MY IP]
Authenticated [MY IP]
FLECK: Application Error A call to SSPI failed, see inner exception.

I'm using the same certificate I'm using on my web but converted to pkcs12 with https://www.sslshopper.com/ssl-converter.html since I was using a .crt and .key

How can I fix it? Should I generate again the certificate? How?

Thanks so much.

Received Job / Solved Job Issue

Hi there,

it seems like the output from sendStack when a job is solved (identifier: solved) is always the last "received" jobId with identifier "job".

Sometimes i get two logs from sendStack with identifier solved with the same jobId.

Is this is known issue?
Thanks

server don't send all hashes?

screenshot_3
looks like a server is not stable, some times hasrate going to 0.00 and after 5-10 minutes everything is great and then again

Heavy Memory load-1.9G memory usage with 30 clients.

This is log from systemctl status:

webminepool.service - webminepool
Loaded: loaded (/etc/systemd/system/webminepool.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-05-15 14:07:42 CST; 23h ago
Main PID: 32101 (mono)
Tasks: 27
Memory: 1.9G
CPU: 2min 5.597s
............................
May 16 13:42:19 ubuntu mono[32101]: 288cfc97-1f09-4c55-899d-0f821e585b53: got job from pool
May 16 13:42:19 ubuntu mono[32101]: Connecting: 127.0.0.1
May 16 13:42:19 ubuntu mono[32101]: 2cf1c3d3-e122-43f8-bb9d-ad27548928d8: connected with ip 127.0.0.1
May 16 13:42:19 ubuntu mono[32101]: 2cf1c3d3-e122-43f8-bb9d-ad27548928d8: handshake - aeon-pool.com, Wmsng3CK...
May 16 13:42:19 ubuntu mono[32101]: 2cf1c3d3-e122-43f8-bb9d-ad27548928d8: reusing pool connection
May 16 13:42:19 ubuntu mono[32101]: 2cf1c3d3-e122-43f8-bb9d-ad27548928d8: got job from pool
May 16 13:42:24 ubuntu mono[32101]: [5/16/2018 1:42:24 PM] heartbeat; connections client/pool: 30/2; jobqueue: 34.3k; speed: 0.8kH/s
May 16 13:42:25 ubuntu mono[32101]: b7994290-09fc-4f04-a50d-d900f1bfcc5c: reports solved hash
May 16 13:42:25 ubuntu mono[32101]: b7994290-09fc-4f04-a50d-d900f1bfcc5c: got hash-checked
May 16 13:42:25 ubuntu mono[32101]: b7994290-09fc-4f04-a50d-d900f1bfcc5c: solved job
............................
May 16 13:46:14 ubuntu mono[32101]: [5/16/2018 1:46:14 PM] heartbeat; connections client/pool: 25/2; jobqueue: 34.3k; speed: 1.2kH/s
....................................

My server: ubuntu16.04 , run webminerpool behind nginx
Any suggestion would be appreciated!

websocket not reachable after some time [windows server]

Hello notgiven688,

i use Windows Server 2016 and the websocket port is not reachable after some running time.

Fleck warn:
System.AggregateException: Mindestens ein Fehler ist aufgetreten. ---> System.IO.IOException: Von der ?bertragungsverbindung k?nnen keine Daten gelesen werden: Eine vorhandene Verbindung wurde vom Remotehost geschlossen. ---> System.Net.Sockets.SocketException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen
bei System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
bei System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
--- Ende der internen Ausnahmestapel?berwachung ---
bei System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
bei System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
bei System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult)
bei System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization)
--- Ende der internen Ausnahmestapel?berwachung ---

Fleck error:
System.AggregateException: Mindestens ein Fehler ist aufgetreten. ---> System.IO.IOException: Von der ?bertragungsverbindung k?nnen keine Daten gelesen werden: Eine vorhandene Verbindung wurde vom Remotehost geschlossen. ---> System.Net.Sockets.SocketException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen
bei System.Net.Sockets.Socket.BeginReceive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state)
bei System.Net.Sockets.NetworkStream.BeginRead(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
--- Ende der internen Ausnahmestapel?berwachung ---
bei System.Net.Sockets.NetworkStream.BeginRead(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
bei System.Net.FixedSizeReader.StartReading()
bei System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
bei System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
bei System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
bei System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState)
bei Fleck.SocketWrapper.<>c__DisplayClass10_0.b__0(AsyncCallback cb, Object s)
bei System.Threading.Tasks.TaskFactory1.FromAsyncImpl(Func3 beginMethod, Func2 endFunction, Action1 endAction, Object state, TaskCreationOptions creationOptions)
bei Fleck.SocketWrapper.Authenticate(X509Certificate2 certificate, SslProtocols enabledSslProtocols, Action callback, Action1 error) bei Fleck.WebSocketServer.OnClientConnect(ISocket clientSocket) bei Fleck.SocketWrapper.<>c__DisplayClass23_0.<Accept>b__1(Task1 t)
bei System.Threading.Tasks.ContinuationTaskFromResultTask1.InnerInvoke() bei System.Threading.Tasks.Task.Execute() --- Ende der internen Ausnahmestapel?berwachung --- ---> (Interne Ausnahme #0) System.IO.IOException: Von der ?bertragungsverbindung k?nnen keine Daten gelesen werden: Eine vorhandene Verbindung wurde vom Remotehost geschlossen. ---> System.Net.Sockets.SocketException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen bei System.Net.Sockets.Socket.BeginReceive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state) bei System.Net.Sockets.NetworkStream.BeginRead(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state) --- Ende der internen Ausnahmestapel?berwachung --- bei System.Net.Sockets.NetworkStream.BeginRead(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state) bei System.Net.FixedSizeReader.StartReading() bei System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) bei System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) bei System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) bei System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) bei Fleck.SocketWrapper.<>c__DisplayClass10_0.<Authenticate>b__0(AsyncCallback cb, Object s) bei System.Threading.Tasks.TaskFactory1.FromAsyncImpl(Func3 beginMethod, Func2 endFunction, Action1 endAction, Object state, TaskCreationOptions creationOptions) bei Fleck.SocketWrapper.Authenticate(X509Certificate2 certificate, SslProtocols enabledSslProtocols, Action callback, Action1 error)
bei Fleck.WebSocketServer.OnClientConnect(ISocket clientSocket)
bei Fleck.SocketWrapper.<>c__DisplayClass23_0.b__1(Task1 t) bei System.Threading.Tasks.ContinuationTaskFromResultTask1.InnerInvoke()
bei System.Threading.Tasks.Task.Execute()<---

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.