research-lab/source-code/Simulator
Brandon Goodell 939b597edb
Poisson process on graph for blockchain sims
COMPLETELY untested code. Does the following:

Create a random graph with a specified number of vertices. Vertices are nodes on a cryptocurrency network, edges are their p2p connections. Node additions occur in a nonhomogeneous Poisson process with a (piecewise) constant intensity function. Node deletions occur in a homogeneous Poisson process. Block discovery occurs at each node in a nonhomogeneous Poisson process with a (piecewise) constant intensity function. Blocks, upon discovery, are propagated to neighbors along edges with a random (unique for each edge) delay. Blocks arrive at the end of edges in a deterministic way.

Currently, I'm measuring difficulty in the most simple way: use the MLE estimate for a homogeneous Poisson process's intensity function. 

TODO:
1) Plot block arrivals, true network hash rate, and the difficulty score of some node (or maybe the average difficulty score) over time.
2) Gather statistics on the above.
3) Different difficulty metrics
4) Different birthrate functions
5) Oh, I should compile this at some point? I bet it doesn't even work yet.
2018-01-15 22:21:35 +01:00
..
Simulator.py Poisson process on graph for blockchain sims 2018-01-15 22:21:35 +01:00