Bitcoin Forum
May 25, 2024, 03:24:31 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: $3,000 Bounty: for C# implementation of Ripple Consensus Algorithm  (Read 1213 times)
mot7 (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 0


View Profile
June 03, 2016, 11:54:25 PM
Last edit: June 04, 2016, 02:37:53 PM by mot7
 #1

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
mot7 (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 0


View Profile
June 04, 2016, 12:10:51 AM
 #2

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)
NyeFe
Hero Member
*****
Offline Offline

Activity: 699
Merit: 500


View Profile
June 04, 2016, 12:26:19 AM
 #3

It seems straight forward enough. C# has lots of TCP/UDP and websocket libraries (I've used some myself). 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.

MicroDApp.com—Smart Contract developers. Lets build a decentralized future!
mot7 (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 0


View Profile
June 04, 2016, 01:58:30 AM
 #4

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
ca333
Hero Member
*****
Offline Offline

Activity: 520
Merit: 522


Developer - EthicHacker - BTC enthusiast


View Profile
June 07, 2016, 12:54:44 PM
 #5

Hello mot7,

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

this space is available (free) for humanitarian nonprofit organizations - please contact me
Ch3wbacca
Full Member
***
Offline Offline

Activity: 125
Merit: 100


View Profile
June 08, 2016, 12:43:27 AM
 #6

Read your reply, and I am interested in the job please check my PM

PM me if you wish for me to advertise you
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!