Looking for a number of experienced Haskell developers interested in continuing the building of a Blockchain.
We have built and tested a custom blockchain, and performed basic simulations using 200 millisecond delays were we had transactions confirm within and excellent time period, we need to expand on the real life simulations and continue the development of the blockchain for the ico.
The blockchain is built on the ( Leader )-free Byzantine Consensus
We Need:
Refactoring of the existing code to make the below points easy to implement
More sophisticated network delays, modelling realistic real-world scenarios with a geographical latency graph
Simulation of some Byzantine behaviour, controllable by a command-line flag;
larger parts of this are likely to be done post-ICO, as there are no bounds to how much testing can be done with this approach, but included are at least
One multiple-votes attempt
One attempt to stall progress by not voting
One double-spend attempt at the ledger level
Full source code documentation
Unit and property testing
Blockchain and ledger
Haskell data types to represent the block chain
Chain validity check implementation (chain hashing)
Data types for transactions (as block contents)
Ledger validity check implementation (signatures and balances)
Simulation performance improvements that allow to simulate shorter network delays with less over-approximation than the current simulator
A Continuous Integration setup, that runs tests and produces benchmark outputs
Instructions to build and run the software reproduce the graphs for users unfamiliar with Haskell
A simulated wallet with command line interface (CLI)
Within the single-machine simulator, a user interface allowing the user to enter transactions such as
“Account A: send 3 coins to account B”
so that the user can explore how coins can be sent around between addresses and how long it takes for these transactions to settle.
Graph deliverables, to be included in the whitepaper.
We want to generate at least the following graphs:
CPS when varying latency (single number)
CPS with world map and reasonable geographical graph latency
CPS with varying latency jitter
TPS with varying block size
Transaction latency when varying latency (single number)
Transaction latency with world map and reasonable geographical graph latency
Transaction latency with varying latency jitter
Transaction latency with varying block size
Code for measuring CPS already exists in our current simulator, but code for measuring TPS and latency needs to be written and is accounted in this task.
Also for launch we need a lite wallet and functioning blockchain for the ICO.
You will need to work remotely as part of a small team and can contribute at least 20 hours per week.
You must have at least 2 years experience in Haskell and have contributed to github or similar. This must be in Haskell so we can review your Haskell contributions. Also you must be ok with using Time doctor tracking software - it takes screen shots of your work as you work. Also DevOps experience is a bonus.