amiller / HoneyBadgerBFT

The Honey Badger of BFT Protocols
Other
314 stars 84 forks source link

Segfaults at N>100 #19

Open mark-liu opened 7 years ago

mark-liu commented 7 years ago

When running the following docker run -e N="100" -e t="2" -e B="16" -it honeybadgerbft The program returns a segfault (please see screenshot), systems resources looked okay at the time. Let me know if you want me to run any other tests. Same behaviour at N="200".

screen shot 2017-07-26 at 8 16 28 pm screen shot 2017-07-26 at 7 58 18 pm
mark-liu commented 7 years ago

Update on this one, I suspect the "Segfault" is caused by OOM. I did manage to get a successful run at N=50 with "docker run -e N="100" -e t="2" -e B="16" -it --memory-swap -1 honeybadgerbft", the run took 21 hours.

Can you give any guidance on how much memory is required to run N=200?

amiller commented 7 years ago

Hi Mark, thanks for looking into this and posting it. The simulation that runs from the docker file right now is probably not good for large numbers of nodes, since it's simulating in a single node what would ordinarily run across N nodes. We could do a back of envelope calculation to predict how much memory is required, but it would also depend on the interleaving order. (I'm travelling at the moment, can try to help with this in a few days). In the worst case, i think the asymptotic figure would be O(N^3 log N) if every message sent pertaining to an entire block were buffered in memory for all nodes at once.

sbellem commented 6 years ago

@amiller you can close the issue as it was moved to initc3/HoneyBadgerBFT-Python#31