ethereum / cbc-casper

GNU Affero General Public License v3.0
229 stars 44 forks source link

[WIP] Feat/concurrent #163

Closed naterush closed 6 years ago

naterush commented 6 years ago
naterush commented 6 years ago

This is currently working, and w/ the addition of some tests should be good to merge. There are some future additions to this I'd like to make:

Both the above are obviously very related to each other

naterush commented 6 years ago

Also, currently, I don't have a functional safety oracle (and had a bit of trouble trying to design a reasonable one).

It seems like blocks and outputs are somehow a bit conflated - but maybe I'm wrong here.

naterush commented 6 years ago

@djrtwo thanks for the review. Refactored the functions for selecting unspent outputs and generating new outputs to make them as generic as possible (see concurrent view). Can implement others pretty easily now.

Let me know what you think would be best in regards to command line options for this...

djrtwo commented 6 years ago

Probably just use a --output-selection and have a dict between some string and functions.

Honestly, I just looked at protocol selection in sim/utils.py and thought.. "why do we have a select_network function". Should just be a dict...

djrtwo commented 6 years ago

oh and.. you going to write some tests?

naterush commented 6 years ago

@djrtwo good call on the dict :)

Currently, I can't test as much as I'd like. Until we get more rewrite rules (deterministic ones), it's pretty hard to test anything properly. I'd like to separate this into another PR (as it seems like a long task, and I'd like to get this merged in).

naterush commented 6 years ago

Merging and opening issues for test.