code: func (s *Simulation) NodesItems(key interface{}) (values map[enode.ID]interface{}) {
  	s.mu.RLock()
  	defer s.mu.RUnlock()
  
  	ids := s.NodeIDs()
  	values = make(map[enode.ID]interface{}, len(ids))
  	for _, id := range ids {
  		if _, ok := s.buckets[id]; !ok {
  			continue
  		}
  		if v, ok := s.buckets[id].Load(key); ok {
  			values[id] = v
  		}
  	}
  	return values
  }
docs: // NodesItems returns a map of items from all nodes that are all set under the
  // same BucketKey.