Giter Site home page Giter Site logo

diff-simulation's Introduction

diff-simulation

clique: simulate diff_inturn and diff_noturn chains, goerli/eips-poa#13

deps

requires ruby 2.6 and the colorize gem: gem install colorize

run 1 simulation

run 1 chain simulation with diff_inturn=2, diff_noturn=1, peer_count=8, and net_fragmentation=0.001

ruby ./diff.rb 2 1 8 0.001 true

the last argument true enables debug logging to display the actual chain simulation:

2019-07-08 18:48:24 [SEAL] Peer 6ab547e6 (head 28f66f626df1) sealed INTURN block 1721, diff 13384, hash d9ba62f783ac, parent 28f66f626df1
2019-07-08 18:48:24 [SEAL] Peer 0d7383f5 (head 28f66f626df1) sealed NOTURN block 1721, diff 13378, hash fb633efb3c11, parent 28f66f626df1
2019-07-08 18:48:24 [SEAL] Peer 2060dac8 (head 28f66f626df1) sealed NOTURN block 1721, diff 13378, hash 8519447fa5f6, parent 28f66f626df1
2019-07-08 18:48:24 [SEAL] Peer b2f2d1f1 (head 28f66f626df1) sealed NOTURN block 1721, diff 13378, hash 393e054b3321, parent 28f66f626df1
2019-07-08 18:48:24 [SEAL] Peer a4f55b9f (head 28f66f626df1) sealed NOTURN block 1721, diff 13378, hash f6ca5ecc2d39, parent 28f66f626df1
2019-07-08 18:48:24 [SEAL] Peer d2038612 (head 28f66f626df1) sealed NOTURN block 1721, diff 13378, hash 88e4964c429b, parent 28f66f626df1
2019-07-08 18:48:24 [SEAL] Peer d1898681 (head 28f66f626df1) sealed NOTURN block 1721, diff 13378, hash 0abc69127835, parent 28f66f626df1
2019-07-08 18:48:24 [SEAL] Peer 6da7ede8 (head 28f66f626df1) sealed NOTURN block 1721, diff 13378, hash 0e999a613c34, parent 28f66f626df1
2019-07-08 18:48:24 [NETW] Peer 2060dac8 (head 8519447fa5f6) reorg to d9ba62f783ac (13384) from peer 6ab547e6
2019-07-08 18:48:24 [NETW] Peer b2f2d1f1 (head 393e054b3321) reorg to d9ba62f783ac (13384) from peer 6ab547e6
2019-07-08 18:48:24 [NETW] Peer a4f55b9f (head f6ca5ecc2d39) reorg to d9ba62f783ac (13384) from peer 6ab547e6
2019-07-08 18:48:24 [NETW] Peer d2038612 (head 88e4964c429b) reorg to d9ba62f783ac (13384) from peer 6ab547e6
2019-07-08 18:48:24 [NETW] Peer d1898681 (head 0abc69127835) reorg to d9ba62f783ac (13384) from peer 6ab547e6
2019-07-08 18:48:24 [NETW] Peer 6da7ede8 (head 0e999a613c34) reorg to d9ba62f783ac (13384) from peer 6ab547e6
2019-07-08 18:48:24 [SEAL] Peer 6ab547e6 (head d9ba62f783ac) sealed NOTURN block 1722, diff 13385, hash a447873ad104, parent d9ba62f783ac
2019-07-08 18:48:24 [SEAL] Peer 0d7383f5 (head fb633efb3c11) sealed INTURN block 1722, diff 13385, hash fca17484e138, parent fb633efb3c11
2019-07-08 18:48:24 [SEAL] Peer 2060dac8 (head d9ba62f783ac) sealed NOTURN block 1722, diff 13385, hash 760bd06dd838, parent d9ba62f783ac
2019-07-08 18:48:24 [SEAL] Peer b2f2d1f1 (head d9ba62f783ac) sealed NOTURN block 1722, diff 13385, hash 629d32cbcabb, parent d9ba62f783ac
2019-07-08 18:48:24 [SEAL] Peer a4f55b9f (head d9ba62f783ac) sealed NOTURN block 1722, diff 13385, hash a18b467ab30c, parent d9ba62f783ac
2019-07-08 18:48:24 [SEAL] Peer d2038612 (head d9ba62f783ac) sealed NOTURN block 1722, diff 13385, hash c501f7718dfc, parent d9ba62f783ac
2019-07-08 18:48:24 [SEAL] Peer d1898681 (head d9ba62f783ac) sealed NOTURN block 1722, diff 13385, hash 107056ab3394, parent d9ba62f783ac
2019-07-08 18:48:24 [SEAL] Peer 6da7ede8 (head d9ba62f783ac) sealed NOTURN block 1722, diff 13385, hash 1202b41b493b, parent d9ba62f783ac
2019-07-08 18:48:24 [SIML] Network is stuck:
2019-07-08 18:48:24 [SIML] Peer 6ab547e6, block 1722, diff 13385, hash a447873ad104, parent d9ba62f783ac
2019-07-08 18:48:24 [SIML] Peer 0d7383f5, block 1722, diff 13385, hash fca17484e138, parent fb633efb3c11
2019-07-08 18:48:24 [SIML] Peer 2060dac8, block 1722, diff 13385, hash 760bd06dd838, parent d9ba62f783ac
2019-07-08 18:48:24 [SIML] Peer b2f2d1f1, block 1722, diff 13385, hash 629d32cbcabb, parent d9ba62f783ac
2019-07-08 18:48:24 [SIML] Peer a4f55b9f, block 1722, diff 13385, hash a18b467ab30c, parent d9ba62f783ac
2019-07-08 18:48:24 [SIML] Peer d2038612, block 1722, diff 13385, hash c501f7718dfc, parent d9ba62f783ac
2019-07-08 18:48:24 [SIML] Peer d1898681, block 1722, diff 13385, hash 107056ab3394, parent d9ba62f783ac
2019-07-08 18:48:24 [SIML] Peer 6da7ede8, block 1722, diff 13385, hash 1202b41b493b, parent d9ba62f783ac
2019-07-08 18:48:24 [SIML] Network is stuck... Exiting.

run monte-carlo simulation

to run a monte-carlo simulation, adapt and use the bash script

./diff.sh

result can be parsed as CSV:

peer_count,diff_inturn,diff_noturn,blocks_chain,blocks_target,net_fragmentation,num_reorgs
8,2,1,2058,1000000,0.001,14398
8,2,1,1457,1000000,0.001,10191
8,2,1,482,1000000,0.001,3366
8,2,1,2609,1000000,0.001,18255
8,2,1,57,1000000,0.001,391
8,2,1,417,1000000,0.001,2911
8,2,1,11322,1000000,0.001,79246
8,2,1,1674,1000000,0.001,11710
8,2,1,697,1000000,0.001,4871
8,2,1,433,1000000,0.001,3023
8,2,1,5281,1000000,0.001,36959
8,2,1,3274,1000000,0.001,22910
8,2,1,16929,1000000,0.001,118494
8,2,1,10074,1000000,0.001,70510
8,2,1,3378,1000000,0.001,23638
8,2,1,3298,1000000,0.001,23078
8,2,1,4898,1000000,0.001,34278
8,2,1,8234,1000000,0.001,57630
8,2,1,810,1000000,0.001,5662
8,2,1,2081,1000000,0.001,14559
8,2,1,4602,1000000,0.001,32206
8,2,1,418,1000000,0.001,2918
8,2,1,425,1000000,0.001,2967
8,2,1,2610,1000000,0.001,18262
8,2,1,2433,1000000,0.001,17023
8,2,1,2058,1000000,0.001,14398
8,2,1,2497,1000000,0.001,17471
8,2,1,6321,1000000,0.001,44239
8,2,1,6057,1000000,0.001,42391
8,2,1,5705,1000000,0.001,39927
8,2,1,5914,1000000,0.001,41390
8,2,1,273,1000000,0.001,1903
8,2,1,842,1000000,0.001,5886
8,2,1,6497,1000000,0.001,45471
8,2,1,5874,1000000,0.001,41110
8,2,1,4313,1000000,0.001,30183
8,2,1,913,1000000,0.001,6383
8,2,1,1721,1000000,0.001,12039
8,2,1,3538,1000000,0.001,24758
8,2,1,4473,1000000,0.001,31303
8,2,1,9817,1000000,0.001,68711
8,2,1,2185,1000000,0.001,15287
8,2,1,1202,1000000,0.001,8406
8,2,1,6993,1000000,0.001,48943
8,2,1,2306,1000000,0.001,16134
8,2,1,12273,1000000,0.001,85903
8,2,1,5762,1000000,0.001,40326
8,2,1,1265,1000000,0.001,8847
8,2,1,34,1000000,0.001,230
8,2,1,2225,1000000,0.001,15567
8,2,1,5729,1000000,0.001,40095
8,2,1,4569,1000000,0.001,31975
8,2,1,1538,1000000,0.001,10758
8,2,1,10,1000000,0.001,62
8,2,1,3225,1000000,0.001,22567
8,2,1,2609,1000000,0.001,18255
8,2,1,2313,1000000,0.001,16183
8,2,1,889,1000000,0.001,6215
8,2,1,5945,1000000,0.001,41607
8,2,1,3009,1000000,0.001,21055
8,2,1,986,1000000,0.001,6894
8,2,1,6329,1000000,0.001,44295
8,2,1,6658,1000000,0.001,46598
8,2,1,7170,1000000,0.001,50182
8,2,1,3506,1000000,0.001,24534
8,2,1,3609,1000000,0.001,25255
8,2,1,6034,1000000,0.001,42230
8,2,1,146,1000000,0.001,1014
8,2,1,4546,1000000,0.001,31814
8,2,1,1305,1000000,0.001,9127
8,2,1,6882,1000000,0.001,48166
8,2,1,3993,1000000,0.001,27943
8,2,1,402,1000000,0.001,2806
8,2,1,6554,1000000,0.001,45870
8,2,1,3090,1000000,0.001,21622
8,2,1,385,1000000,0.001,2687
8,2,1,1650,1000000,0.001,11542
8,2,1,2281,1000000,0.001,15959
8,2,1,1930,1000000,0.001,13502
8,2,1,1177,1000000,0.001,8231
8,2,1,1049,1000000,0.001,7335
8,2,1,6497,1000000,0.001,45471
8,2,1,3673,1000000,0.001,25703
8,2,1,6737,1000000,0.001,47151
8,2,1,281,1000000,0.001,1959
8,2,1,2410,1000000,0.001,16862
8,2,1,1905,1000000,0.001,13327
8,2,1,5514,1000000,0.001,38590
8,2,1,2634,1000000,0.001,18430
8,2,1,401,1000000,0.001,2799
8,2,1,1665,1000000,0.001,11647
8,2,1,6889,1000000,0.001,48215
8,2,1,3218,1000000,0.001,22518
8,2,1,13346,1000000,0.001,93414
8,2,1,6586,1000000,0.001,46094
8,2,1,1754,1000000,0.001,12270
8,2,1,3722,1000000,0.001,26046
8,2,1,3018,1000000,0.001,21118
8,2,1,746,1000000,0.001,5214
8,2,1,6201,1000000,0.001,43399
8,2,1,441,1000000,0.001,3079
8,2,1,4170,1000000,0.001,29182
8,2,1,1458,1000000,0.001,10198
8,2,1,4962,1000000,0.001,34726
8,2,1,274,1000000,0.001,1910
8,2,1,34,1000000,0.001,230
8,2,1,8225,1000000,0.001,57567
8,2,1,12794,1000000,0.001,89550
8,2,1,1745,1000000,0.001,12207
8,2,1,11873,1000000,0.001,83103
8,2,1,2561,1000000,0.001,17919
8,2,1,6834,1000000,0.001,47830
8,2,1,6241,1000000,0.001,43679
8,2,1,1618,1000000,0.001,11318
8,2,1,1890,1000000,0.001,13222
8,2,1,289,1000000,0.001,2015
8,2,1,561,1000000,0.001,3919
8,2,1,7138,1000000,0.001,49958
8,2,1,1097,1000000,0.001,7671
8,2,1,2121,1000000,0.001,14839
8,2,1,1410,1000000,0.001,9862
8,2,1,6658,1000000,0.001,46598
8,2,1,961,1000000,0.001,6719
8,2,1,6881,1000000,0.001,48159
8,2,1,2681,1000000,0.001,18759
8,2,1,6482,1000000,0.001,45366
8,2,1,5361,1000000,0.001,37519
8,2,1,6090,1000000,0.001,42622
8,2,1,5898,1000000,0.001,41278
8,2,1,3289,1000000,0.001,23015
8,2,1,2073,1000000,0.001,14503
8,2,1,5593,1000000,0.001,39143
8,2,1,2321,1000000,0.001,16239
8,2,1,2162,1000000,0.001,15126
8,2,1,14785,1000000,0.001,103487
8,2,1,2585,1000000,0.001,18087
8,2,1,5289,1000000,0.001,37015
8,2,1,3530,1000000,0.001,24702
8,2,1,1058,1000000,0.001,7398
8,2,1,4178,1000000,0.001,29238
8,2,1,3122,1000000,0.001,21846
8,2,1,306,1000000,0.001,2134
8,2,1,7617,1000000,0.001,53311
8,2,1,257,1000000,0.001,1791
8,2,1,577,1000000,0.001,4031
8,2,1,6738,1000000,0.001,47158
8,2,1,7289,1000000,0.001,51015
8,2,1,5370,1000000,0.001,37582
8,2,1,10089,1000000,0.001,70615
8,2,1,6746,1000000,0.001,47214
8,2,1,4106,1000000,0.001,28734
8,2,1,1402,1000000,0.001,9806
8,2,1,945,1000000,0.001,6607
8,2,1,1841,1000000,0.001,12879
8,2,1,1561,1000000,0.001,10919
8,2,1,5857,1000000,0.001,40991
8,2,1,1922,1000000,0.001,13446
8,2,1,1050,1000000,0.001,7342
8,2,1,3722,1000000,0.001,26046
8,2,1,1290,1000000,0.001,9022
8,2,1,1858,1000000,0.001,12998
8,2,1,225,1000000,0.001,1567
8,2,1,313,1000000,0.001,2183
8,2,1,5186,1000000,0.001,36293
8,2,1,4961,1000000,0.001,34719
8,2,1,3313,1000000,0.001,23183
8,2,1,1089,1000000,0.001,7615
8,2,1,8353,1000000,0.001,58463
8,2,1,5898,1000000,0.001,41278
8,2,1,2297,1000000,0.001,16071
8,2,1,3977,1000000,0.001,27831
8,2,1,593,1000000,0.001,4143
8,2,1,4154,1000000,0.001,29070
8,2,1,466,1000000,0.001,3254
8,2,1,450,1000000,0.001,3142
8,2,1,49,1000000,0.001,335
8,2,1,2753,1000000,0.001,19263
8,2,1,4457,1000000,0.001,31191
8,2,1,3402,1000000,0.001,23806
8,2,1,249,1000000,0.001,1735
8,2,1,6665,1000000,0.001,46647
8,2,1,6386,1000000,0.001,44694
8,2,1,10,1000000,0.001,62
8,2,1,1114,1000000,0.001,7790
8,2,1,5465,1000000,0.001,38247
8,2,1,7921,1000000,0.001,55439
8,2,1,1409,1000000,0.001,9855
8,2,1,169,1000000,0.001,1175
8,2,1,7186,1000000,0.001,50294
8,2,1,15250,1000000,0.001,106742
8,2,1,1961,1000000,0.001,13719
8,2,1,817,1000000,0.001,5711
8,2,1,954,1000000,0.001,6670
8,2,1,1369,1000000,0.001,9575
8,2,1,2210,1000000,0.001,15462
8,2,1,922,1000000,0.001,6446
8,2,1,1810,1000000,0.001,12662
8,2,1,2906,1000000,0.001,20334
8,2,1,7929,1000000,0.001,55495
8,2,1,3513,1000000,0.001,24583
8,2,1,1882,1000000,0.001,13166
8,2,1,961,1000000,0.001,6719
8,2,1,4186,1000000,0.001,29294
8,2,1,433,1000000,0.001,3023
8,2,1,1826,1000000,0.001,12774
8,2,1,498,1000000,0.001,3478
8,2,1,2898,1000000,0.001,20278
8,2,1,698,1000000,0.001,4878
8,2,1,10930,1000000,0.001,76502
8,2,1,1922,1000000,0.001,13446
8,2,1,10,1000000,0.001,62
8,2,1,82,1000000,0.001,566
8,2,1,3330,1000000,0.001,23302
8,2,1,682,1000000,0.001,4766
8,2,1,10937,1000000,0.001,76551
8,2,1,2137,1000000,0.001,14951
8,2,1,553,1000000,0.001,3863
8,2,1,145,1000000,0.001,1007
8,2,1,466,1000000,0.001,3254
8,2,1,3345,1000000,0.001,23407
8,2,1,3033,1000000,0.001,21223
8,2,1,7122,1000000,0.001,49846
8,2,1,1153,1000000,0.001,8063
8,2,1,9554,1000000,0.001,66870
8,2,1,873,1000000,0.001,6103
8,2,1,9474,1000000,0.001,66310
8,2,1,5642,1000000,0.001,39486
8,2,1,2401,1000000,0.001,16799
8,2,1,329,1000000,0.001,2295
8,2,1,12298,1000000,0.001,86078
8,2,1,4162,1000000,0.001,29126
8,2,1,626,1000000,0.001,4374
8,2,1,14929,1000000,0.001,104495
8,2,1,146,1000000,0.001,1014
8,2,1,617,1000000,0.001,4311
8,2,1,6337,1000000,0.001,44351
8,2,1,937,1000000,0.001,6551
8,2,1,849,1000000,0.001,5935
8,2,1,1713,1000000,0.001,11983
8,2,1,6850,1000000,0.001,47942
8,2,1,3418,1000000,0.001,23918
8,2,1,3553,1000000,0.001,24863

diff-simulation's People

Contributors

soc1c avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

tkstanczak

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.