I was wondering if collecting some common P2P programming subroutines in a library/framework would be worthwhile? I was looking at Tezos code and I thought we could use something like cryptokit (possible names: p2pkit, ocamlp2p) for writing decentralized software. There is libp2p in Go, I wonder if that’s why Go is popular in crypto. They’re (re)building AvaCoin on Go AFAICT.
Previously, I did something like this as part of parallpairs for abstracting MPI calls, this looks like a similar problem. I could provide some cool authentication and basic crypto too. What functions do you think should be supplied by such a library? Should we just try to reimplement libp2p in ocaml?