Update ethash deps (more build fixes, tests)
This commit is contained in:
		
							parent
							
								
									97c37356fd
								
							
						
					
					
						commit
						3593662b0c
					
				
							
								
								
									
										4
									
								
								Godeps/Godeps.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								Godeps/Godeps.json
									
									
									
										generated
									
									
									
								
							| @ -17,8 +17,8 @@ | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/ethereum/ethash", | ||||
| 			"Comment": "v23.1-195-g4d50db9", | ||||
| 			"Rev": "4d50db90d8bb5f2fae357570366cb8c657a4ddfc" | ||||
| 			"Comment": "v23.1-204-g0401fdf", | ||||
| 			"Rev": "0401fdf56a3bc8679f9560e542c3d1cf83020efe" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/howeyc/fsnotify", | ||||
|  | ||||
							
								
								
									
										12
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/ethashc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/ethashc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,5 +1,16 @@ | ||||
| package ethash | ||||
| 
 | ||||
| /* | ||||
|  -mno-stack-arg-probe disables stack probing which avoids the function | ||||
|  __chkstk_ms being linked. this avoids a clash of this symbol as we also | ||||
|  separately link the secp256k1 lib which ends up defining this symbol | ||||
| 
 | ||||
|  1. https://gcc.gnu.org/onlinedocs/gccint/Stack-Checking.html
 | ||||
|  2. https://groups.google.com/forum/#!msg/golang-dev/v1bziURSQ4k/88fXuJ24e-gJ
 | ||||
|  3. https://groups.google.com/forum/#!topic/golang-nuts/VNP6Mwz_B6o
 | ||||
| 
 | ||||
| */ | ||||
| 
 | ||||
| /* | ||||
| #cgo CFLAGS: -std=gnu99 -Wall | ||||
| #cgo windows CFLAGS: -mno-stack-arg-probe | ||||
| @ -10,7 +21,6 @@ package ethash | ||||
| #include "src/libethash/io.c" | ||||
| 
 | ||||
| #ifdef _WIN32 | ||||
| #	include "src/libethash/util_win32.c" | ||||
| #	include "src/libethash/io_win32.c" | ||||
| #	include "src/libethash/mmap_win32.c" | ||||
| #else | ||||
|  | ||||
							
								
								
									
										2
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/src/libethash/internal.c
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/src/libethash/internal.c
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -280,7 +280,7 @@ ethash_h256_t ethash_get_seedhash(uint64_t block_number) | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| int ethash_quick_check_difficulty( | ||||
| bool ethash_quick_check_difficulty( | ||||
| 	ethash_h256_t const* header_hash, | ||||
| 	uint64_t const nonce, | ||||
| 	ethash_h256_t const* mix_hash, | ||||
|  | ||||
							
								
								
									
										6
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/src/libethash/internal.h
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/src/libethash/internal.h
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -47,7 +47,7 @@ static inline void ethash_h256_reset(ethash_h256_t* hash) | ||||
| } | ||||
| 
 | ||||
| // Returns if hash is less than or equal to difficulty
 | ||||
| static inline int ethash_check_difficulty( | ||||
| static inline bool ethash_check_difficulty( | ||||
| 	ethash_h256_t const* hash, | ||||
| 	ethash_h256_t const* difficulty | ||||
| ) | ||||
| @ -59,10 +59,10 @@ static inline int ethash_check_difficulty( | ||||
| 		} | ||||
| 		return ethash_h256_get(hash, i) < ethash_h256_get(difficulty, i); | ||||
| 	} | ||||
| 	return 1; | ||||
| 	return true; | ||||
| } | ||||
| 
 | ||||
| int ethash_quick_check_difficulty( | ||||
| bool ethash_quick_check_difficulty( | ||||
| 	ethash_h256_t const* header_hash, | ||||
| 	uint64_t const nonce, | ||||
| 	ethash_h256_t const* mix_hash, | ||||
|  | ||||
							
								
								
									
										7
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/src/libethash/io.h
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/src/libethash/io.h
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -34,11 +34,12 @@ | ||||
| extern "C" { | ||||
| #endif | ||||
| // Maximum size for mutable part of DAG file name
 | ||||
| // 6 is for "full-R", the suffix of the filename
 | ||||
| // 10 is for maximum number of digits of a uint32_t (for REVISION)
 | ||||
| // 1 is for _ and 16 is for the first 16 hex digits for first 8 bytes of
 | ||||
| // 1 is for - and 16 is for the first 16 hex digits for first 8 bytes of
 | ||||
| // the seedhash and last 1 is for the null terminating character
 | ||||
| // Reference: https://github.com/ethereum/wiki/wiki/Ethash-DAG
 | ||||
| #define DAG_MUTABLE_NAME_MAX_SIZE (10 + 1 + 16 + 1) | ||||
| #define DAG_MUTABLE_NAME_MAX_SIZE (6 + 10 + 1 + 16 + 1) | ||||
| /// Possible return values of @see ethash_io_prepare
 | ||||
| enum ethash_io_rc { | ||||
| 	ETHASH_IO_FAIL = 0,           ///< There has been an IO failure
 | ||||
| @ -176,7 +177,7 @@ static inline bool ethash_io_mutable_name( | ||||
| #if LITTLE_ENDIAN == BYTE_ORDER | ||||
|     hash = ethash_swap_u64(hash); | ||||
| #endif | ||||
|     return snprintf(output, DAG_MUTABLE_NAME_MAX_SIZE, "%u_%016" PRIx64, revision, hash) >= 0; | ||||
|     return snprintf(output, DAG_MUTABLE_NAME_MAX_SIZE, "full-R%u-%016" PRIx64, revision, hash) >= 0; | ||||
| } | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
|  | ||||
							
								
								
									
										2
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/src/libethash/io_win32.c
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/src/libethash/io_win32.c
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -25,7 +25,7 @@ | ||||
| #include <stdio.h> | ||||
| #include <sys/stat.h> | ||||
| #include <sys/types.h> | ||||
| #include <Shlobj.h> | ||||
| #include <shlobj.h> | ||||
| 
 | ||||
| FILE* ethash_fopen(char const* file_name, char const* mode) | ||||
| { | ||||
|  | ||||
							
								
								
									
										8
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/src/libethash/util.h
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/src/libethash/util.h
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -26,11 +26,11 @@ | ||||
| extern "C" { | ||||
| #endif | ||||
| 
 | ||||
| //#ifdef _MSC_VER
 | ||||
| #ifdef _MSC_VER | ||||
| void debugf(char const* str, ...); | ||||
| //#else
 | ||||
| //#define debugf printf
 | ||||
| //#endif
 | ||||
| #else | ||||
| #define debugf printf | ||||
| #endif | ||||
| 
 | ||||
| static inline uint32_t min_u32(uint32_t a, uint32_t b) | ||||
| { | ||||
|  | ||||
							
								
								
									
										45
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/test/c/test.cpp
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								Godeps/_workspace/src/github.com/ethereum/ethash/test/c/test.cpp
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -205,10 +205,10 @@ BOOST_AUTO_TEST_CASE(test_ethash_io_mutable_name) { | ||||
| 	// should have at least 8 bytes provided since this is what we test :)
 | ||||
| 	ethash_h256_t seed1 = ethash_h256_static_init(0, 10, 65, 255, 34, 55, 22, 8); | ||||
| 	ethash_io_mutable_name(1, &seed1, mutable_name); | ||||
| 	BOOST_REQUIRE_EQUAL(0, strcmp(mutable_name, "1_000a41ff22371608")); | ||||
| 	BOOST_REQUIRE_EQUAL(0, strcmp(mutable_name, "full-R1-000a41ff22371608")); | ||||
| 	ethash_h256_t seed2 = ethash_h256_static_init(0, 0, 0, 0, 0, 0, 0, 0); | ||||
| 	ethash_io_mutable_name(44, &seed2, mutable_name); | ||||
| 	BOOST_REQUIRE_EQUAL(0, strcmp(mutable_name, "44_0000000000000000")); | ||||
| 	BOOST_REQUIRE_EQUAL(0, strcmp(mutable_name, "full-R44-0000000000000000")); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(test_ethash_dir_creation) { | ||||
| @ -599,16 +599,49 @@ BOOST_AUTO_TEST_CASE(test_incomplete_dag_file) { | ||||
| 	fs::remove_all("./test_ethash_directory/"); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(test_block_verification) { | ||||
| BOOST_AUTO_TEST_CASE(test_block22_verification) { | ||||
| 	// from POC-9 testnet, epoch 0
 | ||||
| 	ethash_light_t light = ethash_light_new(22); | ||||
| 	ethash_h256_t seedhash = stringToBlockhash("372eca2454ead349c3df0ab5d00b0b706b23e49d469387db91811cee0358fc6d"); | ||||
| 	BOOST_ASSERT(light); | ||||
| 	ethash_return_value_t ret = ethash_light_compute( | ||||
| 		light, | ||||
| 		seedhash, | ||||
| 		0x495732e0ed7a801c | ||||
| 		0x495732e0ed7a801cU | ||||
| 	); | ||||
| 	BOOST_REQUIRE_EQUAL(blockhashToHexString(&ret.result), "00000b184f1fdd88bfd94c86c39e65db0c36144d5e43f745f722196e730cb614"); | ||||
| 	ethash_h256_t difficulty = ethash_h256_static_init(0x2, 0x5, 0x40); | ||||
| 	BOOST_REQUIRE(ethash_check_difficulty(&ret.result, &difficulty)); | ||||
| 	ethash_light_delete(light); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(test_block30001_verification) { | ||||
| 	// from POC-9 testnet, epoch 1
 | ||||
| 	ethash_light_t light = ethash_light_new(30001); | ||||
| 	ethash_h256_t seedhash = stringToBlockhash("7e44356ee3441623bc72a683fd3708fdf75e971bbe294f33e539eedad4b92b34"); | ||||
| 	BOOST_ASSERT(light); | ||||
| 	ethash_return_value_t ret = ethash_light_compute( | ||||
| 		light, | ||||
| 		seedhash, | ||||
| 		0x318df1c8adef7e5eU | ||||
| 	); | ||||
| 	ethash_h256_t difficulty = ethash_h256_static_init(0x17, 0x62, 0xff); | ||||
| 	BOOST_REQUIRE(ethash_check_difficulty(&ret.result, &difficulty)); | ||||
| 	ethash_light_delete(light); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(test_block60000_verification) { | ||||
| 	// from POC-9 testnet, epoch 2
 | ||||
| 	ethash_light_t light = ethash_light_new(60000); | ||||
| 	ethash_h256_t seedhash = stringToBlockhash("5fc898f16035bf5ac9c6d9077ae1e3d5fc1ecc3c9fd5bee8bb00e810fdacbaa0"); | ||||
| 	BOOST_ASSERT(light); | ||||
| 	ethash_return_value_t ret = ethash_light_compute( | ||||
| 		light, | ||||
| 		seedhash, | ||||
| 		0x50377003e5d830caU | ||||
| 	); | ||||
| 	ethash_h256_t difficulty = ethash_h256_static_init(0x25, 0xa6, 0x1e); | ||||
| 	BOOST_REQUIRE(ethash_check_difficulty(&ret.result, &difficulty)); | ||||
| 	ethash_light_delete(light); | ||||
| } | ||||
| 
 | ||||
| @ -617,7 +650,7 @@ BOOST_AUTO_TEST_CASE(test_block_verification) { | ||||
| // Uncomment and run on your own machine if you want to confirm
 | ||||
| // it works fine.
 | ||||
| #if 0 | ||||
| static int lef_cb(unsigned _progress) | ||||
| static int progress_cb(unsigned _progress) | ||||
| { | ||||
| 	printf("CREATING DAG. PROGRESS: %u\n", _progress); | ||||
| 	fflush(stdout); | ||||
| @ -627,7 +660,7 @@ static int lef_cb(unsigned _progress) | ||||
| BOOST_AUTO_TEST_CASE(full_dag_test) { | ||||
| 	ethash_light_t light = ethash_light_new(55); | ||||
| 	BOOST_ASSERT(light); | ||||
| 	ethash_full_t full = ethash_full_new(light, lef_cb); | ||||
| 	ethash_full_t full = ethash_full_new(light, progress_cb); | ||||
| 	BOOST_ASSERT(full); | ||||
| 	ethash_light_delete(light); | ||||
| 	ethash_full_delete(full); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user