P2P2 Reviewers Wanted

Dear Community, I have now reached the point where I have implemented everything I wanted to for the first release of p2p2. The package has already withstood its first firetest, running with next to no problems on the testnet for several weeks.

Before we continue integrating this into a factomd release, I would very much appreciate the insight of other developers into this project. Up until now, the work has been mine alone and it is exceptionally difficult for authors to find all of the bugs in their own code.

The package is located at: https://github.com/WhoSoup/factom-p2p

For the eventual release, the entire codebase will be copy-pasted into the factomd/p2p folder, acting as a drop-in replacement, which will make it harder for me to push releases. Right now is the best opportunity to submit issues to this repo directly or message me on discord (Who#3791). PRs are also welcome. You can also reply to this thread.

Things I'm looking for:
* Package structure: Are files / structs / functions named appropriately? Are they easy to find? Do the access points (ie the Network, Configuration, and Parcel structs) make sense, or is there something missing?
* Analaysis: I've written a few blog posts about my motivation for the CAT behavior and the way it works: https://factomize.com/gossip-analysis-and-optimization/ and https://factomize.com/gossip-optimization-part-2-breaking-the-hub/. If you see a flaw in the way this is implemented, or a fundamental flaw in the way this works, please bring it to my attention.
* Readability: Is it possible to understand the package from reading the documentation or does something need to be elaborated more? Are there enough comments and are they useful? Is there code or program flow that is tough to understand?
* Bugs: Anything that doesn't work the way it's supposed to.
* Optimization: Are there any areas that could be improved to make better use of CPU, RAM, or bandwidth?
* Nitpicking: This covers things like variable names, spelling, and other changes that do not affect the code behavior, like Golang or Factom idiosyncracies.
* Features: This version aims to be just enough to work for the purposes of factomd but if you have suggestions, please post them.

If you're interested in testing the code outside of factomd, there is example code available: https://github.com/WhoSoup/factom-test-network. Please note that this repo isn't well documented and only serves as an example for those interested in some hands-on debugging.

There is a branch available for a version of p2p2 integrated into the latest v6.5.1 release: https://github.com/WhoSoup/factomd/tree/factomize-p2p2-february (If there is an official build made for this version, it will be announced in #testnet-chat.) This is newer than the "v6.5.0-p2p2-beta1" docker image that is running on the testnet.
 
Top