Author

Topic: Hiring C++ developer for small Stratum proxy [4 BTC] (Read 2006 times)

sr. member
Activity: 427
Merit: 511
fciacio will PM you Smiley He is a friend of mine, and an excellent programmer Smiley (I'm telling it for him because he's still novice in the forum!)
sr. member
Activity: 322
Merit: 250
Hi,

This offer is no longer available.


I need a C++ student-level developer to create the following starter app for me. It's basically a transparent proxy for Stratum. It's about a days work - pays 4 BTC.

Task:
* Accept stratum request from a user (port 3333)
* Store JSON data into an internal data structure.
* Read that data structure and repeat the request to another server (port 3333)
* Same in reverse.

So in the end you have a stratum-to-stratum "proxy" that you can run on some machine on the network. It's not a particularly useful app by itself, but it is part of a larger app (of which I won't reveal the details). Don't take shortcuts. I know you can do this particular task a lot simpler, but this is not the eventual task. It's just a way to isolate part of the task in an individual testable unit.


Requirements:
1) Must be a Windows console application.
2) Must be a Visual Studio 2012 project (you can download 'Visual Studio 2012 Express' desktop edition if you need a free C++ compiler on Windows).
3) You can use Win32 API's.
4) You must use the Casablanca framework (C++ REST SDK) at least for interpreting JSON. Google "Casablanca C++".
5) You cannot use boost or any other 3rd party libraries (other than Casablanca). Only C++, standard library, Win32, and Casablanca.
6) You cannot slap a GPL or any other license on it. I'll own the code after.
7) Can't obfuscate your code. Must be reasonably readable.
8. Try using as few as possible global variables. 0 is preferred.

Success (how to test):
Point BFGMINER at the proxy. Have the proxy point at Slush or BTCGuild. You must be able to mine for 3 blocks (check blockchain) across the proxy without it falling over. You don't need to wait for solutions, but it must be able to send 3 new blocks down to the client, and have the client send accepted shares back through all 3.

Non-requirements:
1) You don't need configuration or arguments. You can hardcode everything, including IP addresses for slush etc.
2) You don't need to make it multi-threaded or async.

Post on this thread if you are starting with this project so that there aren't multiple people starting off with the same thing.

Jump to: