consensus/ethash: use 64bit indexes for the DAG generation (#21793)
* Bit boundary fix for the DAG generation routine * Fix unnecessary conversion warnings Co-authored-by: Sergey Pavlov <spavlov@gmail.com>
This commit is contained in:
		
							parent
							
								
									27d93c1848
								
							
						
					
					
						commit
						d990df909d
					
				| @ -304,16 +304,16 @@ func generateDataset(dest []uint32, epoch uint64, cache []uint32) { | |||||||
| 			keccak512 := makeHasher(sha3.NewLegacyKeccak512()) | 			keccak512 := makeHasher(sha3.NewLegacyKeccak512()) | ||||||
| 
 | 
 | ||||||
| 			// Calculate the data segment this thread should generate
 | 			// Calculate the data segment this thread should generate
 | ||||||
| 			batch := uint32((size + hashBytes*uint64(threads) - 1) / (hashBytes * uint64(threads))) | 			batch := (size + hashBytes*uint64(threads) - 1) / (hashBytes * uint64(threads)) | ||||||
| 			first := uint32(id) * batch | 			first := uint64(id) * batch | ||||||
| 			limit := first + batch | 			limit := first + batch | ||||||
| 			if limit > uint32(size/hashBytes) { | 			if limit > size/hashBytes { | ||||||
| 				limit = uint32(size / hashBytes) | 				limit = size / hashBytes | ||||||
| 			} | 			} | ||||||
| 			// Calculate the dataset segment
 | 			// Calculate the dataset segment
 | ||||||
| 			percent := size / hashBytes / 100 | 			percent := size / hashBytes / 100 | ||||||
| 			for index := first; index < limit; index++ { | 			for index := first; index < limit; index++ { | ||||||
| 				item := generateDatasetItem(cache, index, keccak512) | 				item := generateDatasetItem(cache, uint32(index), keccak512) | ||||||
| 				if swapped { | 				if swapped { | ||||||
| 					swap(item) | 					swap(item) | ||||||
| 				} | 				} | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user