code: func NewPeer(p *p2p.Peer, rw p2p.MsgReadWriter, spec *Spec) *Peer {
  	return &Peer{
  		Peer: p,
  		rw:   rw,
  		spec: spec,
  	}
  }
docs: // NewPeer constructs a new peer
  // this constructor is called by the p2p.Protocol#Run function
  // the first two arguments are the arguments passed to p2p.Protocol.Run function
  // the third argument is the Spec describing the protocol