code: func (b *Bzz) Protocols() []p2p.Protocol {
  	protocol := []p2p.Protocol{
  		{
  			Name:     BzzSpec.Name,
  			Version:  BzzSpec.Version,
  			Length:   BzzSpec.Length(),
  			Run:      b.runBzz,
  			NodeInfo: b.NodeInfo,
  		},
  		{
  			Name:     DiscoverySpec.Name,
  			Version:  DiscoverySpec.Version,
  			Length:   DiscoverySpec.Length(),
  			Run:      b.RunProtocol(DiscoverySpec, b.Hive.Run),
  			NodeInfo: b.Hive.NodeInfo,
  			PeerInfo: b.Hive.PeerInfo,
  		},
  	}
  	if b.streamerSpec != nil && b.streamerRun != nil {
  		protocol = append(protocol, p2p.Protocol{
  			Name:    b.streamerSpec.Name,
  			Version: b.streamerSpec.Version,
  			Length:  b.streamerSpec.Length(),
  			Run:     b.RunProtocol(b.streamerSpec, b.streamerRun),
  		})
  	}
  	return protocol
  }
docs: // Protocols return the protocols swarm offers
  // Bzz implements the node.Service interface
  // * handshake/hive
  // * discovery