Workers Auto Approve
Disconnect on WebSockets ping
### System Information
- Network (Main net, Ropsten, etc.): Ropsten
- Ethereum client (Geth/Parity) and version: Geth v1.8.17-unstable-bd1f7ebd
- Go version: 1.11
- Host OS: macOS 10
- Commit (INFO line when starting the node): 0fa8c72aaf01717ddd8207b4b72715da09eb14d6
### Environment Variables
### Additional Information
This needs to be tested with a WS server that can send keep-alive or pure WS pings.
ChainLink will disconnect from WS with `Error in new head subscription, disconnected` if it receives a ping over websockets (see full error below). It will attempt to reconnect, but will constantly close the connection. It sends close reason `1006` / "closed abnormally".
To recreate, set up a geth ws proxy and send a WS ping or keep-alive ping. From my experience, the CL node will respond with a pong, but then instantly close the connection.
Full error given when ping is sent:
2018-10-03T09:16:51Z [ERROR] Error in new head subscription, disconnected services/head_tracker.go:186 err=write tcp 172.17.0.3:48322->192.168.65.2:4000: i/o timeout stacktrace=github.com/smartcontractkit/chainlink/logger.Errorw
2018-10-03T09:16:51Z [INFO] Reconnecting to node ws://host.docker.internal:4000/ in 1s services/head_tracker.go:237
2018-10-03T09:16:52Z [ERROR] Error reconnecting to ws://host.docker.internal:4000/ services/head_tracker.go:241 err=write tcp 172.17.0.3:48322->192.168.65.2:4000: i/o timeout stacktrace=github.com/smartcontractkit/chainlink/logger.Errorw
Here's a PoC for the ws proxy in NodeJS: https://gist.github.com/boxhock/c71dcb7f036a3d35dc4adfde05c79e0e
This will fail by default because `keepalive: false` is commented out (timeout is 20s). It will also fail if you uncomment the ping function.
Just for reference, ping and pong will send the `0x9` and `0xA` opcodes.
Setup your profile
Tell us a little about you:
No results found for
Type to search skills..
Required [[totalcharacter]] / 240
Are you currently looking for work?
[[ option.string ]]
Setup your profile
Our tools are based on the principles of earn (💰), learn (📖), and meet (💬).
Select the ones you are interested in. You can change it later in your settings.
I'm also an organization manager looking for a great community.
Enable your organization profile
Gitcoin products can help grow community around your brand. Create your tribe, events, and incentivize your community with bounties. Announce new and upcoming events using townsquare. Find top-quality hackers and fund them to work with you on a grant.
These are the organizations you own. If you don't see your organization here please be sure that information is public on your GitHub profile. Gitcoin will sync this information for you.
Select the products you are interested in:
Out of the box you will receive Tribes Lite for your organization. Please provide us with a contact email: