Bitcoin Forum

Bitcoin => Project Development => Topic started by: mot7 on June 03, 2016, 11:54:25 PM



Title: $3,000 Bounty: for C# implementation of Ripple Consensus Algorithm
Post by: mot7 on June 03, 2016, 11:54:25 PM
Freelancer posting: https://www.freelancer.com/projects/project-10687503/#/details

I need a C# implementation of the Ripple Consensus Algorithm as described below.  In other words I only need a way to build consensus among peers as described in this video:

Consensus Video: https://www.youtube.com/watch?v=pj1QVb1vlC0

What are they making consensus on? For my use case, it's not "ripples", instead, all nodes have to agree that random number X in the range of 1 - 10,000 equals random number Y.

NO Cryptography is needed in this project.  
NO Networking code is needed in this project.  

Instead of networking, the code will spawn a new thread that simulates each node class.
- There will be 100 classes of type node in memory (configurable).  
- As each node starts, the constructor will use a lock to add a reference to itself in the static dictionary
- A random wait time from 1-30 seconds will occur
- Each "node" will locate 5 random other nodes from a C# static dictionary.

At this point we have 100 nodes in RAM that create a mesh network.

The Main program will have a console prompt that asks me to type in a node number (in this case I type in a number from 1 to 100).  
The Main program grabs an object reference from the static dictionary.

Next the console application will ask me what variable "X" is.  I input an integer.  
Next the console application will ask me what variable "Y" is.  I input an integer.  

It's up to you to implement the consensus algorithm in a way the ensures all in-memory nodes get updated.

Part two of this project is to randomly poison the in memory nodes so that they
- Don't replicate the value (ignores it)
- Replicate a wrong value
- Delay the response in a FIFO queue


Docs:         https://ripple.com/knowledge_center/the-ripple-ledger-consensus-process/
WhitePaper:  https://ripple.com/files/ripple_consensus_whitepaper.pdf
Ripple Wiki:   https://wiki.ripple.com/Consensus  
Source: https://github.com/ripple/rippled/tree/develop/src/ripple


Title: Re: $700+ Bounty: for C# implementation of Ripple Consensus Algorithm
Post by: mot7 on June 04, 2016, 12:10:51 AM
It's for several things

- Classroom simulation and learning
- An experimental general ledger I'm experimenting with

I don't envision it being too hard, but I haven't read the original source.

Because this code will be reviewed by PhDs and such, I need it to feel like a professional wrote this code (Unit tests, etc)


Title: Re: $700+ Bounty: for C# implementation of Ripple Consensus Algorithm
Post by: NyeFe on June 04, 2016, 12:26:19 AM
It seems straight forward enough. C# has lots of TCP/UDP (https://gist.github.com/leandrosilva/656054) and websocket libraries (I've used some myself (https://github.com/statianzo/Fleck)). I think you should be able to get it done within 2 days (with the share amount of opensource libraries around). Give it a try.


Title: Re: $700+ Bounty: for C# implementation of Ripple Consensus Algorithm
Post by: mot7 on June 04, 2016, 01:58:30 AM
You're right, I could do it myself, but I have a deadline and need to push other code first. This can be delegated. 

LMK if you know anyone


Title: Re: $3,000 Bounty: for C# implementation of Ripple Consensus Algorithm
Post by: ca333 on June 07, 2016, 12:54:44 PM
Hello mot7,

i am interested in the execution of this job. please check your pm. and check my history for references.


Title: Re: $3,000 Bounty: for C# implementation of Ripple Consensus Algorithm
Post by: Ch3wbacca on June 08, 2016, 12:43:27 AM
Read your reply, and I am interested in the job please check my PM