code: func ConstructCompositeHistoryKey(ns string, key string, blocknum uint64, trannum uint64) []byte {
  
  	var compositeKey []byte
  	compositeKey = append(compositeKey, []byte(ns)...)
  	compositeKey = append(compositeKey, CompositeKeySep...)
  	compositeKey = append(compositeKey, []byte(key)...)
  	compositeKey = append(compositeKey, CompositeKeySep...)
  	compositeKey = append(compositeKey, util.EncodeOrderPreservingVarUint64(blocknum)...)
  	compositeKey = append(compositeKey, util.EncodeOrderPreservingVarUint64(trannum)...)
  
  	return compositeKey
  }
docs: //ConstructCompositeHistoryKey builds the History Key of namespace~key~blocknum~trannum
  // using an order preserving encoding so that history query results are ordered by height