What's the best place to start when implementing a peer to peer network in Go? And is there any good features in Go that would make implementing a peer to peer network easier?
Channels make handling asynchronous network events in Go easier than many other languages.
You should start by reading Network programming in Go.
EDIT: New non-dead link provided by @khairi.