Utopian.io is running this task request on behalf of CoinGecko.com
https://github.com/coingecko/cryptoexchange
Cryptoexchange is a rubygem that allows Ruby developers to interact with over 240+ cryptocurrency exchange market data APIs in a single library. This rubygem is used to power CoinGecko. It is open source under the terms of the MIT License.
For the existing HTTP API, this rubygem has established a pretty good abstraction which allows developers to easily contribute new exchanges.
The websocket API feature, however, is a new addition to this rubygem. As such, we are still figuring out the best abstraction/structure.
Below pull request is the initial proof-of-concept for Bitfinex connection. Please use it as general reference in creating the Binance websocket API:
https://github.com/coingecko/cryptoexchange/pull/1008
We are looking for candidate(s) to complete the following tasks:
We have looked into the Binance websocket API documentation.
Here is a code you can use to get started making websocket connection for testing purposes in ruby console.
EM.run do
ws = WebSocket::EventMachine::Client.connect(uri: 'wss://stream.binance.com:9443/ws/bnbbtc@ticker')
ws.onopen do
end
ws.onmessage do |message, _|
begin
message = JSON.parse(message)
puts message
rescue Exception => e
puts e
end
end
ws.onclose do
puts "Close!"
end
end
Binance websocket also allows multiple streams. This allows us to maintain less websocket connections (if possible just one)
EM.run do
ws = WebSocket::EventMachine::Client.connect(uri: 'wss://stream.binance.com:9443/stream?streams=bnbbtc@miniTicker/ethbtc@miniTicker/ethbtc@miniTicker')
ws.onopen do
end
ws.onmessage do |message, _|
begin
message = JSON.parse(message)
puts message
rescue Exception => e
puts e
end
end
ws.onclose do
puts "Close!"
end
end
!miniTicker@arr seems to be an ideal candidate for Ticker data as stated in https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md#all-market-mini-tickers-stream
The following channels on Binance correspond to the data we want to capture:
2 weeks. Set to start upon candidate selection.
Please register your interest at https://discord.gg/pKGV9sp, CoinGecko's official Discord server in the "utopian-io" channel.
You may contact us directly for further information via email at [email protected] or in our Discord developer discussion hub.
Rewards generated by this task request will be sent as liquid STEEM to the task solver once the task is completed, as decided by the project owner.
The task will be considered considered completed after it has been merged by CoinGecko developement team and when the solver published a Utopian post, explaining what they did in order to solve the task.