filecoin-project / go-f3

Golang implementation of Fast Finality in Filecoin (F3)
Apache License 2.0
8 stars 6 forks source link

Refactor go-f3 to Separate Simulation Code from GPBFT Library Implementation #155

Open masih opened 5 months ago

masih commented 5 months ago

The go-f3 library is designed to implement the GPBFT algorithm and is currently being prepared for integration with Lotus. Originally developed as a simulator, the library includes a sim package and other related packages used primarily for stress testing the implementation.

The presence of simulation-related packages within the production scope increases the API surface unnecessarily and potentially elevates the risk of errors. This configuration is not ideal for a production environment where a leaner, more secure implementation is preferable.

Proposed Solutions:

Either way, the changes should streamline the library, minimising the exposed API surface and reducing the scope for errors for a smoother integration with Lotus.

anorth commented 5 months ago

I'm not familiar with Go workspaces, but I've heard you talk about them. Can we use them here to keep this code in one repository but separate logical modules? If so, sounds great.