Appendix A - External Network Libraries
gorilla
Algorand uses a fork of gorilla websocket
(v1.4.2
), to implement the Relay Network.
Relevant changes:
-
Header size and read limits,
connection.ReadMessage()
is marked as unsafe to avoid explosively compressed messages.
-
Server is
TLSServer
, -
Message compression,
-
Mutexes for multithreading,
-
Connection closing without flushing, and a thread flusher,
-
Tests and benchmark over additions.
Further details refer to the fork.
libp2p
Algorand uses go-libp2p library (building
from the latest
release), to implement the Peer-to-Peer network.
See
libp2p
specifications for detailed documentation on this external package.