├── .gitattributes ├── .gitignore ├── DXEth.sln ├── DXEth ├── App.cpp ├── App.h ├── App.idl ├── App.xaml ├── Assets │ ├── CacheSizes.txt │ ├── DatasetSizes.txt │ ├── LockScreenLogo.scale-200.png │ ├── Seeds.txt │ ├── SplashScreen.scale-200.png │ ├── Square150x150Logo.scale-200.png │ ├── Square44x44Logo.scale-200.png │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ ├── StoreLogo.png │ └── Wide310x150Logo.scale-200.png ├── Constants.cpp ├── Constants.h ├── DXEth.vcxproj ├── DXEth.vcxproj.filters ├── DXMiner.cpp ├── DXMiner.h ├── MainPage.cpp ├── MainPage.h ├── MainPage.idl ├── MainPage.xaml ├── Package.appxmanifest ├── PropertySheet.props ├── Shaders │ ├── ETHash.hlsli │ ├── ETHashGenerateDataset.hlsl │ ├── ETHashMine.hlsl │ └── og_ethashmine.hlsl ├── d3dx12.h ├── ethash │ ├── .bumpversion.cfg │ ├── .clang-format │ ├── .gitignore │ ├── CHANGELOG.md │ ├── CMakeLists.txt │ ├── LICENSE │ ├── MANIFEST.in │ ├── README.md │ ├── appveyor.yml │ ├── bindings │ │ └── python │ │ │ ├── ethash │ │ │ ├── __init__.py │ │ │ └── _build.py │ │ │ └── tests │ │ │ └── test_ethash.py │ ├── build │ │ ├── ALL_BUILD.vcxproj │ │ ├── ALL_BUILD.vcxproj.filters │ │ ├── CMakeCache.txt │ │ ├── CMakeFiles │ │ │ ├── 03fc391b713ae1b22b026f414c902760 │ │ │ │ └── INSTALL_force.rule │ │ │ ├── 0598543623936deb046edd98f9226d9d │ │ │ │ └── INSTALL_force.rule │ │ │ ├── 2e8d84e1202de542d84a8c70c24b96e6 │ │ │ │ └── INSTALL_force.rule │ │ │ ├── 3.20.1 │ │ │ │ ├── CMakeCCompiler.cmake │ │ │ │ ├── CMakeCXXCompiler.cmake │ │ │ │ ├── CMakeDetermineCompilerABI_C.bin │ │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin │ │ │ │ ├── CMakeRCCompiler.cmake │ │ │ │ ├── CMakeSystem.cmake │ │ │ │ ├── CompilerIdC │ │ │ │ │ ├── CMakeCCompilerId.c │ │ │ │ │ ├── CompilerIdC.exe │ │ │ │ │ └── CompilerIdC.vcxproj │ │ │ │ ├── CompilerIdCXX │ │ │ │ │ ├── CMakeCXXCompilerId.cpp │ │ │ │ │ ├── CompilerIdCXX.exe │ │ │ │ │ └── CompilerIdCXX.vcxproj │ │ │ │ ├── VCTargetsPath.txt │ │ │ │ └── VCTargetsPath.vcxproj │ │ │ ├── 35a2cffb18fe8912bfb7b7d5ce2a5431 │ │ │ │ └── INSTALL_force.rule │ │ │ ├── 6cb3451743a2ace288bde77a99c5d7cf │ │ │ │ └── INSTALL_force.rule │ │ │ ├── 7c4d137df3adeef621ff2de446d01488 │ │ │ │ └── INSTALL_force.rule │ │ │ ├── 8022d8d5d1a5c7ffa91531ee4a75a6d4 │ │ │ │ └── INSTALL_force.rule │ │ │ ├── Export │ │ │ │ └── lib │ │ │ │ │ └── cmake │ │ │ │ │ └── ethash │ │ │ │ │ ├── ethashTargets-debug.cmake │ │ │ │ │ ├── ethashTargets-minsizerel.cmake │ │ │ │ │ ├── ethashTargets-release.cmake │ │ │ │ │ ├── ethashTargets-relwithdebinfo.cmake │ │ │ │ │ └── ethashTargets.cmake │ │ │ ├── TargetDirectories.txt │ │ │ ├── af0a436678436f68a7c92d35442a2394 │ │ │ │ └── INSTALL_force.rule │ │ │ ├── c076f99389cb343787ce679eb40887ca │ │ │ │ ├── INSTALL_force.rule │ │ │ │ └── generate.stamp.rule │ │ │ ├── cmake.check_cache │ │ │ ├── e6abc4a5822839d98e555be02d5535d3 │ │ │ │ └── INSTALL_force.rule │ │ │ ├── ec981361859e87f2ec00fa7013cd665f │ │ │ │ └── INSTALL_force.rule │ │ │ ├── generate.stamp │ │ │ ├── generate.stamp.depend │ │ │ └── generate.stamp.list │ │ ├── INSTALL.vcxproj │ │ ├── INSTALL.vcxproj.filters │ │ ├── ZERO_CHECK.vcxproj │ │ ├── ZERO_CHECK.vcxproj.filters │ │ ├── _3rdParty │ │ │ └── Hunter │ │ │ │ ├── config-id │ │ │ │ ├── config.cmake │ │ │ │ └── config.cmake.NOLF │ │ │ │ ├── install-root-dir │ │ │ │ └── toolchain │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── toolchain.info │ │ │ │ └── toolchain.info.NOLF │ │ ├── cmake_install.cmake │ │ ├── ethash.sln │ │ ├── ethashConfig.cmake │ │ ├── ethashConfigVersion.cmake │ │ ├── lib │ │ │ ├── CMakeFiles │ │ │ │ ├── generate.stamp │ │ │ │ └── generate.stamp.depend │ │ │ ├── INSTALL.vcxproj │ │ │ ├── INSTALL.vcxproj.filters │ │ │ ├── cmake_install.cmake │ │ │ ├── ethash │ │ │ │ ├── CMakeFiles │ │ │ │ │ ├── generate.stamp │ │ │ │ │ └── generate.stamp.depend │ │ │ │ ├── Debug │ │ │ │ │ ├── ethash.lib │ │ │ │ │ └── ethash.pri │ │ │ │ ├── INSTALL.vcxproj │ │ │ │ ├── INSTALL.vcxproj.filters │ │ │ │ ├── cmake_install.cmake │ │ │ │ ├── ethash.vcxproj │ │ │ │ └── ethash.vcxproj.filters │ │ │ └── keccak │ │ │ │ ├── CMakeFiles │ │ │ │ ├── generate.stamp │ │ │ │ └── generate.stamp.depend │ │ │ │ ├── Debug │ │ │ │ ├── keccak.lib │ │ │ │ └── keccak.pri │ │ │ │ ├── INSTALL.vcxproj │ │ │ │ ├── INSTALL.vcxproj.filters │ │ │ │ ├── cmake_install.cmake │ │ │ │ ├── keccak.vcxproj │ │ │ │ └── keccak.vcxproj.filters │ │ └── test │ │ │ ├── CMakeFiles │ │ │ ├── generate.stamp │ │ │ └── generate.stamp.depend │ │ │ ├── INSTALL.vcxproj │ │ │ ├── INSTALL.vcxproj.filters │ │ │ ├── benchmarks │ │ │ ├── CMakeFiles │ │ │ │ ├── generate.stamp │ │ │ │ └── generate.stamp.depend │ │ │ ├── INSTALL.vcxproj │ │ │ ├── INSTALL.vcxproj.filters │ │ │ ├── cmake_install.cmake │ │ │ ├── ethash-bench.dir │ │ │ │ ├── Logo.png │ │ │ │ ├── SmallLogo.png │ │ │ │ ├── SmallLogo44x44.png │ │ │ │ ├── SplashScreen.png │ │ │ │ ├── StoreLogo.png │ │ │ │ ├── package.appxManifest │ │ │ │ └── resources.pri │ │ │ ├── ethash-bench.vcxproj │ │ │ └── ethash-bench.vcxproj.filters │ │ │ ├── cmake_install.cmake │ │ │ ├── fakeminer │ │ │ ├── CMakeFiles │ │ │ │ ├── generate.stamp │ │ │ │ └── generate.stamp.depend │ │ │ ├── INSTALL.vcxproj │ │ │ ├── INSTALL.vcxproj.filters │ │ │ ├── cmake_install.cmake │ │ │ ├── ethash-fakeminer.dir │ │ │ │ ├── Logo.png │ │ │ │ ├── SmallLogo.png │ │ │ │ ├── SmallLogo44x44.png │ │ │ │ ├── SplashScreen.png │ │ │ │ ├── StoreLogo.png │ │ │ │ ├── package.appxManifest │ │ │ │ └── resources.pri │ │ │ ├── ethash-fakeminer.vcxproj │ │ │ └── ethash-fakeminer.vcxproj.filters │ │ │ ├── integration │ │ │ ├── CMakeFiles │ │ │ │ ├── generate.stamp │ │ │ │ └── generate.stamp.depend │ │ │ ├── INSTALL.vcxproj │ │ │ ├── INSTALL.vcxproj.filters │ │ │ ├── cmake_install.cmake │ │ │ └── compilation │ │ │ │ ├── CMakeFiles │ │ │ │ ├── generate.stamp │ │ │ │ └── generate.stamp.depend │ │ │ │ ├── INSTALL.vcxproj │ │ │ │ ├── INSTALL.vcxproj.filters │ │ │ │ ├── cmake_install.cmake │ │ │ │ ├── test-compile-c0.vcxproj │ │ │ │ ├── test-compile-c0.vcxproj.filters │ │ │ │ ├── test-compile-c11.vcxproj │ │ │ │ ├── test-compile-c11.vcxproj.filters │ │ │ │ ├── test-compile-c99.vcxproj │ │ │ │ └── test-compile-c99.vcxproj.filters │ │ │ ├── tools │ │ │ ├── CMakeFiles │ │ │ │ ├── generate.stamp │ │ │ │ └── generate.stamp.depend │ │ │ ├── INSTALL.vcxproj │ │ │ ├── INSTALL.vcxproj.filters │ │ │ ├── cmake_install.cmake │ │ │ ├── kiss99-tester.dir │ │ │ │ ├── Logo.png │ │ │ │ ├── SmallLogo.png │ │ │ │ ├── SmallLogo44x44.png │ │ │ │ ├── SplashScreen.png │ │ │ │ ├── StoreLogo.png │ │ │ │ ├── package.appxManifest │ │ │ │ └── resources.pri │ │ │ ├── kiss99-tester.vcxproj │ │ │ └── kiss99-tester.vcxproj.filters │ │ │ └── unittests │ │ │ ├── CMakeFiles │ │ │ ├── generate.stamp │ │ │ └── generate.stamp.depend │ │ │ ├── INSTALL.vcxproj │ │ │ ├── INSTALL.vcxproj.filters │ │ │ ├── cmake_install.cmake │ │ │ ├── ethash-test.dir │ │ │ ├── Logo.png │ │ │ ├── SmallLogo.png │ │ │ ├── SmallLogo44x44.png │ │ │ ├── SplashScreen.png │ │ │ ├── StoreLogo.png │ │ │ ├── package.appxManifest │ │ │ └── resources.pri │ │ │ ├── ethash-test.vcxproj │ │ │ └── ethash-test.vcxproj.filters │ ├── circle.yml │ ├── cmake │ │ ├── Config.cmake.in │ │ └── cable │ │ │ ├── .gitignore │ │ │ ├── CableBuildInfo.cmake │ │ │ ├── CableBuildType.cmake │ │ │ ├── CableCompilerSettings.cmake │ │ │ ├── CablePackage.cmake │ │ │ ├── CableToolchains.cmake │ │ │ ├── HunterGate.cmake │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── bootstrap.cmake │ │ │ ├── buildinfo │ │ │ ├── buildinfo.c.in │ │ │ ├── buildinfo.cmake │ │ │ ├── buildinfo.h.in │ │ │ ├── buildinfo.json.in │ │ │ ├── buildinfo.ps1.in │ │ │ ├── buildinfo.sh.in │ │ │ └── gitinfo.cmake │ │ │ ├── defaults │ │ │ ├── HunterCacheServers-passwords.cmake │ │ │ └── HunterCacheServers.cmake │ │ │ └── toolchains │ │ │ ├── cxx11-32bit.cmake │ │ │ ├── cxx11-c99.cmake │ │ │ ├── cxx11-fpic.cmake │ │ │ ├── cxx11-pic.cmake │ │ │ ├── cxx11.cmake │ │ │ ├── cxx14-32bit.cmake │ │ │ ├── cxx14-pic.cmake │ │ │ ├── cxx14.cmake │ │ │ ├── cxx17-32bit.cmake │ │ │ ├── cxx17-pic.cmake │ │ │ ├── cxx17.cmake │ │ │ ├── default.cmake │ │ │ ├── mips64.cmake │ │ │ └── powerpc64.cmake │ ├── codecov.yml │ ├── ethash_include │ │ └── ethash │ │ │ ├── ethash.h │ │ │ ├── ethash.hpp │ │ │ ├── hash_types.h │ │ │ ├── hash_types.hpp │ │ │ ├── keccak.h │ │ │ ├── keccak.hpp │ │ │ ├── progpow.hpp │ │ │ └── version.h │ ├── include │ │ └── ethash │ │ │ ├── ethash.h │ │ │ ├── ethash.hpp │ │ │ ├── hash_types.h │ │ │ ├── hash_types.hpp │ │ │ ├── keccak.h │ │ │ ├── keccak.hpp │ │ │ ├── progpow.hpp │ │ │ └── version.h │ ├── lib │ │ ├── CMakeLists.txt │ │ ├── ethash │ │ │ ├── CMakeLists.txt │ │ │ ├── bit_manipulation.h │ │ │ ├── builtins.h │ │ │ ├── endianness.hpp │ │ │ ├── ethash-internal.hpp │ │ │ ├── ethash.cpp │ │ │ ├── kiss99.hpp │ │ │ ├── managed.cpp │ │ │ ├── primes.c │ │ │ ├── primes.h │ │ │ └── progpow.cpp │ │ ├── keccak │ │ │ ├── CMakeLists.txt │ │ │ ├── keccak.c │ │ │ └── keccakf800.c │ │ └── support │ │ │ └── attributes.h │ ├── scripts │ │ └── ci │ │ │ └── python_build_wheels.sh │ ├── setup.py │ └── test │ │ ├── CMakeLists.txt │ │ ├── benchmarks │ │ ├── CMakeLists.txt │ │ ├── ethash_benchmarks.cpp │ │ ├── keccak_benchmarks.cpp │ │ ├── keccak_utils.cpp │ │ ├── keccak_utils.hpp │ │ ├── managed_benchmarks.cpp │ │ ├── progpow_benchmarks.cpp │ │ ├── threadsync_benchmarks.cpp │ │ ├── threadsync_utils.cpp │ │ └── threadsync_utils.hpp │ │ ├── fakeminer │ │ ├── CMakeLists.txt │ │ └── fakeminer.cpp │ │ ├── fuzzing │ │ ├── CMakeLists.txt │ │ ├── keccak_fuzzer.cpp │ │ ├── keccak_rhash.c │ │ └── keccak_tiny.c │ │ ├── integration │ │ ├── CMakeLists.txt │ │ ├── cmake-config │ │ │ ├── CMakeLists.txt │ │ │ └── cmake_config_test.cpp │ │ └── compilation │ │ │ ├── CMakeLists.txt │ │ │ └── ethash_header_test.c │ │ ├── tools │ │ ├── CMakeLists.txt │ │ └── kiss99_tester.cpp │ │ └── unittests │ │ ├── CMakeLists.txt │ │ ├── helpers.hpp │ │ ├── progpow_test_vectors.hpp │ │ ├── test_bit_manipulation.cpp │ │ ├── test_cases.hpp │ │ ├── test_ethash.cpp │ │ ├── test_keccak.cpp │ │ ├── test_kiss.cpp │ │ ├── test_managed.cpp │ │ ├── test_primes.cpp │ │ ├── test_progpow.cpp │ │ └── test_version.cpp ├── json.hpp ├── keccak.cpp ├── keccak.h ├── libdevcore │ ├── Common.h │ ├── CommonData.cpp │ ├── CommonData.h │ ├── Exceptions.h │ ├── FixedHash.cpp │ ├── FixedHash.h │ ├── Guards.h │ ├── Log.cpp │ ├── Log.h │ ├── Terminal.h │ ├── Worker.cpp │ ├── Worker.h │ └── vector_ref.h ├── packages.config ├── pch.cpp ├── pch.h └── readme.txt ├── LICENSE ├── README.md └── img ├── ethbox.png └── miner-screenshot.png /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /DXEth.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.31105.61 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DXEth", "DXEth\DXEth.vcxproj", "{F486DDE2-C068-471A-8FF8-313E5DFF09F0}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|ARM = Debug|ARM 11 | Debug|ARM64 = Debug|ARM64 12 | Debug|x64 = Debug|x64 13 | Debug|x86 = Debug|x86 14 | Release|ARM = Release|ARM 15 | Release|ARM64 = Release|ARM64 16 | Release|x64 = Release|x64 17 | Release|x86 = Release|x86 18 | EndGlobalSection 19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 20 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Debug|ARM.ActiveCfg = Debug|ARM 21 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Debug|ARM.Build.0 = Debug|ARM 22 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Debug|ARM.Deploy.0 = Debug|ARM 23 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Debug|ARM64.ActiveCfg = Debug|ARM64 24 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Debug|ARM64.Build.0 = Debug|ARM64 25 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Debug|ARM64.Deploy.0 = Debug|ARM64 26 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Debug|x64.ActiveCfg = Debug|x64 27 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Debug|x64.Build.0 = Debug|x64 28 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Debug|x64.Deploy.0 = Debug|x64 29 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Debug|x86.ActiveCfg = Debug|Win32 30 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Debug|x86.Build.0 = Debug|Win32 31 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Debug|x86.Deploy.0 = Debug|Win32 32 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Release|ARM.ActiveCfg = Release|ARM 33 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Release|ARM.Build.0 = Release|ARM 34 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Release|ARM.Deploy.0 = Release|ARM 35 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Release|ARM64.ActiveCfg = Release|ARM64 36 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Release|ARM64.Build.0 = Release|ARM64 37 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Release|ARM64.Deploy.0 = Release|ARM64 38 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Release|x64.ActiveCfg = Release|x64 39 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Release|x64.Build.0 = Release|x64 40 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Release|x64.Deploy.0 = Release|x64 41 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Release|x86.ActiveCfg = Release|Win32 42 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Release|x86.Build.0 = Release|Win32 43 | {F486DDE2-C068-471A-8FF8-313E5DFF09F0}.Release|x86.Deploy.0 = Release|Win32 44 | EndGlobalSection 45 | GlobalSection(SolutionProperties) = preSolution 46 | HideSolutionNode = FALSE 47 | EndGlobalSection 48 | GlobalSection(ExtensibilityGlobals) = postSolution 49 | SolutionGuid = {FC408E1E-36DE-47F6-911A-AE01D5203A91} 50 | EndGlobalSection 51 | EndGlobal 52 | -------------------------------------------------------------------------------- /DXEth/App.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "App.xaml.g.h" 3 | 4 | namespace winrt::DXEth::implementation 5 | { 6 | struct App : AppT 7 | { 8 | App(); 9 | 10 | void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs const&); 11 | void OnSuspending(IInspectable const&, Windows::ApplicationModel::SuspendingEventArgs const&); 12 | void OnNavigationFailed(IInspectable const&, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs const&); 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /DXEth/App.idl: -------------------------------------------------------------------------------- 1 | namespace DXEth 2 | { 3 | } 4 | -------------------------------------------------------------------------------- /DXEth/App.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | -------------------------------------------------------------------------------- /DXEth/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /DXEth/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /DXEth/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /DXEth/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /DXEth/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /DXEth/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/Assets/StoreLogo.png -------------------------------------------------------------------------------- /DXEth/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /DXEth/Constants.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | 6 | namespace winrt::DXEth { 7 | class Constants 8 | { 9 | public: 10 | Constants(); 11 | size_t GetEpochs(); 12 | size_t GetCacheSize(int epoch); 13 | size_t GetDatasetSize(int epoch); 14 | //std::array GetSeed(int epoch); 15 | dev::h256 GetSeed(int epoch); 16 | int find_epoch_from_seed(std::string); 17 | private: 18 | std::vector m_cacheSizes; 19 | std::vector m_datasetSizes; 20 | //std::vector> m_seeds; 21 | std::vector m_seeds; 22 | 23 | }; 24 | extern Constants constants; 25 | } 26 | -------------------------------------------------------------------------------- /DXEth/MainPage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "MainPage.g.h" 4 | 5 | namespace winrt::DXEth::implementation 6 | { 7 | struct MainPage : MainPageT 8 | { 9 | MainPage(); 10 | 11 | int32_t MyProperty(); 12 | void MyProperty(int32_t value); 13 | winrt::fire_and_forget Button_Click(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args); 14 | void ClickHandler(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args); 15 | void devicesComboBox_SelectionChanged(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::SelectionChangedEventArgs const& e); 16 | }; 17 | } 18 | 19 | namespace winrt::DXEth::factory_implementation 20 | { 21 | struct MainPage : MainPageT 22 | { 23 | }; 24 | } 25 | -------------------------------------------------------------------------------- /DXEth/MainPage.idl: -------------------------------------------------------------------------------- 1 | namespace DXEth 2 | { 3 | [default_interface] 4 | runtimeclass MainPage : Windows.UI.Xaml.Controls.Page 5 | { 6 | MainPage(); 7 | Int32 MyProperty; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /DXEth/MainPage.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /DXEth/Package.appxmanifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | DXEth 10 | yifangu 11 | Assets\StoreLogo.png 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /DXEth/PropertySheet.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /DXEth/Shaders/ETHashGenerateDataset.hlsl: -------------------------------------------------------------------------------- 1 | #include "ETHash.hlsli" 2 | 3 | // The cache. Each entry is 512 bits / 64 bytes 4 | // This should be filled in before kernel execution 5 | // as the cache cannot be computed in parallel 6 | // cache must be at least numCacheElements long 7 | RWStructuredBuffer cache : register(u4); 8 | 9 | // numCacheElements is the _element_ count of the cache. 10 | // aka rows in some documentation 11 | 12 | cbuffer params : register(b0) { 13 | uint numDatasetElements; 14 | uint numCacheElements; 15 | uint datasetGenerationOffset; 16 | }; 17 | 18 | 19 | void cacheLoad(out uint data[16], uint index) { 20 | data = (uint[16])cache[index].data; 21 | } 22 | 23 | [numthreads(NUM_THREADS, 1, 1)] 24 | void main(uint3 tid : SV_DispatchThreadID) { 25 | uint index; 26 | uint i, j, parentIndex; 27 | uint mix[16]; // 512 bits 28 | uint parent[16]; 29 | 30 | index = tid[0] + datasetGenerationOffset; 31 | 32 | if (index >= numDatasetElements) 33 | return; 34 | 35 | // initialize the mix 36 | cacheLoad(mix, index % numCacheElements); 37 | mix[0] ^= index; 38 | 39 | keccak_512_512(mix, mix); 40 | 41 | [loop] 42 | for (i = 0; i < DATASET_PARENTS; i++) { 43 | parentIndex = fnv(index ^ i, mix[i % 16]) % numCacheElements; 44 | // retrieve parent from cache 45 | cacheLoad(parent, parentIndex); 46 | fnvHash(mix, parent); 47 | } 48 | 49 | keccak_512_512(mix, mix); 50 | 51 | // store mix into the desired dataset node 52 | datasetStore(index, mix); 53 | } 54 | 55 | -------------------------------------------------------------------------------- /DXEth/ethash/.bumpversion.cfg: -------------------------------------------------------------------------------- 1 | [bumpversion] 2 | current_version = 0.6.0 3 | tag = True 4 | sign_tags = True 5 | tag_message = ethash {new_version} 6 | commit = True 7 | message = ethash {new_version} 8 | 9 | Bump version: {current_version} → {new_version} 10 | parse = (?P\d+)\.(?P\d+)\.(?P\d+)(-(?Prc|alpha)\.(?P\d+))? 11 | serialize = 12 | {major}.{minor}.{patch}-{prerel}.{prerelver} 13 | {major}.{minor}.{patch} 14 | 15 | [bumpversion:part:prerel] 16 | optional_value = rel 17 | values = 18 | alpha 19 | rc 20 | rel 21 | 22 | [bumpversion:file:CMakeLists.txt] 23 | 24 | [bumpversion:file:include/ethash/version.h] 25 | 26 | [bumpversion:file:setup.py] 27 | -------------------------------------------------------------------------------- /DXEth/ethash/.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | Language: Cpp 3 | BasedOnStyle: Chromium 4 | AccessModifierOffset: -4 5 | AlignAfterOpenBracket: DontAlign 6 | BinPackParameters: true 7 | BraceWrapping: 8 | AfterClass: true 9 | AfterControlStatement: true 10 | AfterEnum: true 11 | AfterFunction: true 12 | AfterNamespace: true 13 | AfterObjCDeclaration: true 14 | AfterStruct: true 15 | AfterUnion: true 16 | BeforeCatch: true 17 | BeforeElse: true 18 | SplitEmptyFunction: false 19 | BreakBeforeBraces: Custom 20 | BreakBeforeTernaryOperators: false 21 | ColumnLimit: 100 22 | ConstructorInitializerIndentWidth: 2 23 | IncludeCategories: 24 | - Regex: '^".*' 25 | Priority: 1 26 | - Regex: '^' 29 | Priority: 2 30 | - Regex: '^<.*' 31 | Priority: 99 32 | - Regex: '.*' 33 | Priority: 4 34 | IncludeIsMainRegex: '(Test)?$' 35 | IndentCaseLabels: false 36 | IndentWidth: 4 37 | MaxEmptyLinesToKeep: 2 38 | PenaltyBreakAssignment: 1 39 | PenaltyBreakComment: 50 40 | TabWidth: 4 41 | ... 42 | -------------------------------------------------------------------------------- /DXEth/ethash/.gitignore: -------------------------------------------------------------------------------- 1 | /cmake-build-* 2 | /.idea 3 | 4 | /dist 5 | /.eggs 6 | /bindings/python/**/*.egg-info 7 | /bindings/python/**/*.pyc 8 | /bindings/python/**/*.so 9 | -------------------------------------------------------------------------------- /DXEth/ethash/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2018-2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | cmake_minimum_required(VERSION 3.13.4) 6 | 7 | include(cmake/cable/bootstrap.cmake) 8 | 9 | include(CableBuildType) 10 | include(CableCompilerSettings) 11 | include(CableToolchains) 12 | include(CMakePackageConfigHelpers) 13 | include(HunterGate) 14 | 15 | include(defaults/HunterCacheServers) 16 | 17 | cable_configure_toolchain(DEFAULT cxx11) 18 | cable_set_build_type(DEFAULT Release CONFIGURATION_TYPES Release RelWithDebInfo Debug) 19 | 20 | if(NOT WIN32) 21 | # Outside of Windows build only Release packages. 22 | set(HUNTER_CONFIGURATION_TYPES Release 23 | CACHE STRING "Build type of the Hunter packages") 24 | endif() 25 | 26 | HunterGate( 27 | URL "https://github.com/cpp-pm/hunter/archive/v0.23.224.tar.gz" 28 | SHA1 "18e57a43efc435f2e1dae1291e82e42afbf940be" 29 | ) 30 | 31 | project(ethash) 32 | set(PROJECT_VERSION 0.6.0) 33 | 34 | cable_configure_compiler(NO_STACK_PROTECTION) 35 | if(CABLE_COMPILER_GNULIKE) 36 | set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Og") 37 | set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Og") 38 | 39 | option(ETHASH_NATIVE "Build for native CPU" OFF) 40 | if(ETHASH_NATIVE) 41 | add_compile_options(-march=native) 42 | endif() 43 | elseif(MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 4) 44 | # For Win32 builds allow allocating more than 2 GB of memory. 45 | set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE") 46 | endif() 47 | 48 | option(ETHASH_INSTALL_CMAKE_CONFIG "Install CMake configuration scripts for find_package(CONFIG)" ON) 49 | 50 | option(ETHASH_FUZZING "Build with fuzzer instrumentation" OFF) 51 | if(ETHASH_FUZZING) 52 | set(CMAKE_EXE_LINKER_FLAGS "-fsanitize=fuzzer-no-link ${CMAKE_EXE_LINKER_FLAGS}") 53 | add_compile_options(-fno-omit-frame-pointer -fsanitize=fuzzer,undefined,integer -fno-sanitize-recover=all) 54 | endif() 55 | 56 | set(include_dir ${PROJECT_SOURCE_DIR}/include) 57 | 58 | add_subdirectory(lib) 59 | 60 | option(ETHASH_BUILD_TESTS "Build unit tests" ON) 61 | if(ETHASH_BUILD_TESTS) 62 | add_subdirectory(test) 63 | endif() 64 | 65 | 66 | install( 67 | DIRECTORY 68 | ${include_dir}/ 69 | DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} 70 | ) 71 | 72 | if(ETHASH_INSTALL_CMAKE_CONFIG) 73 | write_basic_package_version_file(ethashConfigVersion.cmake COMPATIBILITY SameMajorVersion) 74 | configure_package_config_file(cmake/Config.cmake.in ethashConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ethash) 75 | 76 | install( 77 | EXPORT ethashTargets 78 | NAMESPACE ethash:: 79 | DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ethash 80 | ) 81 | install( 82 | FILES 83 | ${CMAKE_CURRENT_BINARY_DIR}/ethashConfig.cmake 84 | ${CMAKE_CURRENT_BINARY_DIR}/ethashConfigVersion.cmake 85 | DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ethash 86 | ) 87 | endif() 88 | -------------------------------------------------------------------------------- /DXEth/ethash/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include CMakeLists.txt 2 | recursive-include cmake * 3 | recursive-include include * 4 | recursive-include lib * 5 | -------------------------------------------------------------------------------- /DXEth/ethash/README.md: -------------------------------------------------------------------------------- 1 | # Ethash 2 | 3 | [![readme style standard](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) 4 | 5 | > C/C++ implementation of Ethash and ProgPoW – the Ethereum Proof of Work algorithms 6 | 7 | 8 | ## Table of Contents 9 | 10 | - [Install](#install) 11 | - [Usage](#usage) 12 | - [Test vectors](#test-vectors) 13 | - [Optimizations](#optimizations) 14 | - [Maintainer](#maintainer) 15 | - [License](#license) 16 | 17 | 18 | ## Install 19 | 20 | Build from source using CMake. 21 | 22 | ```sh 23 | mkdir build 24 | cd build 25 | cmake .. 26 | cmake --build . 27 | ``` 28 | 29 | ## Usage 30 | 31 | See [ethash.hpp] for list of exported function and documentation. 32 | 33 | 34 | ## Test vectors 35 | 36 | - [ProgPoW test vectors](test/unittests/progpow_test_vectors.hpp) 37 | 38 | 39 | ## Optimizations 40 | 41 | This section decscribes the optimizations, modification and tweaks applied 42 | in this library in relation to [Ethash reference implementation]. 43 | 44 | The library contains a set of micro-benchmarks. Build and run `bench` tool. 45 | 46 | ### Seed hash is computed on the fly. 47 | 48 | Seed hash is sequence of keccak256 hashes applied the epoch number of times. 49 | Time needed to compute seed hash is negligible comparing to time needed to build 50 | light cache. Computing seed hash for epoch 10000 takes ~ 5 ms, building light 51 | cache for epoch 1 takes ~ 500 ms. 52 | 53 | ### Dataset size is computed on the fly 54 | 55 | Computing the size of full dataset and light cache requires finding the largest 56 | prime number given an upper bound. For similar reasons as with seed hash, this 57 | is computed on the fly. The procedure used is quite naive and forks well only 58 | up to 40-bit number, so some additional improvement can be done in future. 59 | 60 | 61 | ## Maintainer 62 | 63 | Paweł Bylica [@chfast] 64 | 65 | ## License 66 | 67 | Licensed under the [Apache License, Version 2.0]. 68 | 69 | 70 | [@chfast]: https://github.com/chfast 71 | [Apache License, Version 2.0]: LICENSE 72 | [ethash.hpp]: include/ethash/ethash.hpp 73 | [Ethash reference implementation]: https://github.com/ethereum/wiki/wiki/Ethash 74 | -------------------------------------------------------------------------------- /DXEth/ethash/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: "{build}" 2 | image: Visual Studio 2017 3 | 4 | branches: 5 | only: 6 | - master 7 | - appveyor 8 | - hunter 9 | configuration: 10 | - Release 11 | environment: 12 | ARCH: amd64 13 | TOOLCHAIN: cxx11 14 | HUNTER_CACHE_TOKEN: 15 | secure: agYfiC1OKfHnGOJQolOBorIRovVTgDW3TJ8JOb2+0XZiAnNwbrtPegxaaFM8/VWu 16 | matrix: 17 | - VS: 2019 18 | APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 19 | - VS: 2019 20 | TOOLCHAIN: cxx17 21 | APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 22 | - VS: 2017 23 | PYTHON: true 24 | - VS: 2017 25 | CONFIGURATION: Debug 26 | - VS: 2017 27 | ARCH: x86 28 | 29 | install: 30 | # Set default Python version. 31 | - set PATH=C:\Python37-x64;C:\Python37-x64\Scripts;%PATH% 32 | - pip install requests 33 | 34 | before_build: 35 | - call "%ProgramFiles(x86)%\Microsoft Visual Studio\%VS%\Community\Common7\Tools\vsdevcmd" -arch=%ARCH% 36 | - cmake -S . -B build -G Ninja .. -Wno-dev -DTOOLCHAIN=%TOOLCHAIN% -DCMAKE_INSTALL_PREFIX=./dist -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DHUNTER_CONFIGURATION_TYPES=%CONFIGURATION% 37 | 38 | build_script: 39 | - cmake --build build --target install 40 | - if defined PYTHON bash scripts/ci/python_build_wheels.sh 41 | 42 | test_script: 43 | - if %CONFIGURATION%==Release C:\projects\ethash\build\test\ethash-test.exe 44 | - if defined PYTHON (set ETHASH_PYTHON_SKIP_BUILD=1 && python setup.py test) 45 | 46 | artifacts: 47 | - path: dist 48 | name: dist 49 | -------------------------------------------------------------------------------- /DXEth/ethash/bindings/python/ethash/__init__.py: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | from _ethash import ffi, lib 6 | 7 | 8 | def keccak_256(data): 9 | hash = lib.ethash_keccak256(ffi.from_buffer(data), len(data)) 10 | return ffi.unpack(hash.str, len(hash.str)) 11 | 12 | 13 | def keccak_512(data): 14 | hash = lib.ethash_keccak512(ffi.from_buffer(data), len(data)) 15 | return ffi.unpack(hash.str, len(hash.str)) 16 | 17 | 18 | def hash(epoch_number, header_hash, nonce): 19 | if len(header_hash) != 32: 20 | raise ValueError('header_hash must have length of 32') 21 | 22 | ctx = lib.ethash_get_global_epoch_context(epoch_number) 23 | c_header_hash = ffi.new('union ethash_hash256*') 24 | c_header_hash[0].str = header_hash 25 | result = lib.ethash_hash(ctx, c_header_hash, nonce) 26 | final_hash = ffi.unpack(result.final_hash.str, len(result.final_hash.str)) 27 | mix_hash = ffi.unpack(result.mix_hash.str, len(result.mix_hash.str)) 28 | return final_hash, mix_hash 29 | 30 | 31 | def verify(epoch_number, header_hash, mix_hash, nonce, boundary): 32 | if len(header_hash) != 32: 33 | raise ValueError('header_hash must have length of 32') 34 | if len(mix_hash) != 32: 35 | raise ValueError('mix_hash must have length of 32') 36 | if len(boundary) != 32: 37 | raise ValueError('boundary must have length of 32') 38 | 39 | ctx = lib.ethash_get_global_epoch_context(epoch_number) 40 | c_header_hash = ffi.new('union ethash_hash256*') 41 | c_header_hash[0].str = header_hash 42 | c_mix_hash = ffi.new('union ethash_hash256*') 43 | c_mix_hash[0].str = mix_hash 44 | c_boundary = ffi.new('union ethash_hash256*') 45 | c_boundary[0].str = boundary 46 | 47 | return lib.ethash_verify(ctx, c_header_hash, c_mix_hash, nonce, c_boundary) 48 | -------------------------------------------------------------------------------- /DXEth/ethash/bindings/python/ethash/_build.py: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | # The CFFI build script for ethash library. 6 | # It expects the library is installed in the dist/ directory. 7 | # The installation can be performed by 8 | # 9 | # cmake . -DCMAKE_INSTALL_PREFIX=dist 10 | # make 11 | # make install 12 | 13 | from cffi import FFI 14 | import sys 15 | 16 | ffibuilder = FFI() 17 | 18 | stdlib = [] 19 | if sys.platform == 'linux': 20 | stdlib.append('stdc++') 21 | 22 | ffibuilder.set_source( 23 | "_ethash", 24 | r""" 25 | #include 26 | #include 27 | """, 28 | include_dirs=['include'], 29 | libraries=['ethash', 'keccak'] + stdlib, 30 | ) 31 | 32 | ffibuilder.cdef(""" 33 | 34 | union ethash_hash256 35 | { 36 | ...; 37 | char str[32]; 38 | }; 39 | 40 | union ethash_hash512 41 | { 42 | ...; 43 | char str[64]; 44 | }; 45 | 46 | struct ethash_result 47 | { 48 | union ethash_hash256 final_hash; 49 | union ethash_hash256 mix_hash; 50 | }; 51 | 52 | 53 | union ethash_hash256 ethash_keccak256(const uint8_t* data, size_t size); 54 | 55 | union ethash_hash512 ethash_keccak512(const uint8_t* data, size_t size); 56 | 57 | const struct ethash_epoch_context* ethash_get_global_epoch_context(int epoch_number); 58 | 59 | struct ethash_result ethash_hash(const struct ethash_epoch_context* context, 60 | const union ethash_hash256* header_hash, uint64_t nonce); 61 | 62 | bool ethash_verify(const struct ethash_epoch_context* context, 63 | const union ethash_hash256* header_hash, const union ethash_hash256* mix_hash, uint64_t nonce, 64 | const union ethash_hash256* boundary); 65 | 66 | """) 67 | 68 | if __name__ == "__main__": 69 | ffibuilder.compile(verbose=True) 70 | -------------------------------------------------------------------------------- /DXEth/ethash/bindings/python/tests/test_ethash.py: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | import unittest 6 | 7 | import ethash 8 | 9 | 10 | class TestEthash(unittest.TestCase): 11 | epoch_number = 0 12 | nonce = 0x4242424242424242 13 | header_hash = bytes.fromhex( 14 | '2a8de2adf89af77358250bf908bf04ba94a6e8c3ba87775564a41d269a05e4ce') 15 | mix_hash = bytes.fromhex( 16 | '58f759ede17a706c93f13030328bcea40c1d1341fb26f2facd21ceb0dae57017') 17 | final_hash = bytes.fromhex( 18 | 'dd47fd2d98db51078356852d7c4014e6a5d6c387c35f40e2875b74a256ed7906') 19 | 20 | def test_keccak(self): 21 | h256 = ('c5d2460186f7233c927e7db2dcc703c0' 22 | 'e500b653ca82273b7bfad8045d85a470') 23 | h512 = ('0eab42de4c3ceb9235fc91acffe746b2' 24 | '9c29a8c366b7c60e4e67c466f36a4304' 25 | 'c00fa9caf9d87976ba469bcbe06713b4' 26 | '35f091ef2769fb160cdab33d3670680e') 27 | 28 | self.assertEqual(ethash.keccak_256(b'').hex(), h256) 29 | self.assertEqual(ethash.keccak_512(b'').hex(), h512) 30 | 31 | def test_hash(self): 32 | f, m = ethash.hash(0, self.header_hash, self.nonce) 33 | self.assertEqual(m, self.mix_hash) 34 | self.assertEqual(f, self.final_hash) 35 | 36 | def test_verify(self): 37 | t = ethash.verify(0, self.header_hash, self.mix_hash, self.nonce, 38 | self.final_hash) 39 | self.assertTrue(t) 40 | self.assertEqual(type(t), bool) 41 | 42 | 43 | if __name__ == '__main__': 44 | unittest.main() 45 | -------------------------------------------------------------------------------- /DXEth/ethash/build/ALL_BUILD.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/03fc391b713ae1b22b026f414c902760/INSTALL_force.rule: -------------------------------------------------------------------------------- 1 | # generated from CMake 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/0598543623936deb046edd98f9226d9d/INSTALL_force.rule: -------------------------------------------------------------------------------- 1 | # generated from CMake 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/2e8d84e1202de542d84a8c70c24b96e6/INSTALL_force.rule: -------------------------------------------------------------------------------- 1 | # generated from CMake 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/3.20.1/CMakeCCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_C_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe") 2 | set(CMAKE_C_COMPILER_ARG1 "") 3 | set(CMAKE_C_COMPILER_ID "MSVC") 4 | set(CMAKE_C_COMPILER_VERSION "19.28.29914.0") 5 | set(CMAKE_C_COMPILER_VERSION_INTERNAL "") 6 | set(CMAKE_C_COMPILER_WRAPPER "") 7 | set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "90") 8 | set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_std_99;c_std_11;c_function_prototypes;c_variadic_macros;c_restrict;c_static_assert") 9 | set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") 10 | set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_variadic_macros;c_restrict") 11 | set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") 12 | 13 | set(CMAKE_C_PLATFORM_ID "Windows") 14 | set(CMAKE_C_SIMULATE_ID "") 15 | set(CMAKE_C_COMPILER_FRONTEND_VARIANT "") 16 | set(CMAKE_C_SIMULATE_VERSION "") 17 | set(CMAKE_C_COMPILER_ARCHITECTURE_ID x64) 18 | 19 | set(MSVC_C_ARCHITECTURE_ID x64) 20 | 21 | set(CMAKE_AR "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/lib.exe") 22 | set(CMAKE_C_COMPILER_AR "") 23 | set(CMAKE_RANLIB ":") 24 | set(CMAKE_C_COMPILER_RANLIB "") 25 | set(CMAKE_LINKER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/link.exe") 26 | set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/x64/mt.exe") 27 | set(CMAKE_COMPILER_IS_GNUCC ) 28 | set(CMAKE_C_COMPILER_LOADED 1) 29 | set(CMAKE_C_COMPILER_WORKS TRUE) 30 | set(CMAKE_C_ABI_COMPILED TRUE) 31 | set(CMAKE_COMPILER_IS_MINGW ) 32 | set(CMAKE_COMPILER_IS_CYGWIN ) 33 | if(CMAKE_COMPILER_IS_CYGWIN) 34 | set(CYGWIN 1) 35 | set(UNIX 1) 36 | endif() 37 | 38 | set(CMAKE_C_COMPILER_ENV_VAR "CC") 39 | 40 | if(CMAKE_COMPILER_IS_MINGW) 41 | set(MINGW 1) 42 | endif() 43 | set(CMAKE_C_COMPILER_ID_RUN 1) 44 | set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) 45 | set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) 46 | set(CMAKE_C_LINKER_PREFERENCE 10) 47 | 48 | # Save compiler ABI information. 49 | set(CMAKE_C_SIZEOF_DATA_PTR "8") 50 | set(CMAKE_C_COMPILER_ABI "") 51 | set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") 52 | set(CMAKE_C_LIBRARY_ARCHITECTURE "") 53 | 54 | if(CMAKE_C_SIZEOF_DATA_PTR) 55 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") 56 | endif() 57 | 58 | if(CMAKE_C_COMPILER_ABI) 59 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") 60 | endif() 61 | 62 | if(CMAKE_C_LIBRARY_ARCHITECTURE) 63 | set(CMAKE_LIBRARY_ARCHITECTURE "") 64 | endif() 65 | 66 | set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") 67 | if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) 68 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") 69 | endif() 70 | 71 | 72 | 73 | 74 | 75 | set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "") 76 | set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "") 77 | set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "") 78 | set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 79 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/3.20.1/CMakeDetermineCompilerABI_C.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/CMakeFiles/3.20.1/CMakeDetermineCompilerABI_C.bin -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/3.20.1/CMakeDetermineCompilerABI_CXX.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/CMakeFiles/3.20.1/CMakeDetermineCompilerABI_CXX.bin -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/3.20.1/CMakeRCCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_RC_COMPILER "C:/Program Files (x86)/Windows Kits/10/bin/x64/rc.exe") 2 | set(CMAKE_RC_COMPILER_ARG1 "") 3 | set(CMAKE_RC_COMPILER_LOADED 1) 4 | set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC) 5 | set(CMAKE_RC_OUTPUT_EXTENSION .res) 6 | set(CMAKE_RC_COMPILER_ENV_VAR "RC") 7 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/3.20.1/CMakeSystem.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_HOST_SYSTEM "Windows-10.0.19042") 2 | set(CMAKE_HOST_SYSTEM_NAME "Windows") 3 | set(CMAKE_HOST_SYSTEM_VERSION "10.0.19042") 4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64") 5 | 6 | include("C:/crypto/FINALMINERS/ethash/cmake/cable/toolchains/cxx11.cmake") 7 | 8 | set(CMAKE_SYSTEM "WindowsStore-10.0") 9 | set(CMAKE_SYSTEM_NAME "WindowsStore") 10 | set(CMAKE_SYSTEM_VERSION "10.0") 11 | set(CMAKE_SYSTEM_PROCESSOR "") 12 | 13 | set(CMAKE_CROSSCOMPILING "TRUE") 14 | 15 | set(CMAKE_SYSTEM_LOADED 1) 16 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/3.20.1/CompilerIdC/CompilerIdC.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/CMakeFiles/3.20.1/CompilerIdC/CompilerIdC.exe -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/3.20.1/CompilerIdC/CompilerIdC.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | x64 7 | 8 | 9 | 10 | {CAE07175-D007-4FC3-BFE8-47B392814159} 11 | CompilerIdC 12 | Win32Proj 13 | Windows Store 14 | 10.0 15 | 10.0.19041.0 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | x64 25 | 26 | 27 | Application 28 | v142 29 | MultiByte 30 | 31 | 32 | 33 | 34 | 35 | 36 | <_ProjectFileVersion>10.0.30319.1 37 | .\ 38 | $(Configuration)\ 39 | false 40 | 41 | 42 | 43 | Disabled 44 | %(PreprocessorDefinitions) 45 | false 46 | EnableFastChecks 47 | MultiThreadedDebugDLL 48 | 49 | 50 | TurnOffAllWarnings 51 | 52 | 53 | 54 | 55 | 56 | false 57 | Console 58 | 59 | 60 | 61 | for %%i in (cl.exe) do %40echo CMAKE_C_COMPILER=%%~$PATH:i 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/3.20.1/CompilerIdCXX/CompilerIdCXX.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/CMakeFiles/3.20.1/CompilerIdCXX/CompilerIdCXX.exe -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/3.20.1/VCTargetsPath.txt: -------------------------------------------------------------------------------- 1 | C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Microsoft/VC/v160 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/3.20.1/VCTargetsPath.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | x64 7 | 8 | 9 | 10 | {F3FC6D86-508D-3FB1-96D2-995F08B142EC} 11 | Win32Proj 12 | x64 13 | Windows Store 14 | 10.0 15 | 10.0.19041.0 16 | 17 | 18 | 19 | x64 20 | 21 | 22 | Utility 23 | MultiByte 24 | v142 25 | 26 | 27 | 28 | 29 | echo VCTargetsPath=$(VCTargetsPath) 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/35a2cffb18fe8912bfb7b7d5ce2a5431/INSTALL_force.rule: -------------------------------------------------------------------------------- 1 | # generated from CMake 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/6cb3451743a2ace288bde77a99c5d7cf/INSTALL_force.rule: -------------------------------------------------------------------------------- 1 | # generated from CMake 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/7c4d137df3adeef621ff2de446d01488/INSTALL_force.rule: -------------------------------------------------------------------------------- 1 | # generated from CMake 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/8022d8d5d1a5c7ffa91531ee4a75a6d4/INSTALL_force.rule: -------------------------------------------------------------------------------- 1 | # generated from CMake 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/Export/lib/cmake/ethash/ethashTargets-debug.cmake: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # Generated CMake target import file for configuration "Debug". 3 | #---------------------------------------------------------------- 4 | 5 | # Commands may need to know the format version. 6 | set(CMAKE_IMPORT_FILE_VERSION 1) 7 | 8 | # Import target "ethash::keccak" for configuration "Debug" 9 | set_property(TARGET ethash::keccak APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) 10 | set_target_properties(ethash::keccak PROPERTIES 11 | IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" 12 | IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/keccak.lib" 13 | ) 14 | 15 | list(APPEND _IMPORT_CHECK_TARGETS ethash::keccak ) 16 | list(APPEND _IMPORT_CHECK_FILES_FOR_ethash::keccak "${_IMPORT_PREFIX}/lib/keccak.lib" ) 17 | 18 | # Import target "ethash::ethash" for configuration "Debug" 19 | set_property(TARGET ethash::ethash APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) 20 | set_target_properties(ethash::ethash PROPERTIES 21 | IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C;CXX" 22 | IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/ethash.lib" 23 | ) 24 | 25 | list(APPEND _IMPORT_CHECK_TARGETS ethash::ethash ) 26 | list(APPEND _IMPORT_CHECK_FILES_FOR_ethash::ethash "${_IMPORT_PREFIX}/lib/ethash.lib" ) 27 | 28 | # Commands beyond this point should not need to know the version. 29 | set(CMAKE_IMPORT_FILE_VERSION) 30 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/Export/lib/cmake/ethash/ethashTargets-minsizerel.cmake: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # Generated CMake target import file for configuration "MinSizeRel". 3 | #---------------------------------------------------------------- 4 | 5 | # Commands may need to know the format version. 6 | set(CMAKE_IMPORT_FILE_VERSION 1) 7 | 8 | # Import target "ethash::keccak" for configuration "MinSizeRel" 9 | set_property(TARGET ethash::keccak APPEND PROPERTY IMPORTED_CONFIGURATIONS MINSIZEREL) 10 | set_target_properties(ethash::keccak PROPERTIES 11 | IMPORTED_LINK_INTERFACE_LANGUAGES_MINSIZEREL "C" 12 | IMPORTED_LOCATION_MINSIZEREL "${_IMPORT_PREFIX}/lib/keccak.lib" 13 | ) 14 | 15 | list(APPEND _IMPORT_CHECK_TARGETS ethash::keccak ) 16 | list(APPEND _IMPORT_CHECK_FILES_FOR_ethash::keccak "${_IMPORT_PREFIX}/lib/keccak.lib" ) 17 | 18 | # Import target "ethash::ethash" for configuration "MinSizeRel" 19 | set_property(TARGET ethash::ethash APPEND PROPERTY IMPORTED_CONFIGURATIONS MINSIZEREL) 20 | set_target_properties(ethash::ethash PROPERTIES 21 | IMPORTED_LINK_INTERFACE_LANGUAGES_MINSIZEREL "C;CXX" 22 | IMPORTED_LOCATION_MINSIZEREL "${_IMPORT_PREFIX}/lib/ethash.lib" 23 | ) 24 | 25 | list(APPEND _IMPORT_CHECK_TARGETS ethash::ethash ) 26 | list(APPEND _IMPORT_CHECK_FILES_FOR_ethash::ethash "${_IMPORT_PREFIX}/lib/ethash.lib" ) 27 | 28 | # Commands beyond this point should not need to know the version. 29 | set(CMAKE_IMPORT_FILE_VERSION) 30 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/Export/lib/cmake/ethash/ethashTargets-release.cmake: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # Generated CMake target import file for configuration "Release". 3 | #---------------------------------------------------------------- 4 | 5 | # Commands may need to know the format version. 6 | set(CMAKE_IMPORT_FILE_VERSION 1) 7 | 8 | # Import target "ethash::keccak" for configuration "Release" 9 | set_property(TARGET ethash::keccak APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) 10 | set_target_properties(ethash::keccak PROPERTIES 11 | IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" 12 | IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/keccak.lib" 13 | ) 14 | 15 | list(APPEND _IMPORT_CHECK_TARGETS ethash::keccak ) 16 | list(APPEND _IMPORT_CHECK_FILES_FOR_ethash::keccak "${_IMPORT_PREFIX}/lib/keccak.lib" ) 17 | 18 | # Import target "ethash::ethash" for configuration "Release" 19 | set_property(TARGET ethash::ethash APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) 20 | set_target_properties(ethash::ethash PROPERTIES 21 | IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C;CXX" 22 | IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/ethash.lib" 23 | ) 24 | 25 | list(APPEND _IMPORT_CHECK_TARGETS ethash::ethash ) 26 | list(APPEND _IMPORT_CHECK_FILES_FOR_ethash::ethash "${_IMPORT_PREFIX}/lib/ethash.lib" ) 27 | 28 | # Commands beyond this point should not need to know the version. 29 | set(CMAKE_IMPORT_FILE_VERSION) 30 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/Export/lib/cmake/ethash/ethashTargets-relwithdebinfo.cmake: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # Generated CMake target import file for configuration "RelWithDebInfo". 3 | #---------------------------------------------------------------- 4 | 5 | # Commands may need to know the format version. 6 | set(CMAKE_IMPORT_FILE_VERSION 1) 7 | 8 | # Import target "ethash::keccak" for configuration "RelWithDebInfo" 9 | set_property(TARGET ethash::keccak APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO) 10 | set_target_properties(ethash::keccak PROPERTIES 11 | IMPORTED_LINK_INTERFACE_LANGUAGES_RELWITHDEBINFO "C" 12 | IMPORTED_LOCATION_RELWITHDEBINFO "${_IMPORT_PREFIX}/lib/keccak.lib" 13 | ) 14 | 15 | list(APPEND _IMPORT_CHECK_TARGETS ethash::keccak ) 16 | list(APPEND _IMPORT_CHECK_FILES_FOR_ethash::keccak "${_IMPORT_PREFIX}/lib/keccak.lib" ) 17 | 18 | # Import target "ethash::ethash" for configuration "RelWithDebInfo" 19 | set_property(TARGET ethash::ethash APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO) 20 | set_target_properties(ethash::ethash PROPERTIES 21 | IMPORTED_LINK_INTERFACE_LANGUAGES_RELWITHDEBINFO "C;CXX" 22 | IMPORTED_LOCATION_RELWITHDEBINFO "${_IMPORT_PREFIX}/lib/ethash.lib" 23 | ) 24 | 25 | list(APPEND _IMPORT_CHECK_TARGETS ethash::ethash ) 26 | list(APPEND _IMPORT_CHECK_FILES_FOR_ethash::ethash "${_IMPORT_PREFIX}/lib/ethash.lib" ) 27 | 28 | # Commands beyond this point should not need to know the version. 29 | set(CMAKE_IMPORT_FILE_VERSION) 30 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/TargetDirectories.txt: -------------------------------------------------------------------------------- 1 | C:/crypto/FINALMINERS/ethash/build/CMakeFiles/INSTALL.dir 2 | C:/crypto/FINALMINERS/ethash/build/CMakeFiles/ALL_BUILD.dir 3 | C:/crypto/FINALMINERS/ethash/build/CMakeFiles/ZERO_CHECK.dir 4 | C:/crypto/FINALMINERS/ethash/build/lib/CMakeFiles/INSTALL.dir 5 | C:/crypto/FINALMINERS/ethash/build/lib/keccak/CMakeFiles/keccak.dir 6 | C:/crypto/FINALMINERS/ethash/build/lib/keccak/CMakeFiles/INSTALL.dir 7 | C:/crypto/FINALMINERS/ethash/build/lib/ethash/CMakeFiles/ethash.dir 8 | C:/crypto/FINALMINERS/ethash/build/lib/ethash/CMakeFiles/INSTALL.dir 9 | C:/crypto/FINALMINERS/ethash/build/test/CMakeFiles/INSTALL.dir 10 | C:/crypto/FINALMINERS/ethash/build/test/benchmarks/CMakeFiles/ethash-bench.dir 11 | C:/crypto/FINALMINERS/ethash/build/test/benchmarks/CMakeFiles/INSTALL.dir 12 | C:/crypto/FINALMINERS/ethash/build/test/fakeminer/CMakeFiles/ethash-fakeminer.dir 13 | C:/crypto/FINALMINERS/ethash/build/test/fakeminer/CMakeFiles/INSTALL.dir 14 | C:/crypto/FINALMINERS/ethash/build/test/integration/CMakeFiles/INSTALL.dir 15 | C:/crypto/FINALMINERS/ethash/build/test/integration/compilation/CMakeFiles/test-compile-c11.dir 16 | C:/crypto/FINALMINERS/ethash/build/test/integration/compilation/CMakeFiles/test-compile-c99.dir 17 | C:/crypto/FINALMINERS/ethash/build/test/integration/compilation/CMakeFiles/test-compile-c0.dir 18 | C:/crypto/FINALMINERS/ethash/build/test/integration/compilation/CMakeFiles/INSTALL.dir 19 | C:/crypto/FINALMINERS/ethash/build/test/tools/CMakeFiles/kiss99-tester.dir 20 | C:/crypto/FINALMINERS/ethash/build/test/tools/CMakeFiles/INSTALL.dir 21 | C:/crypto/FINALMINERS/ethash/build/test/unittests/CMakeFiles/ethash-test.dir 22 | C:/crypto/FINALMINERS/ethash/build/test/unittests/CMakeFiles/INSTALL.dir 23 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/af0a436678436f68a7c92d35442a2394/INSTALL_force.rule: -------------------------------------------------------------------------------- 1 | # generated from CMake 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/c076f99389cb343787ce679eb40887ca/INSTALL_force.rule: -------------------------------------------------------------------------------- 1 | # generated from CMake 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/c076f99389cb343787ce679eb40887ca/generate.stamp.rule: -------------------------------------------------------------------------------- 1 | # generated from CMake 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/cmake.check_cache: -------------------------------------------------------------------------------- 1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/e6abc4a5822839d98e555be02d5535d3/INSTALL_force.rule: -------------------------------------------------------------------------------- 1 | # generated from CMake 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/ec981361859e87f2ec00fa7013cd665f/INSTALL_force.rule: -------------------------------------------------------------------------------- 1 | # generated from CMake 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/generate.stamp: -------------------------------------------------------------------------------- 1 | # CMake generation timestamp file for this directory. 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/CMakeFiles/generate.stamp.list: -------------------------------------------------------------------------------- 1 | C:/crypto/FINALMINERS/ethash/build/CMakeFiles/generate.stamp 2 | C:/crypto/FINALMINERS/ethash/build/lib/CMakeFiles/generate.stamp 3 | C:/crypto/FINALMINERS/ethash/build/lib/keccak/CMakeFiles/generate.stamp 4 | C:/crypto/FINALMINERS/ethash/build/lib/ethash/CMakeFiles/generate.stamp 5 | C:/crypto/FINALMINERS/ethash/build/test/CMakeFiles/generate.stamp 6 | C:/crypto/FINALMINERS/ethash/build/test/benchmarks/CMakeFiles/generate.stamp 7 | C:/crypto/FINALMINERS/ethash/build/test/fakeminer/CMakeFiles/generate.stamp 8 | C:/crypto/FINALMINERS/ethash/build/test/integration/CMakeFiles/generate.stamp 9 | C:/crypto/FINALMINERS/ethash/build/test/integration/compilation/CMakeFiles/generate.stamp 10 | C:/crypto/FINALMINERS/ethash/build/test/tools/CMakeFiles/generate.stamp 11 | C:/crypto/FINALMINERS/ethash/build/test/unittests/CMakeFiles/generate.stamp 12 | -------------------------------------------------------------------------------- /DXEth/ethash/build/INSTALL.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | CMake Rules 6 | 7 | 8 | 9 | 10 | {1F9912B7-32DE-3203-A94A-00F3A4C2D37D} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DXEth/ethash/build/ZERO_CHECK.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | CMake Rules 6 | 7 | 8 | 9 | 10 | {1F9912B7-32DE-3203-A94A-00F3A4C2D37D} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DXEth/ethash/build/_3rdParty/Hunter/install-root-dir: -------------------------------------------------------------------------------- 1 | C:/Users/kurtg/.hunter/_Base/18e57a4/c2ce1f0/2e6dac8/Install -------------------------------------------------------------------------------- /DXEth/ethash/build/_3rdParty/Hunter/toolchain/toolchain.info: -------------------------------------------------------------------------------- 1 | Cache version: 6 2 | Polly toolchains: 3 | IPHONEOS_ARCHS: 4 | IPHONESIMULATOR_ARCHS: 5 | Other: 6 | CMAKE_GENERATOR: Visual Studio 16 2019 7 | HUNTER_CONFIGURATION_TYPES: Release;Debug 8 | HUNTER_TOOLCHAIN_UNDETECTABLE_ID: 9 | CMAKE_RELEASE_POSTFIX: 10 | CMAKE_DEBUG_POSTFIX: d 11 | Predefined macroses: 12 | #define _CPPLIB_VER 650 13 | #define _CPPRTTI 1 14 | #define _CPPUNWIND 1 15 | #define _DLL 1 16 | #define _INTEGRAL_MAX_BITS 64 17 | #define _MSC_BUILD 0 18 | #define _MSC_EXTENSIONS 1 19 | #define _MSC_FULL_VER 192829914 20 | #define _MSC_VER 1928 21 | #define _MSVC_LANG 201402L 22 | #define _MT 1 23 | #define _M_AMD64 100 24 | #define _M_FP_PRECISE 1 25 | #define _M_X64 100 26 | #define _NATIVE_WCHAR_T_DEFINED 1 27 | #define _WCHAR_T_DEFINED 1 28 | #define _WIN32 1 29 | #define _WIN32_WINNT 0x0A00 30 | #define _WIN64 1 31 | #define _YVALS 32 | #define __COUNTER__ 0 33 | #define __FUNCDNAME__ __FSTREXP __FUNCDNAME__ 34 | #define __FUNCSIG__ __FSTREXP __FUNCSIG__ 35 | #define __MSVC_RUNTIME_CHECKS 1 36 | #define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16ull 37 | #define __STDCPP_THREADS__ 1 38 | #define __STDC_HOSTED__ 1 39 | #define __cplusplus 199711L 40 | #define __cpp_aggregate_nsdmi 201304L 41 | #define __cpp_alias_templates 200704L 42 | #define __cpp_attributes 200809L 43 | #define __cpp_binary_literals 201304L 44 | #define __cpp_constexpr 201304L 45 | #define __cpp_decltype 200707L 46 | #define __cpp_decltype_auto 201304L 47 | #define __cpp_delegating_constructors 200604L 48 | #define __cpp_exceptions 199711L 49 | #define __cpp_generic_lambdas 201304L 50 | #define __cpp_inheriting_constructors 200802L 51 | #define __cpp_init_captures 201304L 52 | #define __cpp_initializer_lists 200806L 53 | #define __cpp_lambdas 200907L 54 | #define __cpp_nsdmi 200809L 55 | #define __cpp_range_based_for 200907L 56 | #define __cpp_raw_strings 200710L 57 | #define __cpp_ref_qualifiers 200710L 58 | #define __cpp_return_type_deduction 201304L 59 | #define __cpp_rtti 199711L 60 | #define __cpp_sized_deallocation 201309L 61 | #define __cpp_static_assert 200410L 62 | #define __cpp_unicode_characters 200704L 63 | #define __cpp_unicode_literals 200710L 64 | #define __cpp_user_defined_literals 200809L 65 | #define __cpp_variable_templates 201304L 66 | #define __cpp_variadic_templates 200704L 67 | -------------------------------------------------------------------------------- /DXEth/ethash/build/_3rdParty/Hunter/toolchain/toolchain.info.NOLF: -------------------------------------------------------------------------------- 1 | Cache version: 6 2 | Polly toolchains: 3 | IPHONEOS_ARCHS: 4 | IPHONESIMULATOR_ARCHS: 5 | Other: 6 | CMAKE_GENERATOR: Visual Studio 16 2019 7 | HUNTER_CONFIGURATION_TYPES: Release;Debug 8 | HUNTER_TOOLCHAIN_UNDETECTABLE_ID: 9 | CMAKE_RELEASE_POSTFIX: 10 | CMAKE_DEBUG_POSTFIX: d 11 | Predefined macroses: 12 | #define _CPPLIB_VER 650 13 | #define _CPPRTTI 1 14 | #define _CPPUNWIND 1 15 | #define _DLL 1 16 | #define _INTEGRAL_MAX_BITS 64 17 | #define _MSC_BUILD 0 18 | #define _MSC_EXTENSIONS 1 19 | #define _MSC_FULL_VER 192829914 20 | #define _MSC_VER 1928 21 | #define _MSVC_LANG 201402L 22 | #define _MT 1 23 | #define _M_AMD64 100 24 | #define _M_FP_PRECISE 1 25 | #define _M_X64 100 26 | #define _NATIVE_WCHAR_T_DEFINED 1 27 | #define _WCHAR_T_DEFINED 1 28 | #define _WIN32 1 29 | #define _WIN32_WINNT 0x0A00 30 | #define _WIN64 1 31 | #define _YVALS 32 | #define __COUNTER__ 0 33 | #define __FUNCDNAME__ __FSTREXP __FUNCDNAME__ 34 | #define __FUNCSIG__ __FSTREXP __FUNCSIG__ 35 | #define __MSVC_RUNTIME_CHECKS 1 36 | #define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16ull 37 | #define __STDCPP_THREADS__ 1 38 | #define __STDC_HOSTED__ 1 39 | #define __cplusplus 199711L 40 | #define __cpp_aggregate_nsdmi 201304L 41 | #define __cpp_alias_templates 200704L 42 | #define __cpp_attributes 200809L 43 | #define __cpp_binary_literals 201304L 44 | #define __cpp_constexpr 201304L 45 | #define __cpp_decltype 200707L 46 | #define __cpp_decltype_auto 201304L 47 | #define __cpp_delegating_constructors 200604L 48 | #define __cpp_exceptions 199711L 49 | #define __cpp_generic_lambdas 201304L 50 | #define __cpp_inheriting_constructors 200802L 51 | #define __cpp_init_captures 201304L 52 | #define __cpp_initializer_lists 200806L 53 | #define __cpp_lambdas 200907L 54 | #define __cpp_nsdmi 200809L 55 | #define __cpp_range_based_for 200907L 56 | #define __cpp_raw_strings 200710L 57 | #define __cpp_ref_qualifiers 200710L 58 | #define __cpp_return_type_deduction 201304L 59 | #define __cpp_rtti 199711L 60 | #define __cpp_sized_deallocation 201309L 61 | #define __cpp_static_assert 200410L 62 | #define __cpp_unicode_characters 200704L 63 | #define __cpp_unicode_literals 200710L 64 | #define __cpp_user_defined_literals 200809L 65 | #define __cpp_variable_templates 201304L 66 | #define __cpp_variadic_templates 200704L -------------------------------------------------------------------------------- /DXEth/ethash/build/ethashConfig.cmake: -------------------------------------------------------------------------------- 1 | 2 | ####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() ####### 3 | ####### Any changes to this file will be overwritten by the next CMake run #### 4 | ####### The input file was Config.cmake.in ######## 5 | 6 | get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) 7 | 8 | macro(set_and_check _var _file) 9 | set(${_var} "${_file}") 10 | if(NOT EXISTS "${_file}") 11 | message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") 12 | endif() 13 | endmacro() 14 | 15 | macro(check_required_components _NAME) 16 | foreach(comp ${${_NAME}_FIND_COMPONENTS}) 17 | if(NOT ${_NAME}_${comp}_FOUND) 18 | if(${_NAME}_FIND_REQUIRED_${comp}) 19 | set(${_NAME}_FOUND FALSE) 20 | endif() 21 | endif() 22 | endforeach() 23 | endmacro() 24 | 25 | #################################################################################### 26 | 27 | include("${CMAKE_CURRENT_LIST_DIR}/ethashTargets.cmake") 28 | check_required_components(ethash) 29 | -------------------------------------------------------------------------------- /DXEth/ethash/build/ethashConfigVersion.cmake: -------------------------------------------------------------------------------- 1 | # This is a basic version file for the Config-mode of find_package(). 2 | # It is used by write_basic_package_version_file() as input file for configure_file() 3 | # to create a version-file which can be installed along a config.cmake file. 4 | # 5 | # The created file sets PACKAGE_VERSION_EXACT if the current version string and 6 | # the requested version string are exactly the same and it sets 7 | # PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version, 8 | # but only if the requested major version is the same as the current one. 9 | # The variable CVF_VERSION must be set before calling configure_file(). 10 | 11 | 12 | set(PACKAGE_VERSION "0.6.0") 13 | 14 | if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) 15 | set(PACKAGE_VERSION_COMPATIBLE FALSE) 16 | else() 17 | 18 | if("0.6.0" MATCHES "^([0-9]+)\\.") 19 | set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}") 20 | else() 21 | set(CVF_VERSION_MAJOR "0.6.0") 22 | endif() 23 | 24 | if(PACKAGE_FIND_VERSION_RANGE) 25 | # both endpoints of the range must have the expected major version 26 | math (EXPR CVF_VERSION_MAJOR_NEXT "${CVF_VERSION_MAJOR} + 1") 27 | if (NOT PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR 28 | OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX_MAJOR STREQUAL CVF_VERSION_MAJOR) 29 | OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX VERSION_LESS_EQUAL CVF_VERSION_MAJOR_NEXT))) 30 | set(PACKAGE_VERSION_COMPATIBLE FALSE) 31 | elseif(PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR 32 | AND ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS_EQUAL PACKAGE_FIND_VERSION_MAX) 33 | OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MAX))) 34 | set(PACKAGE_VERSION_COMPATIBLE TRUE) 35 | else() 36 | set(PACKAGE_VERSION_COMPATIBLE FALSE) 37 | endif() 38 | else() 39 | if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) 40 | set(PACKAGE_VERSION_COMPATIBLE TRUE) 41 | else() 42 | set(PACKAGE_VERSION_COMPATIBLE FALSE) 43 | endif() 44 | 45 | if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) 46 | set(PACKAGE_VERSION_EXACT TRUE) 47 | endif() 48 | endif() 49 | endif() 50 | 51 | 52 | # if the installed project requested no architecture check, don't perform the check 53 | if("FALSE") 54 | return() 55 | endif() 56 | 57 | # if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: 58 | if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "") 59 | return() 60 | endif() 61 | 62 | # check that the installed version has the same 32/64bit-ness as the one which is currently searching: 63 | if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8") 64 | math(EXPR installedBits "8 * 8") 65 | set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") 66 | set(PACKAGE_VERSION_UNSUITABLE TRUE) 67 | endif() 68 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/CMakeFiles/generate.stamp: -------------------------------------------------------------------------------- 1 | # CMake generation timestamp file for this directory. 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/CMakeFiles/generate.stamp.depend: -------------------------------------------------------------------------------- 1 | # CMake generation dependency list for this directory. 2 | C:/crypto/FINALMINERS/ethash/lib/CMakeLists.txt 3 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/INSTALL.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | CMake Rules 6 | 7 | 8 | 9 | 10 | {1F9912B7-32DE-3203-A94A-00F3A4C2D37D} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: C:/crypto/FINALMINERS/ethash/lib 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/ethash") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "Release") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Is this installation the result of a crosscompile? 31 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 32 | set(CMAKE_CROSSCOMPILING "TRUE") 33 | endif() 34 | 35 | if(NOT CMAKE_INSTALL_LOCAL_ONLY) 36 | # Include the install script for each subdirectory. 37 | include("C:/crypto/FINALMINERS/ethash/build/lib/keccak/cmake_install.cmake") 38 | include("C:/crypto/FINALMINERS/ethash/build/lib/ethash/cmake_install.cmake") 39 | 40 | endif() 41 | 42 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/ethash/CMakeFiles/generate.stamp: -------------------------------------------------------------------------------- 1 | # CMake generation timestamp file for this directory. 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/ethash/CMakeFiles/generate.stamp.depend: -------------------------------------------------------------------------------- 1 | # CMake generation dependency list for this directory. 2 | C:/Program Files/CMake/share/cmake-3.20/Modules/GNUInstallDirs.cmake 3 | C:/crypto/FINALMINERS/ethash/lib/ethash/CMakeLists.txt 4 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/ethash/Debug/ethash.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/lib/ethash/Debug/ethash.lib -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/ethash/Debug/ethash.pri: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/lib/ethash/Debug/ethash.pri -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/ethash/INSTALL.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | CMake Rules 6 | 7 | 8 | 9 | 10 | {1F9912B7-32DE-3203-A94A-00F3A4C2D37D} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/ethash/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: C:/crypto/FINALMINERS/ethash/lib/ethash 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/ethash") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "Release") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Is this installation the result of a crosscompile? 31 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 32 | set(CMAKE_CROSSCOMPILING "TRUE") 33 | endif() 34 | 35 | if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) 36 | if("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Dd][Ee][Bb][Uu][Gg])$") 37 | file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "C:/crypto/FINALMINERS/ethash/build/lib/ethash/Debug/ethash.lib") 38 | elseif("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$") 39 | file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "C:/crypto/FINALMINERS/ethash/build/lib/ethash/Release/ethash.lib") 40 | elseif("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Mm][Ii][Nn][Ss][Ii][Zz][Ee][Rr][Ee][Ll])$") 41 | file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "C:/crypto/FINALMINERS/ethash/build/lib/ethash/MinSizeRel/ethash.lib") 42 | elseif("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$") 43 | file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "C:/crypto/FINALMINERS/ethash/build/lib/ethash/RelWithDebInfo/ethash.lib") 44 | endif() 45 | endif() 46 | 47 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/ethash/ethash.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | Source Files 12 | 13 | 14 | Source Files 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | Header Files 29 | 30 | 31 | Header Files 32 | 33 | 34 | Header Files 35 | 36 | 37 | Header Files 38 | 39 | 40 | Header Files 41 | 42 | 43 | Header Files 44 | 45 | 46 | Header Files 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | {F56953F9-1321-3621-AFE2-833BB20EBA77} 55 | 56 | 57 | {05088D40-B5E8-3B0D-BD94-26A91DF2C166} 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/keccak/CMakeFiles/generate.stamp: -------------------------------------------------------------------------------- 1 | # CMake generation timestamp file for this directory. 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/keccak/CMakeFiles/generate.stamp.depend: -------------------------------------------------------------------------------- 1 | # CMake generation dependency list for this directory. 2 | C:/Program Files/CMake/share/cmake-3.20/Modules/GNUInstallDirs.cmake 3 | C:/crypto/FINALMINERS/ethash/lib/keccak/CMakeLists.txt 4 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/keccak/Debug/keccak.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/lib/keccak/Debug/keccak.lib -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/keccak/Debug/keccak.pri: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/lib/keccak/Debug/keccak.pri -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/keccak/INSTALL.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | CMake Rules 6 | 7 | 8 | 9 | 10 | {1F9912B7-32DE-3203-A94A-00F3A4C2D37D} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/keccak/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: C:/crypto/FINALMINERS/ethash/lib/keccak 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/ethash") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "Release") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Is this installation the result of a crosscompile? 31 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 32 | set(CMAKE_CROSSCOMPILING "TRUE") 33 | endif() 34 | 35 | if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) 36 | if("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Dd][Ee][Bb][Uu][Gg])$") 37 | file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "C:/crypto/FINALMINERS/ethash/build/lib/keccak/Debug/keccak.lib") 38 | elseif("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$") 39 | file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "C:/crypto/FINALMINERS/ethash/build/lib/keccak/Release/keccak.lib") 40 | elseif("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Mm][Ii][Nn][Ss][Ii][Zz][Ee][Rr][Ee][Ll])$") 41 | file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "C:/crypto/FINALMINERS/ethash/build/lib/keccak/MinSizeRel/keccak.lib") 42 | elseif("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$") 43 | file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "C:/crypto/FINALMINERS/ethash/build/lib/keccak/RelWithDebInfo/keccak.lib") 44 | endif() 45 | endif() 46 | 47 | -------------------------------------------------------------------------------- /DXEth/ethash/build/lib/keccak/keccak.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | 12 | 13 | Header Files 14 | 15 | 16 | Header Files 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | {F56953F9-1321-3621-AFE2-833BB20EBA77} 25 | 26 | 27 | {05088D40-B5E8-3B0D-BD94-26A91DF2C166} 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/CMakeFiles/generate.stamp: -------------------------------------------------------------------------------- 1 | # CMake generation timestamp file for this directory. 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/CMakeFiles/generate.stamp.depend: -------------------------------------------------------------------------------- 1 | # CMake generation dependency list for this directory. 2 | C:/crypto/FINALMINERS/ethash/test/CMakeLists.txt 3 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/INSTALL.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | CMake Rules 6 | 7 | 8 | 9 | 10 | {1F9912B7-32DE-3203-A94A-00F3A4C2D37D} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/benchmarks/CMakeFiles/generate.stamp: -------------------------------------------------------------------------------- 1 | # CMake generation timestamp file for this directory. 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/benchmarks/INSTALL.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | CMake Rules 6 | 7 | 8 | 9 | 10 | {1F9912B7-32DE-3203-A94A-00F3A4C2D37D} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/benchmarks/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: C:/crypto/FINALMINERS/ethash/test/benchmarks 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/ethash") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "Release") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Is this installation the result of a crosscompile? 31 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 32 | set(CMAKE_CROSSCOMPILING "TRUE") 33 | endif() 34 | 35 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/benchmarks/ethash-bench.dir/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/benchmarks/ethash-bench.dir/Logo.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/benchmarks/ethash-bench.dir/SmallLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/benchmarks/ethash-bench.dir/SmallLogo.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/benchmarks/ethash-bench.dir/SmallLogo44x44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/benchmarks/ethash-bench.dir/SmallLogo44x44.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/benchmarks/ethash-bench.dir/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/benchmarks/ethash-bench.dir/SplashScreen.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/benchmarks/ethash-bench.dir/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/benchmarks/ethash-bench.dir/StoreLogo.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/benchmarks/ethash-bench.dir/package.appxManifest: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | ethash-bench 11 | CMake 12 | ethash-bench.dir\StoreLogo.png 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/benchmarks/ethash-bench.dir/resources.pri: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/benchmarks/ethash-bench.dir/resources.pri -------------------------------------------------------------------------------- /DXEth/ethash/build/test/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: C:/crypto/FINALMINERS/ethash/test 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/ethash") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "Release") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Is this installation the result of a crosscompile? 31 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 32 | set(CMAKE_CROSSCOMPILING "TRUE") 33 | endif() 34 | 35 | if(NOT CMAKE_INSTALL_LOCAL_ONLY) 36 | # Include the install script for each subdirectory. 37 | include("C:/crypto/FINALMINERS/ethash/build/test/benchmarks/cmake_install.cmake") 38 | include("C:/crypto/FINALMINERS/ethash/build/test/fakeminer/cmake_install.cmake") 39 | include("C:/crypto/FINALMINERS/ethash/build/test/integration/cmake_install.cmake") 40 | include("C:/crypto/FINALMINERS/ethash/build/test/tools/cmake_install.cmake") 41 | include("C:/crypto/FINALMINERS/ethash/build/test/unittests/cmake_install.cmake") 42 | 43 | endif() 44 | 45 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/fakeminer/CMakeFiles/generate.stamp: -------------------------------------------------------------------------------- 1 | # CMake generation timestamp file for this directory. 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/fakeminer/CMakeFiles/generate.stamp.depend: -------------------------------------------------------------------------------- 1 | # CMake generation dependency list for this directory. 2 | C:/Program Files/CMake/share/cmake-3.20/Modules/CheckCSourceCompiles.cmake 3 | C:/Program Files/CMake/share/cmake-3.20/Modules/CheckIncludeFile.c.in 4 | C:/Program Files/CMake/share/cmake-3.20/Modules/CheckIncludeFile.cmake 5 | C:/Program Files/CMake/share/cmake-3.20/Modules/CheckLibraryExists.cmake 6 | C:/Program Files/CMake/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake 7 | C:/Program Files/CMake/share/cmake-3.20/Modules/FindPackageMessage.cmake 8 | C:/Program Files/CMake/share/cmake-3.20/Modules/FindThreads.cmake 9 | C:/Program Files/CMake/share/cmake-3.20/Modules/Internal/CheckSourceCompiles.cmake 10 | C:/crypto/FINALMINERS/ethash/test/fakeminer/CMakeLists.txt 11 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/fakeminer/INSTALL.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | CMake Rules 6 | 7 | 8 | 9 | 10 | {1F9912B7-32DE-3203-A94A-00F3A4C2D37D} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/fakeminer/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: C:/crypto/FINALMINERS/ethash/test/fakeminer 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/ethash") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "Release") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Is this installation the result of a crosscompile? 31 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 32 | set(CMAKE_CROSSCOMPILING "TRUE") 33 | endif() 34 | 35 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/Logo.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/SmallLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/SmallLogo.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/SmallLogo44x44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/SmallLogo44x44.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/SplashScreen.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/StoreLogo.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/package.appxManifest: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | ethash-fakeminer 11 | CMake 12 | ethash-fakeminer.dir\StoreLogo.png 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/resources.pri: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/fakeminer/ethash-fakeminer.dir/resources.pri -------------------------------------------------------------------------------- /DXEth/ethash/build/test/fakeminer/ethash-fakeminer.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | Resource Files 14 | 15 | 16 | Resource Files 17 | 18 | 19 | Resource Files 20 | 21 | 22 | Resource Files 23 | 24 | 25 | Resource Files 26 | 27 | 28 | Resource Files 29 | 30 | 31 | Resource Files 32 | 33 | 34 | 35 | 36 | {05088D40-B5E8-3B0D-BD94-26A91DF2C166} 37 | 38 | 39 | {E36F964C-90D2-3F42-8733-C502F92076BD} 40 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/integration/CMakeFiles/generate.stamp: -------------------------------------------------------------------------------- 1 | # CMake generation timestamp file for this directory. 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/integration/CMakeFiles/generate.stamp.depend: -------------------------------------------------------------------------------- 1 | # CMake generation dependency list for this directory. 2 | C:/crypto/FINALMINERS/ethash/test/integration/CMakeLists.txt 3 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/integration/INSTALL.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | CMake Rules 6 | 7 | 8 | 9 | 10 | {1F9912B7-32DE-3203-A94A-00F3A4C2D37D} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/integration/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: C:/crypto/FINALMINERS/ethash/test/integration 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/ethash") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "Release") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Is this installation the result of a crosscompile? 31 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 32 | set(CMAKE_CROSSCOMPILING "TRUE") 33 | endif() 34 | 35 | if(NOT CMAKE_INSTALL_LOCAL_ONLY) 36 | # Include the install script for each subdirectory. 37 | include("C:/crypto/FINALMINERS/ethash/build/test/integration/compilation/cmake_install.cmake") 38 | 39 | endif() 40 | 41 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/integration/compilation/CMakeFiles/generate.stamp: -------------------------------------------------------------------------------- 1 | # CMake generation timestamp file for this directory. 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/integration/compilation/CMakeFiles/generate.stamp.depend: -------------------------------------------------------------------------------- 1 | # CMake generation dependency list for this directory. 2 | C:/crypto/FINALMINERS/ethash/test/integration/compilation/CMakeLists.txt 3 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/integration/compilation/INSTALL.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | CMake Rules 6 | 7 | 8 | 9 | 10 | {1F9912B7-32DE-3203-A94A-00F3A4C2D37D} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/integration/compilation/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: C:/crypto/FINALMINERS/ethash/test/integration/compilation 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/ethash") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "Release") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Is this installation the result of a crosscompile? 31 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 32 | set(CMAKE_CROSSCOMPILING "TRUE") 33 | endif() 34 | 35 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/integration/compilation/test-compile-c0.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | {05088D40-B5E8-3B0D-BD94-26A91DF2C166} 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/integration/compilation/test-compile-c11.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | {05088D40-B5E8-3B0D-BD94-26A91DF2C166} 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/integration/compilation/test-compile-c99.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | {05088D40-B5E8-3B0D-BD94-26A91DF2C166} 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/tools/CMakeFiles/generate.stamp: -------------------------------------------------------------------------------- 1 | # CMake generation timestamp file for this directory. 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/tools/CMakeFiles/generate.stamp.depend: -------------------------------------------------------------------------------- 1 | # CMake generation dependency list for this directory. 2 | C:/crypto/FINALMINERS/ethash/test/tools/CMakeLists.txt 3 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/tools/INSTALL.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | CMake Rules 6 | 7 | 8 | 9 | 10 | {1F9912B7-32DE-3203-A94A-00F3A4C2D37D} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/tools/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: C:/crypto/FINALMINERS/ethash/test/tools 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/ethash") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "Release") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Is this installation the result of a crosscompile? 31 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 32 | set(CMAKE_CROSSCOMPILING "TRUE") 33 | endif() 34 | 35 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/tools/kiss99-tester.dir/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/tools/kiss99-tester.dir/Logo.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/tools/kiss99-tester.dir/SmallLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/tools/kiss99-tester.dir/SmallLogo.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/tools/kiss99-tester.dir/SmallLogo44x44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/tools/kiss99-tester.dir/SmallLogo44x44.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/tools/kiss99-tester.dir/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/tools/kiss99-tester.dir/SplashScreen.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/tools/kiss99-tester.dir/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/tools/kiss99-tester.dir/StoreLogo.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/tools/kiss99-tester.dir/package.appxManifest: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | kiss99-tester 11 | CMake 12 | kiss99-tester.dir\StoreLogo.png 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/tools/kiss99-tester.dir/resources.pri: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/tools/kiss99-tester.dir/resources.pri -------------------------------------------------------------------------------- /DXEth/ethash/build/test/tools/kiss99-tester.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | Resource Files 14 | 15 | 16 | Resource Files 17 | 18 | 19 | Resource Files 20 | 21 | 22 | Resource Files 23 | 24 | 25 | Resource Files 26 | 27 | 28 | Resource Files 29 | 30 | 31 | Resource Files 32 | 33 | 34 | 35 | 36 | {05088D40-B5E8-3B0D-BD94-26A91DF2C166} 37 | 38 | 39 | {E36F964C-90D2-3F42-8733-C502F92076BD} 40 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/unittests/CMakeFiles/generate.stamp: -------------------------------------------------------------------------------- 1 | # CMake generation timestamp file for this directory. 2 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/unittests/INSTALL.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | CMake Rules 6 | 7 | 8 | 9 | 10 | {1F9912B7-32DE-3203-A94A-00F3A4C2D37D} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/unittests/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: C:/crypto/FINALMINERS/ethash/test/unittests 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/ethash") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "Release") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Is this installation the result of a crosscompile? 31 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 32 | set(CMAKE_CROSSCOMPILING "TRUE") 33 | endif() 34 | 35 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/unittests/ethash-test.dir/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/unittests/ethash-test.dir/Logo.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/unittests/ethash-test.dir/SmallLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/unittests/ethash-test.dir/SmallLogo.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/unittests/ethash-test.dir/SmallLogo44x44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/unittests/ethash-test.dir/SmallLogo44x44.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/unittests/ethash-test.dir/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/unittests/ethash-test.dir/SplashScreen.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/unittests/ethash-test.dir/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/unittests/ethash-test.dir/StoreLogo.png -------------------------------------------------------------------------------- /DXEth/ethash/build/test/unittests/ethash-test.dir/package.appxManifest: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | ethash-test 11 | CMake 12 | ethash-test.dir\StoreLogo.png 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /DXEth/ethash/build/test/unittests/ethash-test.dir/resources.pri: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/DXEth/ethash/build/test/unittests/ethash-test.dir/resources.pri -------------------------------------------------------------------------------- /DXEth/ethash/cmake/Config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | include("${CMAKE_CURRENT_LIST_DIR}/ethashTargets.cmake") 4 | check_required_components(ethash) 5 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/CableBuildType.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | 5 | if(cable_build_type_included) 6 | return() 7 | endif() 8 | set(cable_build_type_included TRUE) 9 | 10 | macro(cable_set_build_type) 11 | if(NOT PROJECT_IS_NESTED) 12 | # Do this configuration only in the top project. 13 | if(PROJECT_SOURCE_DIR) 14 | message(FATAL_ERROR "cable_set_build_type() can be used before project()") 15 | endif() 16 | 17 | cmake_parse_arguments(build_type "" DEFAULT CONFIGURATION_TYPES ${ARGN}) 18 | 19 | if(CMAKE_CONFIGURATION_TYPES) 20 | if(build_type_CONFIGURATION_TYPES) 21 | set( 22 | CMAKE_CONFIGURATION_TYPES 23 | ${build_type_CONFIGURATION_TYPES} 24 | CACHE 25 | STRING 26 | "Available configurations for multi-configuration generators" 27 | FORCE 28 | ) 29 | endif() 30 | cable_log("Configurations: ${CMAKE_CONFIGURATION_TYPES}") 31 | else() 32 | if(build_type_DEFAULT AND NOT CMAKE_BUILD_TYPE) 33 | set( 34 | CMAKE_BUILD_TYPE 35 | ${build_type_DEFAULT} 36 | CACHE STRING 37 | "Build type for single-configuration generators" 38 | FORCE 39 | ) 40 | endif() 41 | cable_log("Build type: ${CMAKE_BUILD_TYPE}") 42 | endif() 43 | endif() 44 | endmacro() 45 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/CablePackage.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | 5 | if(cable_package_included) 6 | return() 7 | endif() 8 | set(cable_package_included TRUE) 9 | 10 | # Configures CPack to build the archive package. 11 | macro(cable_add_archive_package) 12 | if(WIN32) 13 | set(CPACK_GENERATOR ZIP) 14 | else() 15 | set(CPACK_GENERATOR TGZ) 16 | endif() 17 | string(TOLOWER ${CMAKE_SYSTEM_NAME} system_name) 18 | string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} system_processor) 19 | set(CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME}-${PROJECT_VERSION}-${system_name}-${system_processor}) 20 | set(CPACK_PACKAGE_CHECKSUM SHA256) 21 | set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY FALSE) 22 | unset(system_name) 23 | unset(system_processor) 24 | include(CPack) 25 | endmacro() 26 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/CableToolchains.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | 5 | set(cable_toolchain_dir ${CMAKE_CURRENT_LIST_DIR}/toolchains) 6 | 7 | function(cable_configure_toolchain) 8 | if(NOT PROJECT_IS_NESTED) 9 | # Do this configuration only in the top project. 10 | 11 | cmake_parse_arguments("" "" "DEFAULT" "" ${ARGN}) 12 | 13 | set(default_toolchain default) 14 | if(_DEFAULT) 15 | set(default_toolchain ${_DEFAULT}) 16 | endif() 17 | 18 | set(TOOLCHAIN ${default_toolchain} CACHE STRING "CMake toolchain") 19 | 20 | set(toolchain_file toolchains/${TOOLCHAIN}.cmake) 21 | foreach(path ${CMAKE_MODULE_PATH}) 22 | if(EXISTS "${path}/${toolchain_file}") 23 | set(toolchain_file "${path}/${toolchain_file}") 24 | break() 25 | endif() 26 | endforeach() 27 | 28 | cable_debug("Toolchain file: ${toolchain_file}") 29 | set(CMAKE_TOOLCHAIN_FILE ${toolchain_file} CACHE FILEPATH "CMake toolchain file") 30 | endif() 31 | endfunction() 32 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/README.md: -------------------------------------------------------------------------------- 1 | # Cable 2 | 3 | [![readme style: standard][readme style standard badge]][standard readme] 4 | 5 | > Cable: CMake Bootstrap Library 6 | 7 | Cable is a set of CMake modules and scripts containing common patterns used 8 | in CMake-based C++ projects. The design goal is to be pragmatic rather than 9 | generic so the number of provided options is minimal. The Cable modules are 10 | independent and it is easy to use them individually. 11 | 12 | 13 | ## Table of Contents 14 | 15 | - [Install](#install) 16 | - [Usage](#usage) 17 | - [Maintainer](#maintainer) 18 | - [License](#license) 19 | 20 | 21 | ## Install 22 | 23 | The suggested Cable location is `cmake/cable` relative to your project root directory. 24 | 25 | ### As git subtree 26 | 27 | Adding a dependency project as a [git subtree] is just a copy of the source code 28 | done in a bit more systematic way. 29 | 30 | If you are not familiar with managing dependencies with git subtree read the 31 | [Git subtree: the alternative to Git submodule][git subtree tutorial]. 32 | 33 | #### To install 34 | 35 | ```sh 36 | git remote add cable https://github.com/ethereum/cable 37 | git subtree add --prefix cmake/cable cable master --squash 38 | ``` 39 | 40 | #### To update 41 | 42 | ```sh 43 | git subtree pull --prefix cmake/cable cable master --squash 44 | ``` 45 | 46 | ### As git submodule 47 | 48 | Include the Cable library as [git submodule] in your project. 49 | 50 | ```sh 51 | git submodule add https://github.com/ethereum/cable cmake/cable 52 | ``` 53 | 54 | ## Usage 55 | 56 | Cable contains the `bootstrap.cmake` file that initializes the library. 57 | Start by including this file in your main `CMakeLists.txt` from the Cable 58 | submodule/subtree or any other location. The `bootstrap.cmake` must be included 59 | before the `project()` command. After that, you can include and use other 60 | Cable modules. 61 | 62 | ### Example 63 | 64 | ```cmake 65 | cmake_minimum_required(VERSION 3.5) 66 | 67 | include(cmake/cable/bootstrap.cmake) 68 | include(CableBuildType) 69 | 70 | project(tothemoon) 71 | 72 | cable_set_build_type(DEFAULT RelWithDebInfo CONFIGURATION_TYPES Debug Release RelWithDebInfo) 73 | ``` 74 | 75 | 76 | ## Maintainer 77 | 78 | Paweł Bylica [@chfast] 79 | 80 | ## License 81 | 82 | Licensed under the [Apache License, Version 2.0]. 83 | 84 | 85 | [@chfast]: https://github.com/chfast 86 | [Apache License, Version 2.0]: LICENSE 87 | [git submodule]: https://git-scm.com/book/en/v2/Git-Tools-Submodules 88 | [git subtree]: https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt 89 | [git subtree tutorial]: https://www.atlassian.com/blog/git/alternatives-to-git-submodule-git-subtree 90 | [standard readme]: https://github.com/RichardLitt/standard-readme 91 | 92 | [readme style standard badge]: https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square 93 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/bootstrap.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | # Bootstrap the Cable - CMake Bootstrap Library by including this file. 6 | # e.g. include(cmake/cable/bootstrap.cmake). 7 | 8 | 9 | # Cable version. 10 | # 11 | # This is internal variable automatically updated with external tools. 12 | # Use CABLE_VERSION variable if you need this information. 13 | set(version 0.4.1) 14 | 15 | # For convenience, add the project CMake module dir to module path. 16 | set(module_dir ${CMAKE_CURRENT_SOURCE_DIR}/cmake) 17 | if(EXISTS ${module_dir}) 18 | list(APPEND CMAKE_MODULE_PATH ${module_dir}) 19 | endif() 20 | 21 | if(CABLE_VERSION) 22 | # Some other instance of Cable has been initialized in the top project. 23 | 24 | # Mark this project as nested. 25 | set(PROJECT_IS_NESTED TRUE) 26 | 27 | # Compare versions of the top project and this instances. 28 | if(CABLE_VERSION VERSION_LESS version) 29 | set(comment " (version older than ${version})") 30 | elseif(CABLE_VERSION VERSION_GREATER version) 31 | set(comment " (version newer than ${version})") 32 | endif() 33 | 34 | # Log information about initialization in the top project. 35 | file(RELATIVE_PATH subproject_dir ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) 36 | cable_debug("${subproject_dir}: Cable ${CABLE_VERSION}${comment} already initialized in the top project") 37 | cable_debug("Project CMake modules directory: ${module_dir}") 38 | 39 | unset(version) 40 | unset(module_dir) 41 | unset(comment) 42 | return() 43 | endif() 44 | 45 | 46 | option(CABLE_DEBUG "Enable Cable debug logs" OFF) 47 | 48 | function(cable_log) 49 | message(STATUS "[cable ] ${ARGN}") 50 | endfunction() 51 | 52 | function(cable_debug) 53 | if(CABLE_DEBUG) 54 | message(STATUS "[cable*] ${ARGN}") 55 | endif() 56 | endfunction() 57 | 58 | # Export Cable version. 59 | set(CABLE_VERSION ${version}) 60 | 61 | # Mark this project as non-nested. 62 | set(PROJECT_IS_NESTED FALSE) 63 | 64 | # Add Cable modules to the CMake module path. 65 | list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) 66 | 67 | cable_log("Cable ${CABLE_VERSION} initialized") 68 | cable_debug("Project CMake modules directory: ${module_dir}") 69 | 70 | unset(version) 71 | unset(module_dir) 72 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/buildinfo/buildinfo.c.in: -------------------------------------------------------------------------------- 1 | /* Cable: CMake Bootstrap Library. 2 | * Copyright 2018 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | */ 5 | 6 | /* Generated by Cable Build Info on @TIMESTAMP@. Do not modify directly. */ 7 | 8 | #include "buildinfo.h" 9 | 10 | const struct buildinfo* @FUNCTION_NAME@() 11 | { 12 | static const struct buildinfo buildinfo = { 13 | .project_name = "@PROJECT_NAME@", 14 | .project_version = "@PROJECT_VERSION@", 15 | .project_name_with_version = "@PROJECT_NAME@-@PROJECT_VERSION@", 16 | .git_commit_hash = "@GIT_COMMIT_HASH@", 17 | .system_name = "@SYSTEM_NAME@", 18 | .system_processor = "@SYSTEM_PROCESSOR@", 19 | .compiler_id = "@COMPILER_ID@", 20 | .compiler_version = "@COMPILER_VERSION@", 21 | .build_type = "@BUILD_TYPE@", 22 | }; 23 | return &buildinfo; 24 | } 25 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/buildinfo/buildinfo.h.in: -------------------------------------------------------------------------------- 1 | /* Cable: CMake Bootstrap Library. 2 | * Copyright 2018 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | */ 5 | 6 | /* Generated by Cable Build Info on @TIMESTAMP@. Do not modify directly. */ 7 | 8 | #pragma once 9 | 10 | #ifdef __cplusplus 11 | extern "C" 12 | { 13 | #endif 14 | 15 | struct buildinfo 16 | { 17 | const char* project_name; 18 | const char* project_version; 19 | const char* project_name_with_version; 20 | const char* git_commit_hash; 21 | const char* system_name; 22 | const char* system_processor; 23 | const char* compiler_id; 24 | const char* compiler_version; 25 | const char* build_type; 26 | }; 27 | 28 | const struct buildinfo* @FUNCTION_NAME@(); 29 | 30 | #ifdef __cplusplus 31 | } 32 | #endif 33 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/buildinfo/buildinfo.json.in: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@PROJECT_NAME@", 3 | "version": "@PROJECT_VERSION@", 4 | "is_prerelease": @PROJECT_VERSION_IS_PRERELEASE@, 5 | "commit": "@GIT_COMMIT_HASH@", 6 | "branch": "@GIT_BRANCH@", 7 | "repo": "@GIT_ORIGIN_URL@", 8 | "system_name": "@SYSTEM_NAME@", 9 | "system_processor": "@SYSTEM_PROCESSOR@" 10 | } 11 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/buildinfo/buildinfo.ps1.in: -------------------------------------------------------------------------------- 1 | $env:project_name="@PROJECT_NAME@" 2 | $env:project_version="@PROJECT_VERSION@" 3 | $env:project_version_is_prerelease="@PROJECT_VERSION_IS_PRERELEASE@" 4 | $env:system_name='@SYSTEM_NAME@' 5 | $env:system_processor='@SYSTEM_PROCESSOR@' 6 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/buildinfo/buildinfo.sh.in: -------------------------------------------------------------------------------- 1 | PROJECT_NAME='@PROJECT_NAME@' 2 | PROJECT_VERSION='@PROJECT_VERSION@' 3 | PROJECT_VERSION_IS_PRERELEASE='@PROJECT_VERSION_IS_PRERELEASE@' 4 | SYSTEM_NAME='@SYSTEM_NAME@' 5 | SYSTEM_PROCESSOR='@SYSTEM_PROCESSOR@' 6 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/buildinfo/gitinfo.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | 5 | # Execute git only if the tool is available. 6 | if(GIT) 7 | execute_process( 8 | COMMAND ${GIT} describe --always --long --tags --first-parent --match=v* --abbrev=40 --dirty 9 | WORKING_DIRECTORY ${SOURCE_DIR} 10 | OUTPUT_VARIABLE gitinfo 11 | OUTPUT_STRIP_TRAILING_WHITESPACE 12 | ERROR_VARIABLE error 13 | ERROR_STRIP_TRAILING_WHITESPACE 14 | ) 15 | if(error) 16 | message(WARNING "Git ${error}") 17 | endif() 18 | 19 | execute_process( 20 | COMMAND ${GIT} rev-parse --abbrev-ref HEAD 21 | WORKING_DIRECTORY ${SOURCE_DIR} 22 | OUTPUT_VARIABLE gitbranch 23 | OUTPUT_STRIP_TRAILING_WHITESPACE 24 | ERROR_VARIABLE error 25 | ERROR_STRIP_TRAILING_WHITESPACE 26 | ) 27 | if(error) 28 | message(WARNING "Git ${error}") 29 | else() 30 | set(gitinfo "${gitinfo}\n${gitbranch}") 31 | endif() 32 | 33 | execute_process( 34 | COMMAND ${GIT} config --get remote.origin.url 35 | WORKING_DIRECTORY ${SOURCE_DIR} 36 | OUTPUT_VARIABLE gitorigin 37 | OUTPUT_STRIP_TRAILING_WHITESPACE 38 | ERROR_VARIABLE error 39 | ERROR_STRIP_TRAILING_WHITESPACE 40 | ) 41 | if(error) 42 | message(WARNING "Git ${error}") 43 | else() 44 | set(gitinfo "${gitinfo}\n${gitorigin}\n") 45 | endif() 46 | endif() 47 | 48 | set(gitinfo_file ${OUTPUT_DIR}/gitinfo.txt) 49 | 50 | if(EXISTS ${gitinfo_file}) 51 | file(READ ${gitinfo_file} prev_gitinfo) 52 | else() 53 | # Create empty file, because other targets expect it to exist. 54 | file(WRITE ${gitinfo_file} "") 55 | endif() 56 | 57 | if(NOT "${gitinfo}" STREQUAL "${prev_gitinfo}") 58 | file(WRITE ${gitinfo_file} ${gitinfo}) 59 | endif() 60 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/defaults/HunterCacheServers-passwords.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | 5 | # Hunter passwords file used by HunterCacheServers.cmake. 6 | # Do not include directly. 7 | 8 | hunter_upload_password( 9 | # REPO_OWNER + REPO = https://github.com/ethereum/hunter-cache 10 | REPO_OWNER ethereum 11 | REPO hunter-cache 12 | 13 | # USERNAME = https://github.com/hunter-cache-bot 14 | USERNAME hunter-cache-bot 15 | 16 | # PASSWORD = GitHub token saved as a secure environment variable 17 | PASSWORD "$ENV{HUNTER_CACHE_TOKEN}" 18 | ) 19 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/defaults/HunterCacheServers.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | 5 | # This module, when included, sets default values for params related to 6 | # Hunter cache servers, including upload options. 7 | 8 | # Default Hunter cache servers. 9 | set(HUNTER_CACHE_SERVERS 10 | "https://github.com/ethereum/hunter-cache;https://github.com/ingenue/hunter-cache" 11 | CACHE STRING "Hunter cache servers") 12 | 13 | # Default path to Hunter passwords file containing information how to access 14 | # Ethereum's cache server. 15 | set(HUNTER_PASSWORDS_PATH 16 | ${CMAKE_CURRENT_LIST_DIR}/HunterCacheServers-passwords.cmake 17 | CACHE STRING "Hunter passwords file") 18 | 19 | # In CI builds upload the binaries if the HUNTER_CACHE_TOKEN was decrypted 20 | # (only for branches and internal PRs). 21 | if("$ENV{CI}" AND NOT "$ENV{HUNTER_CACHE_TOKEN}" STREQUAL "") 22 | set(run_upload YES) 23 | else() 24 | set(run_upload NO) 25 | endif() 26 | option(HUNTER_RUN_UPLOAD "Upload binaries to the Hunter cache server" ${run_upload}) 27 | unset(run_upload) 28 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/cxx11-32bit.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018-2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | set(CMAKE_CXX_STANDARD 11) 6 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | 9 | set(CMAKE_C_FLAGS_INIT -m32) 10 | set(CMAKE_CXX_FLAGS_INIT -m32) 11 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/cxx11-c99.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | 5 | set(CMAKE_CXX_STANDARD 11) 6 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | 9 | set(CMAKE_C_STANDARD 99) 10 | set(CMAKE_C_EXTENSIONS OFF) 11 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/cxx11-fpic.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | 5 | set(CMAKE_CXX_STANDARD 11) 6 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | 9 | set(CMAKE_POSITION_INDEPENDENT_CODE ON) 10 | 11 | set(CMAKE_CXX_FLAGS_INIT "-fPIC" CACHE STRING "" FORCE) 12 | set(CMAKE_C_FLAGS_INIT "-fPIC" CACHE STRING "" FORCE) 13 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/cxx11-pic.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | 5 | set(CMAKE_CXX_STANDARD 11) 6 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | 9 | set(CMAKE_POSITION_INDEPENDENT_CODE ON) 10 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/cxx11.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | 5 | set(CMAKE_CXX_STANDARD 11) 6 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/cxx14-32bit.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | set(CMAKE_CXX_STANDARD 14) 6 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | 9 | set(CMAKE_C_FLAGS_INIT -m32) 10 | set(CMAKE_CXX_FLAGS_INIT -m32) 11 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/cxx14-pic.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | set(CMAKE_CXX_STANDARD 14) 6 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | 9 | set(CMAKE_POSITION_INDEPENDENT_CODE ON) 10 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/cxx14.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | set(CMAKE_CXX_STANDARD 14) 6 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/cxx17-32bit.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | set(CMAKE_CXX_STANDARD 17) 6 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | 9 | set(CMAKE_C_FLAGS_INIT -m32) 10 | set(CMAKE_CXX_FLAGS_INIT -m32) 11 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/cxx17-pic.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | set(CMAKE_CXX_STANDARD 17) 6 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | 9 | set(CMAKE_POSITION_INDEPENDENT_CODE ON) 10 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/cxx17.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | set(CMAKE_CXX_STANDARD 17) 6 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/default.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/mips64.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | 5 | set(CMAKE_SYSTEM_PROCESSOR mips64) 6 | set(CMAKE_SYSTEM_NAME Linux) 7 | set(CMAKE_C_COMPILER mips64-linux-gnuabi64-gcc) 8 | set(CMAKE_CXX_COMPILER mips64-linux-gnuabi64-g++) 9 | 10 | set(CMAKE_FIND_ROOT_PATH /usr/mips64-linux-gnuabi64) 11 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 12 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 13 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 14 | 15 | set(CMAKE_CXX_STANDARD 11) 16 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 17 | set(CMAKE_CXX_EXTENSIONS Off) 18 | 19 | if(${CMAKE_VERSION} VERSION_LESS 3.10.0) 20 | # Until CMake 3.10 the FindThreads uses try_run() check of -pthread flag, 21 | # what causes CMake error in crosscompiling mode. Avoid the try_run() check 22 | # by specifying the result up front. 23 | set(THREADS_PTHREAD_ARG TRUE) 24 | endif() 25 | -------------------------------------------------------------------------------- /DXEth/ethash/cmake/cable/toolchains/powerpc64.cmake: -------------------------------------------------------------------------------- 1 | # Cable: CMake Bootstrap Library. 2 | # Copyright 2018 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. See the LICENSE file. 4 | 5 | set(CMAKE_SYSTEM_PROCESSOR powerpc64) 6 | set(CMAKE_SYSTEM_NAME Linux) 7 | set(CMAKE_C_COMPILER powerpc64-linux-gnu-gcc) 8 | set(CMAKE_CXX_COMPILER powerpc64-linux-gnu-g++) 9 | 10 | set(CMAKE_FIND_ROOT_PATH /usr/powerpc64-linux-gnu) 11 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 12 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 13 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 14 | 15 | set(CMAKE_CXX_STANDARD 11) 16 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 17 | set(CMAKE_CXX_EXTENSIONS OFF) 18 | 19 | if(${CMAKE_VERSION} VERSION_LESS 3.10.0) 20 | # Until CMake 3.10 the FindThreads uses try_run() check of -pthread flag, 21 | # what causes CMake error in crosscompiling mode. Avoid the try_run() check 22 | # by specifying the result up front. 23 | set(THREADS_PTHREAD_ARG TRUE) 24 | endif() 25 | -------------------------------------------------------------------------------- /DXEth/ethash/codecov.yml: -------------------------------------------------------------------------------- 1 | comment: 2 | layout: "diff, flags, files" 3 | ignore: 4 | - "test/benchmarks/*" 5 | - "test/fakeminer/*" 6 | - "test/integration/*" 7 | - "test/tools/*" 8 | -------------------------------------------------------------------------------- /DXEth/ethash/ethash_include/ethash/hash_types.h: -------------------------------------------------------------------------------- 1 | /* ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | * Copyright 2018-2019 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | union ethash_hash256 15 | { 16 | uint64_t word64s[4]; 17 | uint32_t word32s[8]; 18 | uint8_t bytes[32]; 19 | char str[32]; 20 | }; 21 | 22 | union ethash_hash512 23 | { 24 | uint64_t word64s[8]; 25 | uint32_t word32s[16]; 26 | uint8_t bytes[64]; 27 | char str[64]; 28 | }; 29 | 30 | union ethash_hash1024 31 | { 32 | union ethash_hash512 hash512s[2]; 33 | uint64_t word64s[16]; 34 | uint32_t word32s[32]; 35 | uint8_t bytes[128]; 36 | char str[128]; 37 | }; 38 | 39 | union ethash_hash2048 40 | { 41 | union ethash_hash512 hash512s[4]; 42 | uint64_t word64s[32]; 43 | uint32_t word32s[64]; 44 | uint8_t bytes[256]; 45 | char str[256]; 46 | }; 47 | 48 | #ifdef __cplusplus 49 | } 50 | #endif 51 | -------------------------------------------------------------------------------- /DXEth/ethash/ethash_include/ethash/hash_types.hpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | namespace ethash 10 | { 11 | using hash256 = ethash_hash256; 12 | using hash512 = ethash_hash512; 13 | using hash1024 = ethash_hash1024; 14 | using hash2048 = ethash_hash2048; 15 | } // namespace ethash 16 | -------------------------------------------------------------------------------- /DXEth/ethash/ethash_include/ethash/keccak.h: -------------------------------------------------------------------------------- 1 | /* ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | * Copyright 2018-2019 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include 9 | 10 | #include 11 | 12 | #ifdef __cplusplus 13 | #define NOEXCEPT noexcept 14 | #else 15 | #define NOEXCEPT 16 | #endif 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /** 23 | * The Keccak-f[800] function. 24 | * 25 | * The implementation of the Keccak-f function with 800-bit width of the permutation (b). 26 | * The size of the state is also 800 bit what gives 25 32-bit words. 27 | * 28 | * @param state The state of 25 32-bit words on which the permutation is to be performed. 29 | */ 30 | void ethash_keccakf800(uint32_t state[25]) NOEXCEPT; 31 | 32 | union ethash_hash256 ethash_keccak256(const uint8_t* data, size_t size) NOEXCEPT; 33 | union ethash_hash256 ethash_keccak256_32(const uint8_t data[32]) NOEXCEPT; 34 | union ethash_hash512 ethash_keccak512(const uint8_t* data, size_t size) NOEXCEPT; 35 | union ethash_hash512 ethash_keccak512_64(const uint8_t data[64]) NOEXCEPT; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | -------------------------------------------------------------------------------- /DXEth/ethash/ethash_include/ethash/keccak.hpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #pragma once 6 | 7 | #include 8 | #include 9 | 10 | namespace ethash 11 | { 12 | inline hash256 keccak256(const uint8_t* data, size_t size) noexcept 13 | { 14 | return ethash_keccak256(data, size); 15 | } 16 | 17 | inline hash256 keccak256(const hash256& input) noexcept 18 | { 19 | return ethash_keccak256_32(input.bytes); 20 | } 21 | 22 | inline hash512 keccak512(const uint8_t* data, size_t size) noexcept 23 | { 24 | return ethash_keccak512(data, size); 25 | } 26 | 27 | inline hash512 keccak512(const hash512& input) noexcept 28 | { 29 | return ethash_keccak512_64(input.bytes); 30 | } 31 | 32 | static constexpr auto keccak256_32 = ethash_keccak256_32; 33 | static constexpr auto keccak512_64 = ethash_keccak512_64; 34 | 35 | } // namespace ethash 36 | -------------------------------------------------------------------------------- /DXEth/ethash/ethash_include/ethash/progpow.hpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | /// @file 6 | /// 7 | /// ProgPoW API 8 | /// 9 | /// This file provides the public API for ProgPoW as the Ethash API extension. 10 | 11 | #pragma once 12 | 13 | #include 14 | 15 | namespace progpow 16 | { 17 | using namespace ethash; // Include ethash namespace. 18 | 19 | 20 | /// The ProgPoW algorithm revision implemented as specified in the spec 21 | /// https://github.com/ifdefelse/ProgPOW#change-history. 22 | constexpr auto revision = "0.9.3"; 23 | 24 | constexpr int period_length = 10; 25 | constexpr uint32_t num_regs = 32; 26 | constexpr size_t num_lanes = 16; 27 | constexpr int num_cache_accesses = 11; 28 | constexpr int num_math_operations = 18; 29 | constexpr size_t l1_cache_size = 16 * 1024; 30 | constexpr size_t l1_cache_num_items = l1_cache_size / sizeof(uint32_t); 31 | 32 | result hash(const epoch_context& context, int block_number, const hash256& header_hash, 33 | uint64_t nonce) noexcept; 34 | 35 | result hash(const epoch_context_full& context, int block_number, const hash256& header_hash, 36 | uint64_t nonce) noexcept; 37 | 38 | bool verify(const epoch_context& context, int block_number, const hash256& header_hash, 39 | const hash256& mix_hash, uint64_t nonce, const hash256& boundary) noexcept; 40 | 41 | search_result search_light(const epoch_context& context, int block_number, 42 | const hash256& header_hash, const hash256& boundary, uint64_t start_nonce, 43 | size_t iterations) noexcept; 44 | 45 | search_result search(const epoch_context_full& context, int block_number, 46 | const hash256& header_hash, const hash256& boundary, uint64_t start_nonce, 47 | size_t iterations) noexcept; 48 | 49 | } // namespace progpow 50 | -------------------------------------------------------------------------------- /DXEth/ethash/ethash_include/ethash/version.h: -------------------------------------------------------------------------------- 1 | /* ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | * Copyright 2019 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. 4 | */ 5 | 6 | #pragma once 7 | 8 | /** The ethash library version. */ 9 | #define ETHASH_VERSION "0.6.0" 10 | 11 | #ifdef __cplusplus 12 | namespace ethash 13 | { 14 | /// The ethash library version. 15 | constexpr auto version = ETHASH_VERSION; 16 | 17 | } // namespace ethash 18 | #endif 19 | -------------------------------------------------------------------------------- /DXEth/ethash/include/ethash/hash_types.h: -------------------------------------------------------------------------------- 1 | /* ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | * Copyright 2018-2019 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | union ethash_hash256 15 | { 16 | uint64_t word64s[4]; 17 | uint32_t word32s[8]; 18 | uint8_t bytes[32]; 19 | char str[32]; 20 | }; 21 | 22 | union ethash_hash512 23 | { 24 | uint64_t word64s[8]; 25 | uint32_t word32s[16]; 26 | uint8_t bytes[64]; 27 | char str[64]; 28 | }; 29 | 30 | union ethash_hash1024 31 | { 32 | union ethash_hash512 hash512s[2]; 33 | uint64_t word64s[16]; 34 | uint32_t word32s[32]; 35 | uint8_t bytes[128]; 36 | char str[128]; 37 | }; 38 | 39 | union ethash_hash2048 40 | { 41 | union ethash_hash512 hash512s[4]; 42 | uint64_t word64s[32]; 43 | uint32_t word32s[64]; 44 | uint8_t bytes[256]; 45 | char str[256]; 46 | }; 47 | 48 | #ifdef __cplusplus 49 | } 50 | #endif 51 | -------------------------------------------------------------------------------- /DXEth/ethash/include/ethash/hash_types.hpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | namespace ethash 10 | { 11 | using hash256 = ethash_hash256; 12 | using hash512 = ethash_hash512; 13 | using hash1024 = ethash_hash1024; 14 | using hash2048 = ethash_hash2048; 15 | } // namespace ethash 16 | -------------------------------------------------------------------------------- /DXEth/ethash/include/ethash/keccak.h: -------------------------------------------------------------------------------- 1 | /* ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | * Copyright 2018-2019 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include 9 | 10 | #include 11 | 12 | #ifdef __cplusplus 13 | #define NOEXCEPT noexcept 14 | #else 15 | #define NOEXCEPT 16 | #endif 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /** 23 | * The Keccak-f[800] function. 24 | * 25 | * The implementation of the Keccak-f function with 800-bit width of the permutation (b). 26 | * The size of the state is also 800 bit what gives 25 32-bit words. 27 | * 28 | * @param state The state of 25 32-bit words on which the permutation is to be performed. 29 | */ 30 | void ethash_keccakf800(uint32_t state[25]) NOEXCEPT; 31 | 32 | union ethash_hash256 ethash_keccak256(const uint8_t* data, size_t size) NOEXCEPT; 33 | union ethash_hash256 ethash_keccak256_32(const uint8_t data[32]) NOEXCEPT; 34 | union ethash_hash512 ethash_keccak512(const uint8_t* data, size_t size) NOEXCEPT; 35 | union ethash_hash512 ethash_keccak512_64(const uint8_t data[64]) NOEXCEPT; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | -------------------------------------------------------------------------------- /DXEth/ethash/include/ethash/keccak.hpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #pragma once 6 | 7 | #include 8 | #include 9 | 10 | namespace ethash 11 | { 12 | inline hash256 keccak256(const uint8_t* data, size_t size) noexcept 13 | { 14 | return ethash_keccak256(data, size); 15 | } 16 | 17 | inline hash256 keccak256(const hash256& input) noexcept 18 | { 19 | return ethash_keccak256_32(input.bytes); 20 | } 21 | 22 | inline hash512 keccak512(const uint8_t* data, size_t size) noexcept 23 | { 24 | return ethash_keccak512(data, size); 25 | } 26 | 27 | inline hash512 keccak512(const hash512& input) noexcept 28 | { 29 | return ethash_keccak512_64(input.bytes); 30 | } 31 | 32 | static constexpr auto keccak256_32 = ethash_keccak256_32; 33 | static constexpr auto keccak512_64 = ethash_keccak512_64; 34 | 35 | } // namespace ethash 36 | -------------------------------------------------------------------------------- /DXEth/ethash/include/ethash/progpow.hpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | /// @file 6 | /// 7 | /// ProgPoW API 8 | /// 9 | /// This file provides the public API for ProgPoW as the Ethash API extension. 10 | 11 | #pragma once 12 | 13 | #include 14 | 15 | namespace progpow 16 | { 17 | using namespace ethash; // Include ethash namespace. 18 | 19 | 20 | /// The ProgPoW algorithm revision implemented as specified in the spec 21 | /// https://github.com/ifdefelse/ProgPOW#change-history. 22 | constexpr auto revision = "0.9.3"; 23 | 24 | constexpr int period_length = 10; 25 | constexpr uint32_t num_regs = 32; 26 | constexpr size_t num_lanes = 16; 27 | constexpr int num_cache_accesses = 11; 28 | constexpr int num_math_operations = 18; 29 | constexpr size_t l1_cache_size = 16 * 1024; 30 | constexpr size_t l1_cache_num_items = l1_cache_size / sizeof(uint32_t); 31 | 32 | result hash(const epoch_context& context, int block_number, const hash256& header_hash, 33 | uint64_t nonce) noexcept; 34 | 35 | result hash(const epoch_context_full& context, int block_number, const hash256& header_hash, 36 | uint64_t nonce) noexcept; 37 | 38 | bool verify(const epoch_context& context, int block_number, const hash256& header_hash, 39 | const hash256& mix_hash, uint64_t nonce, const hash256& boundary) noexcept; 40 | 41 | search_result search_light(const epoch_context& context, int block_number, 42 | const hash256& header_hash, const hash256& boundary, uint64_t start_nonce, 43 | size_t iterations) noexcept; 44 | 45 | search_result search(const epoch_context_full& context, int block_number, 46 | const hash256& header_hash, const hash256& boundary, uint64_t start_nonce, 47 | size_t iterations) noexcept; 48 | 49 | } // namespace progpow 50 | -------------------------------------------------------------------------------- /DXEth/ethash/include/ethash/version.h: -------------------------------------------------------------------------------- 1 | /* ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | * Copyright 2019 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. 4 | */ 5 | 6 | #pragma once 7 | 8 | /** The ethash library version. */ 9 | #define ETHASH_VERSION "0.6.0" 10 | 11 | #ifdef __cplusplus 12 | namespace ethash 13 | { 14 | /// The ethash library version. 15 | constexpr auto version = ETHASH_VERSION; 16 | 17 | } // namespace ethash 18 | #endif 19 | -------------------------------------------------------------------------------- /DXEth/ethash/lib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | add_subdirectory(keccak) 6 | add_subdirectory(ethash) 7 | 8 | get_filename_component(ETHASH_PRIVATE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR} ABSOLUTE) 9 | set(ETHASH_PRIVATE_INCLUDE_DIR ${ETHASH_PRIVATE_INCLUDE_DIR} PARENT_SCOPE) 10 | -------------------------------------------------------------------------------- /DXEth/ethash/lib/ethash/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2018-2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | include(GNUInstallDirs) 6 | 7 | add_library(ethash) 8 | add_library(ethash::ethash ALIAS ethash) 9 | target_link_libraries(ethash PRIVATE ethash::keccak) 10 | target_include_directories(ethash PUBLIC $$) 11 | target_sources(ethash PRIVATE 12 | bit_manipulation.h 13 | builtins.h 14 | endianness.hpp 15 | ${include_dir}/ethash/ethash.h 16 | ${include_dir}/ethash/ethash.hpp 17 | ethash-internal.hpp 18 | ethash.cpp 19 | ${include_dir}/ethash/hash_types.h 20 | managed.cpp 21 | kiss99.hpp 22 | primes.h 23 | primes.c 24 | ${include_dir}/ethash/progpow.hpp 25 | progpow.cpp 26 | ) 27 | 28 | 29 | if(CABLE_COMPILER_GNULIKE AND NOT SANITIZE MATCHES undefined) 30 | target_compile_options(ethash PRIVATE $<$:-fno-rtti>) 31 | endif() 32 | 33 | install( 34 | TARGETS ethash 35 | EXPORT ethashTargets 36 | ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 37 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 38 | ) 39 | -------------------------------------------------------------------------------- /DXEth/ethash/lib/ethash/bit_manipulation.h: -------------------------------------------------------------------------------- 1 | /* ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | * Copyright 2018-2019 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "builtins.h" 9 | #include "../support/attributes.h" 10 | 11 | #include 12 | 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | 17 | static inline uint32_t rotl32(uint32_t n, unsigned int c) 18 | { 19 | const unsigned int mask = 31; 20 | 21 | c &= mask; 22 | unsigned int neg_c = (unsigned int)(-(int)c); 23 | return (n << c) | (n >> (neg_c & mask)); 24 | } 25 | 26 | static inline uint32_t rotr32(uint32_t n, unsigned int c) 27 | { 28 | const unsigned int mask = 31; 29 | 30 | c &= mask; 31 | unsigned int neg_c = (unsigned int)(-(int)c); 32 | return (n >> c) | (n << (neg_c & mask)); 33 | } 34 | 35 | static inline uint32_t clz32(uint32_t x) 36 | { 37 | return x ? (uint32_t)__builtin_clz(x) : 32; 38 | } 39 | 40 | static inline uint32_t popcount32(uint32_t x) 41 | { 42 | return (uint32_t)__builtin_popcount(x); 43 | } 44 | 45 | static inline uint32_t mul_hi32(uint32_t x, uint32_t y) 46 | { 47 | return (uint32_t)(((uint64_t)x * (uint64_t)y) >> 32); 48 | } 49 | 50 | 51 | /** FNV 32-bit prime. */ 52 | static const uint32_t fnv_prime = 0x01000193; 53 | 54 | /** FNV 32-bit offset basis. */ 55 | static const uint32_t fnv_offset_basis = 0x811c9dc5; 56 | 57 | /** 58 | * The implementation of FNV-1 hash. 59 | * 60 | * See https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-1_hash. 61 | */ 62 | NO_SANITIZE("unsigned-integer-overflow") 63 | static inline uint32_t fnv1(uint32_t u, uint32_t v) noexcept 64 | { 65 | return (u * fnv_prime) ^ v; 66 | } 67 | 68 | /** 69 | * The implementation of FNV-1a hash. 70 | * 71 | * See https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-1a_hash. 72 | */ 73 | NO_SANITIZE("unsigned-integer-overflow") 74 | static inline uint32_t fnv1a(uint32_t u, uint32_t v) noexcept 75 | { 76 | return (u ^ v) * fnv_prime; 77 | } 78 | 79 | #ifdef __cplusplus 80 | } 81 | #endif 82 | -------------------------------------------------------------------------------- /DXEth/ethash/lib/ethash/builtins.h: -------------------------------------------------------------------------------- 1 | /* ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | * Copyright 2018-2020 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. 4 | */ 5 | 6 | /** 7 | * @file 8 | * Implementation of GCC/clang builtins for MSVC compiler. 9 | */ 10 | 11 | #pragma once 12 | 13 | #ifdef _MSC_VER 14 | #include 15 | 16 | #ifdef __cplusplus 17 | extern "C" { 18 | #endif 19 | 20 | /** 21 | * Returns the number of leading 0-bits in `x`, starting at the most significant bit position. 22 | * If `x` is 0, the result is undefined. 23 | */ 24 | inline int __builtin_clz(unsigned int x) 25 | { 26 | unsigned long most_significant_bit; 27 | _BitScanReverse(&most_significant_bit, x); 28 | return 31 - (int)most_significant_bit; 29 | } 30 | 31 | /** 32 | * Returns the number of 1-bits in `x`. 33 | */ 34 | inline int __builtin_popcount(unsigned int x) 35 | { 36 | return (int)__popcnt(x); 37 | } 38 | 39 | #ifdef __cplusplus 40 | } 41 | #endif 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /DXEth/ethash/lib/ethash/endianness.hpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | /// @file 6 | /// This file contains helper functions to handle big-endian architectures. 7 | /// The Ethash algorithm is naturally defined for little-endian architectures 8 | /// so for those the helpers are just no-op empty functions. 9 | /// For big-endian architectures we need 32-bit and 64-bit byte swapping in 10 | /// some places. 11 | 12 | #pragma once 13 | 14 | #include 15 | 16 | #if _WIN32 17 | 18 | #include 19 | 20 | #define bswap32 _byteswap_ulong 21 | #define bswap64 _byteswap_uint64 22 | 23 | // On Windows assume little endian. 24 | #define __LITTLE_ENDIAN 1234 25 | #define __BIG_ENDIAN 4321 26 | #define __BYTE_ORDER __LITTLE_ENDIAN 27 | 28 | #elif __APPLE__ 29 | 30 | #include 31 | 32 | #define bswap32 __builtin_bswap32 33 | #define bswap64 __builtin_bswap64 34 | 35 | #else 36 | 37 | #include 38 | 39 | #define bswap32 __builtin_bswap32 40 | #define bswap64 __builtin_bswap64 41 | 42 | #endif 43 | 44 | namespace ethash 45 | { 46 | #if __BYTE_ORDER == __LITTLE_ENDIAN 47 | 48 | struct le 49 | { 50 | static uint32_t uint32(uint32_t x) noexcept { return x; } 51 | static uint64_t uint64(uint64_t x) noexcept { return x; } 52 | 53 | static const hash1024& uint32s(const hash1024& h) noexcept { return h; } 54 | static const hash512& uint32s(const hash512& h) noexcept { return h; } 55 | static const hash256& uint32s(const hash256& h) noexcept { return h; } 56 | }; 57 | 58 | struct be 59 | { 60 | static uint64_t uint64(uint64_t x) noexcept { return bswap64(x); } 61 | }; 62 | 63 | 64 | #elif __BYTE_ORDER == __BIG_ENDIAN 65 | 66 | struct le 67 | { 68 | static uint32_t uint32(uint32_t x) noexcept { return bswap32(x); } 69 | static uint64_t uint64(uint64_t x) noexcept { return bswap64(x); } 70 | 71 | static hash1024 uint32s(hash1024 h) noexcept 72 | { 73 | for (auto& w : h.word32s) 74 | w = uint32(w); 75 | return h; 76 | } 77 | 78 | static hash512 uint32s(hash512 h) noexcept 79 | { 80 | for (auto& w : h.word32s) 81 | w = uint32(w); 82 | return h; 83 | } 84 | 85 | static hash256 uint32s(hash256 h) noexcept 86 | { 87 | for (auto& w : h.word32s) 88 | w = uint32(w); 89 | return h; 90 | } 91 | }; 92 | 93 | struct be 94 | { 95 | static uint64_t uint64(uint64_t x) noexcept { return x; } 96 | }; 97 | 98 | #endif 99 | } // namespace ethash -------------------------------------------------------------------------------- /DXEth/ethash/lib/ethash/ethash-internal.hpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | /// @file 6 | /// Contains declarations of internal ethash functions to allow them to be 7 | /// unit-tested. 8 | 9 | #pragma once 10 | 11 | #include 12 | 13 | #include "endianness.hpp" 14 | 15 | #include 16 | #include 17 | 18 | extern "C" struct ethash_epoch_context_full : ethash_epoch_context 19 | { 20 | ethash_hash1024* full_dataset; 21 | 22 | constexpr ethash_epoch_context_full(int epoch, int light_num_items, 23 | const ethash_hash512* light, const uint32_t* l1, int dataset_num_items, 24 | ethash_hash1024* dataset) noexcept 25 | : ethash_epoch_context{epoch, light_num_items, light, l1, dataset_num_items}, 26 | full_dataset{dataset} 27 | {} 28 | }; 29 | 30 | namespace ethash 31 | { 32 | inline bool is_less_or_equal(const hash256& a, const hash256& b) noexcept 33 | { 34 | for (size_t i = 0; i < (sizeof(a) / sizeof(a.word64s[0])); ++i) 35 | { 36 | if (be::uint64(a.word64s[i]) > be::uint64(b.word64s[i])) 37 | return false; 38 | if (be::uint64(a.word64s[i]) < be::uint64(b.word64s[i])) 39 | return true; 40 | } 41 | return true; 42 | } 43 | 44 | inline bool is_equal(const hash256& a, const hash256& b) noexcept 45 | { 46 | return std::memcmp(a.bytes, b.bytes, sizeof(a)) == 0; 47 | } 48 | 49 | void build_light_cache(hash512 cache[], int num_items, const hash256& seed) noexcept; 50 | 51 | hash512 calculate_dataset_item_512(const epoch_context& context, int64_t index) noexcept; 52 | hash1024 calculate_dataset_item_1024(const epoch_context& context, uint32_t index) noexcept; 53 | hash2048 calculate_dataset_item_2048(const epoch_context& context, uint32_t index) noexcept; 54 | 55 | namespace generic 56 | { 57 | using hash_fn_512 = hash512 (*)(const uint8_t* data, size_t size); 58 | using build_light_cache_fn = void (*)(hash512 cache[], int num_items, const hash256& seed); 59 | 60 | void build_light_cache( 61 | hash_fn_512 hash_fn, hash512 cache[], int num_items, const hash256& seed) noexcept; 62 | 63 | epoch_context_full* create_epoch_context( 64 | build_light_cache_fn build_fn, int epoch_number, bool full) noexcept; 65 | 66 | } // namespace generic 67 | 68 | } // namespace ethash 69 | -------------------------------------------------------------------------------- /DXEth/ethash/lib/ethash/kiss99.hpp: -------------------------------------------------------------------------------- 1 | /* ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | * Copyright 2018-2019 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "../support/attributes.h" 9 | #include 10 | 11 | /** 12 | * KISS PRNG by the spec from 1999. 13 | * 14 | * The implementation of KISS pseudo-random number generator 15 | * by the specification published on 21 Jan 1999 in 16 | * http://www.cse.yorku.ca/~oz/marsaglia-rng.html. 17 | * The KISS is not versioned so here we are using `kiss99` prefix to indicate 18 | * the version from 1999. 19 | * 20 | * The specification uses `unsigned long` type with the intention for 32-bit 21 | * values. Because in GCC/clang for 64-bit architectures `unsigned long` is 22 | * 64-bit size type, here the explicit `uint32_t` type is used. 23 | * 24 | * @defgroup kiss99 KISS99 25 | * @{ 26 | */ 27 | 28 | /** 29 | * The KISS generator. 30 | */ 31 | class kiss99 32 | { 33 | uint32_t z = 362436069; 34 | uint32_t w = 521288629; 35 | uint32_t jsr = 123456789; 36 | uint32_t jcong = 380116160; 37 | 38 | public: 39 | /** Creates KISS generator state with default values provided by the specification. */ 40 | kiss99() noexcept = default; 41 | 42 | /** Creates KISS generator state with provided init values.*/ 43 | kiss99(uint32_t _z, uint32_t _w, uint32_t _jsr, uint32_t _jcong) noexcept 44 | : z{_z}, w{_w}, jsr{_jsr}, jcong{_jcong} 45 | {} 46 | 47 | /** Generates next number from the KISS generator. */ 48 | NO_SANITIZE("unsigned-integer-overflow") 49 | uint32_t operator()() noexcept 50 | { 51 | z = 36969 * (z & 0xffff) + (z >> 16); 52 | w = 18000 * (w & 0xffff) + (w >> 16); 53 | 54 | jcong = 69069 * jcong + 1234567; 55 | 56 | jsr ^= (jsr << 17); 57 | jsr ^= (jsr >> 13); 58 | jsr ^= (jsr << 5); 59 | 60 | return (((z << 16) + w) ^ jcong) + jsr; 61 | } 62 | }; 63 | 64 | /** @} */ 65 | -------------------------------------------------------------------------------- /DXEth/ethash/lib/ethash/primes.c: -------------------------------------------------------------------------------- 1 | /* ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | * Copyright 2018-2019 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. 4 | */ 5 | 6 | #include "primes.h" 7 | 8 | /** Checks if the number is prime. Requires the number to be > 2 and odd. */ 9 | static int is_odd_prime(int number) 10 | { 11 | int d; 12 | 13 | /* Check factors up to sqrt(number). 14 | To avoid computing sqrt, compare d*d <= number with 64-bit precision. */ 15 | for (d = 3; (int64_t)d * (int64_t)d <= (int64_t)number; d += 2) 16 | { 17 | if (number % d == 0) 18 | return 0; 19 | } 20 | 21 | return 1; 22 | } 23 | 24 | int ethash_find_largest_prime(int upper_bound) 25 | { 26 | int n = upper_bound; 27 | 28 | if (n < 2) 29 | return 0; 30 | 31 | if (n == 2) 32 | return 2; 33 | 34 | /* If even number, skip it. */ 35 | if (n % 2 == 0) 36 | --n; 37 | 38 | /* Test descending odd numbers. */ 39 | while (!is_odd_prime(n)) 40 | n -= 2; 41 | 42 | return n; 43 | } 44 | -------------------------------------------------------------------------------- /DXEth/ethash/lib/ethash/primes.h: -------------------------------------------------------------------------------- 1 | /* ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | * Copyright 2018-2019 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | /** 15 | * Finds the largest prime number not greater than the provided upper bound. 16 | * 17 | * @param upper_bound The upper bound. SHOULD be greater than 1. 18 | * @return The largest prime number `p` such `p <= upper_bound`. 19 | * In case `upper_bound <= 1`, returns 0. 20 | */ 21 | int ethash_find_largest_prime(int upper_bound) NOEXCEPT; 22 | 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | -------------------------------------------------------------------------------- /DXEth/ethash/lib/keccak/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2019 Pawel Bylica. 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | include(GNUInstallDirs) 6 | 7 | add_library(keccak) 8 | add_library(ethash::keccak ALIAS keccak) 9 | target_compile_features(keccak PUBLIC c_std_99) 10 | target_include_directories(keccak PUBLIC $$) 11 | target_sources(keccak PRIVATE 12 | ${include_dir}/ethash/keccak.h 13 | ${include_dir}/ethash/keccak.hpp 14 | keccak.c 15 | keccakf800.c 16 | ) 17 | 18 | install( 19 | TARGETS keccak 20 | EXPORT ethashTargets 21 | ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 22 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 23 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 24 | ) 25 | -------------------------------------------------------------------------------- /DXEth/ethash/lib/support/attributes.h: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #pragma once 6 | 7 | // Provide __has_attribute macro if not defined. 8 | #ifndef __has_attribute 9 | #define __has_attribute(name) 0 10 | #endif 11 | 12 | // [[always_inline]] 13 | #if _MSC_VER 14 | #define ALWAYS_INLINE __forceinline 15 | #elif __has_attribute(always_inline) 16 | #define ALWAYS_INLINE __attribute__((always_inline)) 17 | #else 18 | #define ALWAYS_INLINE 19 | #endif 20 | 21 | // [[no_sanitize()]] 22 | #if __clang__ 23 | #define NO_SANITIZE(sanitizer) __attribute__((no_sanitize(sanitizer))) 24 | #else 25 | #define NO_SANITIZE(sanitizer) 26 | #endif 27 | -------------------------------------------------------------------------------- /DXEth/ethash/scripts/ci/python_build_wheels.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # -*- coding: utf-8 -*- 3 | 4 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 5 | # Copyright 2019-2020 Pawel Bylica. 6 | # Licensed under the Apache License, Version 2.0. 7 | 8 | set -eo pipefail 9 | 10 | if [ -n "$APPVEYOR" ]; then 11 | PYTHON_PATHS="/c/Python37-x64 /c/Python36-x64 /c/Python35-x64" 12 | elif [ -n "$CIRCLECI" ]; then 13 | if [ "$OSTYPE" = "linux-gnu" ]; then 14 | PYTHON_PATHS="/opt/python/cp37-cp37m/bin /opt/python/cp36-cp36m/bin /opt/python/cp35-cp35m/bin" 15 | else 16 | # The continuation of the script expects "python" executable name, 17 | # so make link python -> python3. 18 | mkdir -p $HOME/bin 19 | ln -s $(which python3) $HOME/bin/python 20 | PYTHON_PATHS="$HOME/bin" 21 | fi 22 | fi 23 | 24 | PATH_ORIG=$PATH 25 | for p in $PYTHON_PATHS 26 | do 27 | PATH="$p:$PATH_ORIG" 28 | echo '***' 29 | python --version 30 | which python 31 | python -m pip --version 32 | echo '***' 33 | python -m pip install wheel 34 | python setup.py build_ext --skip-cmake-build 35 | python setup.py bdist_wheel --skip-build 36 | done 37 | -------------------------------------------------------------------------------- /DXEth/ethash/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2018-2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | add_subdirectory(benchmarks) 6 | add_subdirectory(fakeminer) 7 | add_subdirectory(integration) 8 | add_subdirectory(tools) 9 | add_subdirectory(unittests) 10 | 11 | if(ETHASH_FUZZING) 12 | add_subdirectory(fuzzing) 13 | endif() 14 | -------------------------------------------------------------------------------- /DXEth/ethash/test/benchmarks/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2018-2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | hunter_add_package(benchmark) 6 | find_package(benchmark CONFIG REQUIRED) 7 | 8 | add_executable(ethash-bench 9 | ethash_benchmarks.cpp 10 | keccak_benchmarks.cpp 11 | keccak_utils.hpp 12 | keccak_utils.cpp 13 | managed_benchmarks.cpp 14 | progpow_benchmarks.cpp 15 | threadsync_benchmarks.cpp 16 | threadsync_utils.hpp 17 | threadsync_utils.cpp) 18 | target_link_libraries(ethash-bench PRIVATE ethash::ethash benchmark::benchmark) 19 | target_include_directories(ethash-bench PRIVATE ${ETHASH_PRIVATE_INCLUDE_DIR}) 20 | set_target_properties(ethash-bench PROPERTIES RUNTIME_OUTPUT_DIRECTORY ..) 21 | -------------------------------------------------------------------------------- /DXEth/ethash/test/benchmarks/keccak_utils.hpp: -------------------------------------------------------------------------------- 1 | // Ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018 Pawel Bylica. 3 | // SPDX-License-Identifier: Apache-2.0 4 | 5 | #pragma once 6 | 7 | #include 8 | #include 9 | 10 | void fake_keccak256_default(uint64_t* out, const uint8_t* data, size_t size) noexcept; 11 | void fake_keccak256_default_aligned(uint64_t* out, const uint8_t* data, size_t size) noexcept; 12 | void fake_keccak256_fastest(uint64_t *out, const uint8_t *data, size_t size) noexcept; 13 | void fake_keccak256_fastest_word4(uint64_t out[4], const uint64_t data[4]) noexcept; 14 | -------------------------------------------------------------------------------- /DXEth/ethash/test/benchmarks/managed_benchmarks.cpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #include 6 | 7 | #include 8 | 9 | static void get_epoch_context(benchmark::State& state) 10 | { 11 | const auto e = static_cast(state.range(0)); 12 | 13 | ethash::get_global_epoch_context(0); 14 | 15 | for (auto _ : state) 16 | { 17 | auto& ctx = ethash::get_global_epoch_context(e); 18 | benchmark::DoNotOptimize(&ctx); 19 | } 20 | } 21 | BENCHMARK(get_epoch_context)->Arg(0)->ThreadRange(1, 8); 22 | -------------------------------------------------------------------------------- /DXEth/ethash/test/benchmarks/progpow_benchmarks.cpp: -------------------------------------------------------------------------------- 1 | // Ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #include "../unittests/helpers.hpp" 6 | 7 | #include 8 | 9 | #include 10 | 11 | static void progpow_hash(benchmark::State& state) 12 | { 13 | // Get block number in millions. 14 | int block_number = static_cast(state.range(0)) * 1000000; 15 | uint64_t nonce = 1; 16 | 17 | const auto& ctx = ethash::get_global_epoch_context(ethash::get_epoch_number(block_number)); 18 | 19 | for (auto _ : state) 20 | progpow::hash(ctx, block_number++, {}, nonce++); 21 | } 22 | BENCHMARK(progpow_hash)->Unit(benchmark::kMicrosecond)->Arg(0)->Arg(10); 23 | -------------------------------------------------------------------------------- /DXEth/ethash/test/benchmarks/threadsync_benchmarks.cpp: -------------------------------------------------------------------------------- 1 | // Ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #include "threadsync_utils.hpp" 6 | 7 | #include 8 | 9 | 10 | template 11 | static void threadsync_fake_cache(benchmark::State& state) 12 | { 13 | int id = 17; 14 | int value = 500; 15 | verify_fn(id, value); 16 | 17 | for (auto _ : state) 18 | { 19 | auto handle = verify_fn(id, value); 20 | benchmark::DoNotOptimize(handle); 21 | } 22 | } 23 | BENCHMARK_TEMPLATE(threadsync_fake_cache, verify_fake_cache_nosync)->ThreadRange(1, 8); 24 | BENCHMARK_TEMPLATE(threadsync_fake_cache, verify_fake_cache_mutex)->ThreadRange(1, 8); 25 | BENCHMARK_TEMPLATE(threadsync_fake_cache, verify_fake_cache_thread_local)->ThreadRange(1, 8); 26 | -------------------------------------------------------------------------------- /DXEth/ethash/test/benchmarks/threadsync_utils.cpp: -------------------------------------------------------------------------------- 1 | // Ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #include "threadsync_utils.hpp" 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | struct fake_cache : std::enable_shared_from_this 12 | { 13 | int id = -1; 14 | int payload = 0; 15 | }; 16 | 17 | std::shared_ptr build_fake_cache(int id) noexcept 18 | { 19 | auto handle = std::make_shared(); 20 | handle->id = id; 21 | handle->payload = id * id; 22 | return handle; 23 | } 24 | 25 | std::shared_ptr build_sentinel() noexcept 26 | { 27 | static thread_local fake_cache sentinel; 28 | return std::shared_ptr(&sentinel, [](fake_cache*){}); 29 | } 30 | 31 | std::shared_ptr build_sentinel2() noexcept 32 | { 33 | return std::make_shared(); 34 | } 35 | 36 | namespace 37 | { 38 | std::shared_ptr handle_nosync = build_sentinel(); 39 | } 40 | 41 | bool verify_fake_cache_nosync(int id, int value) noexcept 42 | { 43 | if (handle_nosync->id != id) 44 | handle_nosync = build_fake_cache(id); 45 | return handle_nosync->payload == value; 46 | } 47 | 48 | namespace 49 | { 50 | std::shared_ptr handle_mutex; 51 | std::mutex mutex; 52 | } // namespace 53 | 54 | bool verify_fake_cache_mutex(int id, int value) noexcept 55 | { 56 | std::lock_guard lock{mutex}; 57 | 58 | if (!handle_mutex || handle_mutex->id != id) 59 | handle_mutex = build_fake_cache(id); 60 | return handle_mutex->payload == value; 61 | } 62 | 63 | namespace 64 | { 65 | thread_local std::shared_ptr handle_thread_local = build_sentinel(); 66 | std::mutex build_mutex; 67 | } // namespace 68 | 69 | bool verify_fake_cache_thread_local(int id, int value) noexcept 70 | { 71 | if (handle_thread_local->id != id) 72 | { 73 | std::lock_guard lock{build_mutex}; 74 | handle_thread_local = build_fake_cache(id); 75 | } 76 | return handle_thread_local->payload == value; 77 | } 78 | -------------------------------------------------------------------------------- /DXEth/ethash/test/benchmarks/threadsync_utils.hpp: -------------------------------------------------------------------------------- 1 | // Ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | struct fake_cache; 10 | 11 | std::shared_ptr build_fake_cache(int id) noexcept; 12 | 13 | bool verify_fake_cache_nosync(int id, int value) noexcept; 14 | 15 | bool verify_fake_cache_mutex(int id, int value) noexcept; 16 | 17 | bool verify_fake_cache_thread_local(int id, int value) noexcept; 18 | -------------------------------------------------------------------------------- /DXEth/ethash/test/fakeminer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2018-2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | find_package(Threads) 6 | 7 | add_executable(ethash-fakeminer fakeminer.cpp) 8 | target_link_libraries(ethash-fakeminer PRIVATE ethash::ethash Threads::Threads) 9 | set_target_properties(ethash-fakeminer PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) 10 | -------------------------------------------------------------------------------- /DXEth/ethash/test/fuzzing/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2018-2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | string(REPLACE "-fsanitize=fuzzer-no-link" "-fsanitize=fuzzer" CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS}) 6 | 7 | add_executable(keccak-fuzzer keccak_fuzzer.cpp keccak_tiny.c keccak_rhash.c) 8 | target_link_libraries(keccak-fuzzer PRIVATE ethash::ethash) 9 | -------------------------------------------------------------------------------- /DXEth/ethash/test/fuzzing/keccak_fuzzer.cpp: -------------------------------------------------------------------------------- 1 | // Ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | #include 11 | 12 | extern "C" { 13 | 14 | typedef struct sha3_ctx 15 | { 16 | uint64_t hash[25]; 17 | uint64_t message[24]; 18 | unsigned rest; 19 | unsigned block_size; 20 | } sha3_ctx; 21 | 22 | void rhash_sha3_256_init(sha3_ctx* ctx) noexcept; 23 | void rhash_sha3_512_init(sha3_ctx* ctx) noexcept; 24 | void rhash_sha3_update(sha3_ctx* ctx, const unsigned char* msg, size_t size) noexcept; 25 | void rhash_keccak_final(sha3_ctx* ctx, unsigned char* result) noexcept; 26 | 27 | int keccak_tiny_256(uint8_t* out, size_t outlen, const uint8_t* in, size_t inlen) noexcept; 28 | int keccak_tiny_512(uint8_t* out, size_t outlen, const uint8_t* in, size_t inlen) noexcept; 29 | } 30 | 31 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t* input, size_t size) 32 | { 33 | // ethash: 34 | 35 | const auto h256_ethash = ethash_keccak256(input, size); 36 | const auto h512_ethash = ethash_keccak512(input, size); 37 | 38 | 39 | // tiny: 40 | 41 | ethash_hash256 h256_tiny; 42 | int r = keccak_tiny_256(h256_tiny.bytes, sizeof(h256_tiny), input, size); 43 | if (r != 0) 44 | __builtin_trap(); 45 | 46 | ethash_hash512 h512_tiny; 47 | r = keccak_tiny_512(h512_tiny.bytes, sizeof(h512_tiny), input, size); 48 | if (r != 0) 49 | __builtin_trap(); 50 | 51 | 52 | // rhash: 53 | 54 | sha3_ctx ctx; 55 | 56 | ethash_hash256 h256_rhash; 57 | rhash_sha3_256_init(&ctx); 58 | rhash_sha3_update(&ctx, input, size); 59 | rhash_keccak_final(&ctx, h256_rhash.bytes); 60 | 61 | ethash_hash512 h512_rhash; 62 | rhash_sha3_512_init(&ctx); 63 | rhash_sha3_update(&ctx, input, size); 64 | rhash_keccak_final(&ctx, h512_rhash.bytes); 65 | 66 | 67 | // Compare. 68 | 69 | if (std::memcmp(&h256_ethash, &h256_tiny, sizeof(h256_ethash)) != 0) 70 | __builtin_trap(); 71 | 72 | if (std::memcmp(&h256_ethash, &h256_rhash, sizeof(h256_ethash)) != 0) 73 | { 74 | std::cerr << "Here!"; 75 | __builtin_trap(); 76 | } 77 | 78 | 79 | if (std::memcmp(&h512_ethash, &h512_tiny, sizeof(h512_ethash)) != 0) 80 | __builtin_trap(); 81 | 82 | if (std::memcmp(&h512_ethash, &h512_rhash, sizeof(h512_ethash)) != 0) 83 | __builtin_trap(); 84 | 85 | return 0; 86 | } 87 | -------------------------------------------------------------------------------- /DXEth/ethash/test/integration/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2018-2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | add_subdirectory(compilation) 6 | -------------------------------------------------------------------------------- /DXEth/ethash/test/integration/cmake-config/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright 2018-2019 Pawel Bylica. 2 | # Licensed under the Apache License, Version 2.0. 3 | 4 | cmake_minimum_required(VERSION 3.5) 5 | 6 | project(ethash-cmake-config-test) 7 | 8 | find_package(ethash CONFIG REQUIRED) 9 | 10 | add_executable(ethash-cmake-config-test cmake_config_test.cpp) 11 | target_link_libraries(ethash-cmake-config-test ethash::ethash) 12 | set_target_properties(ethash-cmake-config-test PROPERTIES CXX_STANDARD 11 CXX_EXTENSIONS OFF) 13 | -------------------------------------------------------------------------------- /DXEth/ethash/test/integration/cmake-config/cmake_config_test.cpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #include 6 | #include 7 | 8 | int main() 9 | { 10 | static_assert(sizeof(ethash::version) >= 6, "incorrect ethash::version"); 11 | 12 | uint8_t seed_bytes[32] = {0}; 13 | ethash::hash256 seed = ethash::hash256_from_bytes(seed_bytes); 14 | return ethash::find_epoch_number(seed); 15 | } 16 | -------------------------------------------------------------------------------- /DXEth/ethash/test/integration/compilation/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2018-2020 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | file(GLOB c_sources ${PROJECT_SOURCE_DIR}/lib/ethash/*.c) 6 | 7 | foreach(c_std 0 99 11) 8 | set(target test-compile-c${c_std}) 9 | add_library(${target} STATIC ethash_header_test.c ${c_sources}) 10 | target_link_libraries(${target} PRIVATE ethash::ethash) 11 | if(c_std) 12 | set_target_properties(${target} PROPERTIES C_STANDARD ${c_std}) 13 | endif() 14 | set_target_properties(${target} PROPERTIES C_EXTENSIONS OFF) 15 | endforeach() 16 | -------------------------------------------------------------------------------- /DXEth/ethash/test/integration/compilation/ethash_header_test.c: -------------------------------------------------------------------------------- 1 | /* ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | * Copyright 2018-2019 Pawel Bylica. 3 | * Licensed under the Apache License, Version 2.0. 4 | */ 5 | 6 | #include 7 | 8 | int test() 9 | { 10 | int sum = 0; 11 | sum += ETHASH_EPOCH_LENGTH; 12 | sum += ETHASH_LIGHT_CACHE_ITEM_SIZE; 13 | sum += ETHASH_FULL_DATASET_ITEM_SIZE; 14 | return sum; 15 | } 16 | -------------------------------------------------------------------------------- /DXEth/ethash/test/tools/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2018-2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | add_executable(kiss99-tester kiss99_tester.cpp) 6 | target_link_libraries(kiss99-tester PRIVATE ethash::ethash) 7 | target_include_directories(kiss99-tester PRIVATE ${ETHASH_PRIVATE_INCLUDE_DIR}) 8 | set_target_properties(kiss99-tester PROPERTIES RUNTIME_OUTPUT_DIRECTORY ..) 9 | -------------------------------------------------------------------------------- /DXEth/ethash/test/tools/kiss99_tester.cpp: -------------------------------------------------------------------------------- 1 | // Ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | int main() 10 | { 11 | constexpr uint32_t mod = 11; 12 | uint64_t histogram[mod] = {}; 13 | kiss99 rng; 14 | 15 | constexpr uint64_t output_interval = 1000000000; 16 | uint64_t output_point = output_interval; 17 | 18 | constexpr double expected = double(1) / mod; 19 | 20 | for (uint64_t i = 0; i <= uint64_t(-1); ++i) 21 | { 22 | auto x = rng() % mod; 23 | ++histogram[x]; 24 | 25 | if (i == output_point) 26 | { 27 | std::cout << std::right << std::setw(4) << (i / output_interval) 28 | << "G:" << std::fixed; 29 | 30 | // // Probabilities: 31 | // for (auto h : histogram) 32 | // std::cout << ' ' << std::setw(9) << (double(h) / double(i)); 33 | // std::cout << '\n'; 34 | 35 | // Errors: 36 | for (auto h : histogram) 37 | std::cout << ' ' << std::setw(10) << std::setprecision(6) 38 | << (double(h) / double(i) - expected) / expected * 10 << '%'; 39 | std::cout << '\n'; 40 | 41 | output_point += output_interval; 42 | } 43 | } 44 | 45 | return 0; 46 | } -------------------------------------------------------------------------------- /DXEth/ethash/test/unittests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | # Copyright 2018-2019 Pawel Bylica. 3 | # Licensed under the Apache License, Version 2.0. 4 | 5 | hunter_add_package(GTest) 6 | find_package(GTest CONFIG REQUIRED) 7 | 8 | add_executable( 9 | ethash-test 10 | helpers.hpp 11 | test_bit_manipulation.cpp 12 | test_cases.hpp 13 | test_ethash.cpp 14 | test_keccak.cpp 15 | test_kiss.cpp 16 | test_managed.cpp 17 | test_primes.cpp 18 | test_progpow.cpp 19 | test_version.cpp 20 | ) 21 | 22 | set_source_files_properties(test_version.cpp PROPERTIES COMPILE_DEFINITIONS TEST_PROJECT_VERSION="${PROJECT_VERSION}") 23 | 24 | target_link_libraries(ethash-test PRIVATE ethash::ethash GTest::gtest_main) 25 | target_include_directories(ethash-test PRIVATE ${ETHASH_PRIVATE_INCLUDE_DIR}) 26 | set_target_properties(ethash-test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ..) 27 | 28 | if(SANITIZE AND CMAKE_SYSTEM_NAME STREQUAL Linux AND CMAKE_CXX_FLAGS MATCHES -m32) 29 | # Workaround for linking with phread when building for 32-bit and with sanitizer. 30 | target_link_libraries(ethash-test PRIVATE pthread) 31 | endif() 32 | -------------------------------------------------------------------------------- /DXEth/ethash/test/unittests/helpers.hpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | #include 10 | 11 | template 12 | inline std::string to_hex(const Hash& h) 13 | { 14 | static const auto hex_chars = "0123456789abcdef"; 15 | std::string str; 16 | str.reserve(sizeof(h) * 2); 17 | for (auto b : h.bytes) 18 | { 19 | str.push_back(hex_chars[uint8_t(b) >> 4]); 20 | str.push_back(hex_chars[uint8_t(b) & 0xf]); 21 | } 22 | return str; 23 | } 24 | 25 | inline ethash::hash256 to_hash256(const std::string& hex) 26 | { 27 | auto parse_digit = [](char d) -> int { return d <= '9' ? (d - '0') : (d - 'a' + 10); }; 28 | 29 | ethash::hash256 hash = {}; 30 | for (size_t i = 1; i < hex.size(); i += 2) 31 | { 32 | int h = parse_digit(hex[i - 1]); 33 | int l = parse_digit(hex[i]); 34 | hash.bytes[i / 2] = uint8_t((h << 4) | l); 35 | } 36 | return hash; 37 | } 38 | 39 | /// Comparison operator for hash256 to be used in unit tests. 40 | inline bool operator==(const ethash::hash256& a, const ethash::hash256& b) noexcept 41 | { 42 | return std::memcmp(a.bytes, b.bytes, sizeof(a)) == 0; 43 | } 44 | 45 | inline bool operator!=(const ethash::hash256& a, const ethash::hash256& b) noexcept 46 | { 47 | return !(a == b); 48 | } 49 | 50 | inline const ethash::epoch_context& get_ethash_epoch_context_0() noexcept 51 | { 52 | static ethash::epoch_context_ptr context = ethash::create_epoch_context(0); 53 | return *context; 54 | } 55 | -------------------------------------------------------------------------------- /DXEth/ethash/test/unittests/test_bit_manipulation.cpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #include 6 | 7 | #include 8 | 9 | TEST(bit_manipulation, rotl32) 10 | { 11 | EXPECT_EQ(rotl32(0, 0), 0u); 12 | EXPECT_EQ(rotl32(0, 4321), 0u); 13 | 14 | EXPECT_EQ(rotl32(1, 0), 1u); 15 | EXPECT_EQ(rotl32(1, 1), 2u); 16 | EXPECT_EQ(rotl32(1, 2), 4u); 17 | EXPECT_EQ(rotl32(1, 31), 1u << 31u); 18 | EXPECT_EQ(rotl32(1, 32), 1u); 19 | EXPECT_EQ(rotl32(1, 33), 2u); 20 | 21 | EXPECT_EQ(rotl32(3, 0), 3u); 22 | EXPECT_EQ(rotl32(3, 1), 6u); 23 | EXPECT_EQ(rotl32(3, 30), 3u << 30u); 24 | EXPECT_EQ(rotl32(3, 31), (1u << 31u) | 1u); 25 | EXPECT_EQ(rotl32(3, 32), 3u); 26 | EXPECT_EQ(rotl32(3, 33), 6u); 27 | } 28 | 29 | TEST(bit_manipulation, rotr32) 30 | { 31 | EXPECT_EQ(rotr32(0, 0), 0u); 32 | EXPECT_EQ(rotr32(0, 4321), 0u); 33 | 34 | EXPECT_EQ(rotr32(1, 0), 1u); 35 | EXPECT_EQ(rotr32(1, 1), 1u << 31u); 36 | EXPECT_EQ(rotr32(1, 2), 1u << 30u); 37 | EXPECT_EQ(rotr32(1, 30), 1u << 2u); 38 | EXPECT_EQ(rotr32(1, 31), 1u << 1u); 39 | EXPECT_EQ(rotr32(1, 32), 1u); 40 | EXPECT_EQ(rotr32(1, 33), 1u << 31u); 41 | 42 | EXPECT_EQ(rotr32(3, 0), 3u); 43 | EXPECT_EQ(rotr32(3, 1), (1u << 31u) | 1u); 44 | EXPECT_EQ(rotr32(3, 2), 3u << 30u); 45 | EXPECT_EQ(rotr32(3, 30), 12u); 46 | EXPECT_EQ(rotr32(3, 31), 6u); 47 | EXPECT_EQ(rotr32(3, 32), 3u); 48 | EXPECT_EQ(rotr32(3, 33), (1u << 31u) | 1u); 49 | } 50 | 51 | TEST(bit_manipulation, clz32) 52 | { 53 | EXPECT_EQ(clz32(0), 32u); 54 | EXPECT_EQ(clz32(1), 31u); 55 | EXPECT_EQ(clz32(1u << 1u), 30u); 56 | EXPECT_EQ(clz32(1u << 2u), 29u); 57 | EXPECT_EQ(clz32(1u << 30u), 1u); 58 | EXPECT_EQ(clz32(1u << 31u), 0u); 59 | EXPECT_EQ(clz32(4321), 19u); 60 | } 61 | 62 | TEST(bit_manipulation, popcount32) 63 | { 64 | EXPECT_EQ(popcount32(0), 0u); 65 | EXPECT_EQ(popcount32(1), 1u); 66 | EXPECT_EQ(popcount32(1u << 16u), 1u); 67 | EXPECT_EQ(popcount32(3), 2u); 68 | EXPECT_EQ(popcount32(3u << 17u), 2u); 69 | EXPECT_EQ(popcount32(9u << 18u), 2u); 70 | EXPECT_EQ(popcount32(~0u), 32u); 71 | } 72 | 73 | TEST(bit_manipulation, mul_hi32) 74 | { 75 | EXPECT_EQ(mul_hi32(0, 0), 0u); 76 | EXPECT_EQ(mul_hi32(0, 1), 0u); 77 | EXPECT_EQ(mul_hi32(1, 0), 0u); 78 | EXPECT_EQ(mul_hi32(1, 1), 0u); 79 | 80 | EXPECT_EQ(mul_hi32(1u << 16u, 1u << 16u), 1u); 81 | EXPECT_EQ(mul_hi32(1u << 16u, (1u << 16u) + 1u), 1u); 82 | 83 | EXPECT_EQ(mul_hi32(1u << 30u, 1u << 30u), 1u << 28u); 84 | EXPECT_EQ(mul_hi32(1u << 31u, 1u << 31u), 1u << 30u); 85 | 86 | EXPECT_EQ(mul_hi32(~0u, ~0u), ~0u - 1u); 87 | } 88 | -------------------------------------------------------------------------------- /DXEth/ethash/test/unittests/test_cases.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2018-2019 Pawel Bylica. 2 | // Licensed under the Apache License, Version 2.0. 3 | 4 | /// @file 5 | /// Shared test cases. 6 | 7 | #pragma once 8 | 9 | // Put in anonymous namespace to allow be include in multiple files 10 | // but also make iteration over test cases easy with range-based for loop. 11 | namespace 12 | { 13 | struct hash_test_case 14 | { 15 | int block_number; 16 | const char* header_hash_hex; 17 | const char* nonce_hex; 18 | const char* mix_hash_hex; 19 | const char* final_hash_hex; 20 | }; 21 | 22 | hash_test_case hash_test_cases[] = { 23 | { 24 | 0, 25 | "2a8de2adf89af77358250bf908bf04ba94a6e8c3ba87775564a41d269a05e4ce", 26 | "4242424242424242", 27 | "58f759ede17a706c93f13030328bcea40c1d1341fb26f2facd21ceb0dae57017", 28 | "dd47fd2d98db51078356852d7c4014e6a5d6c387c35f40e2875b74a256ed7906", 29 | }, 30 | { 31 | 2, 32 | "100cbec5e5ef82991290d0d93d758f19082e71f234cf479192a8b94df6da6bfe", 33 | "307692cf71b12f6d", 34 | "e55d02c555a7969361cf74a9ec6211d8c14e4517930a00442f171bdb1698d175", 35 | "ab9b13423cface72cbec8424221651bc2e384ef0f7a560e038fc68c8d8684829", 36 | }, 37 | { 38 | 2683077, 39 | "0313d03c5ed78694c90ecb3d04190b82d5b222c75ba4cab83383dde4d11ed512", 40 | "8c5eaec000788d41", 41 | "93e85c97b34ccd8091e09ddb513fdc9e680fa8898d4a0737205e60af710a3dcb", 42 | "00000000000204882a6213f68fe89bc368df25c1ad999f82532a7433e99bc48e", 43 | }, 44 | { 45 | 5000000, 46 | "bc544c2baba832600013bd5d1983f592e9557d04b0fb5ef7a100434a5fc8d52a", 47 | "4617a20003ba3f25", 48 | "94cd4e844619ee20989578276a0a9046877d569d37ba076bf2e8e34f76189dea", 49 | "0000000000001a5b18ae31b7417b7c045bc6dd78cc3b694c4bebfaefef6b3c56", 50 | }, 51 | { 52 | 5000001, 53 | "2cd14041cfc3bd13064cfd58e26c0bddf1e97a4202c4b8076444a7cd4515f8c3", 54 | "1af47f2007922384", 55 | "46cb1268ac6b218eb01b9bd46f1533561d085620c9bfc23eadb8ab106f84b2d8", 56 | "0000000000000a4230cfc483a3f739a5101192c3d4f9c8314f4508be24c28257", 57 | }, 58 | { 59 | 5000002, 60 | "9e79bced19062baf7c47e516ad3a1bd779222404d05b4205def30a13c7d87b5b", 61 | "c9a044201dd998f2", 62 | "028a19d6dcf0975972285f71a23fe3a468886ad24cc63f969158d427556d6bb5", 63 | "0000000000000eec80fbc4c472507b6c212c4f216043318f3fb3e696a0e80b06", 64 | }, 65 | { 66 | 5306861, 67 | "53a005f209a4dc013f022a5078c6b38ced76e767a30367ff64725f23ec652a9f", 68 | "d337f82001e992c5", 69 | "26c64f063dac85ae3585526b446be6754faf044876aa3e20f770bea567e04d1d", 70 | "00000000000003f1554d8071ff0903268fcb70f30f4af3bf7ec7dc69cdf509f3", 71 | }, 72 | }; 73 | } // namespace -------------------------------------------------------------------------------- /DXEth/ethash/test/unittests/test_kiss.cpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2018-2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #include 6 | #include 7 | 8 | #include 9 | 10 | 11 | // The KISS99 reference implementation from http://www.cse.yorku.ca/~oz/marsaglia-rng.html. 12 | #define znew (z = 36969 * (z & 65535) + (z >> 16)) 13 | #define wnew (w = 18000 * (w & 65535) + (w >> 16)) 14 | #define MWC ((znew << 16) + wnew) 15 | #define SHR3 (jsr ^= (jsr << 17), jsr ^= (jsr >> 13), jsr ^= (jsr << 5)) 16 | #define CONG (jcong = 69069 * jcong + 1234567) 17 | #define KISS ((MWC ^ CONG) + SHR3) 18 | static unsigned z = 362436069, w = 521288629, jsr = 123456789, jcong = 380116160; 19 | 20 | NO_SANITIZE("unsigned-integer-overflow") 21 | static unsigned kiss_reference() 22 | { 23 | return KISS; 24 | } 25 | 26 | 27 | TEST(kiss99, generate) 28 | { 29 | kiss99 rng; 30 | 31 | EXPECT_EQ(rng(), 769445856u); 32 | EXPECT_EQ(rng(), 742012328u); 33 | EXPECT_EQ(rng(), 2121196314u); 34 | EXPECT_EQ(rng(), 2805620942u); 35 | 36 | for (int i = 0; i < 100000 - 5; ++i) 37 | rng(); 38 | 39 | // The 100000th number. 40 | EXPECT_EQ(rng(), 941074834u); 41 | } 42 | 43 | TEST(kiss99, compare_with_reference) 44 | { 45 | kiss99 rng; 46 | 47 | for (int i = 0; i < 100000; ++i) 48 | EXPECT_EQ(rng(), kiss_reference()); 49 | } -------------------------------------------------------------------------------- /DXEth/ethash/test/unittests/test_version.cpp: -------------------------------------------------------------------------------- 1 | // ethash: C/C++ implementation of Ethash, the Ethereum Proof of Work algorithm. 2 | // Copyright 2019 Pawel Bylica. 3 | // Licensed under the Apache License, Version 2.0. 4 | 5 | #include 6 | 7 | #include 8 | 9 | TEST(libethash, version) 10 | { 11 | static_assert(ethash::version[0] != 0, "incorrect ethash::version"); 12 | 13 | EXPECT_EQ(ETHASH_VERSION, TEST_PROJECT_VERSION); 14 | EXPECT_EQ(ethash::version, TEST_PROJECT_VERSION); 15 | } 16 | -------------------------------------------------------------------------------- /DXEth/keccak.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | #include 8 | #include 9 | 10 | typedef struct keccak_ctx keccak_ctx_t; 11 | 12 | keccak_ctx_t* keccak_init(int mdlen); 13 | int keccak_update(keccak_ctx_t* c, const void* data, size_t len); 14 | int keccak_final(void* md, keccak_ctx_t* c); 15 | void keccak_free(keccak_ctx_t* c); 16 | 17 | void* keccak(const void* in, size_t inlen, void* md, int mdlen); 18 | 19 | #ifdef __cplusplus 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /DXEth/libdevcore/Common.h: -------------------------------------------------------------------------------- 1 | // ethminer -- Ethereum miner with OpenCL, CUDA and stratum support. 2 | // Copyright 2018 ethminer Authors. 3 | // Licensed under GNU General Public License, Version 3. See the LICENSE file. 4 | 5 | /// @file 6 | /// Very common stuff (i.e. that every other header needs except vector_ref.h). 7 | 8 | #pragma once 9 | 10 | #include "vector_ref.h" 11 | 12 | #include 13 | #include 14 | 15 | #include 16 | 17 | using byte = uint8_t; 18 | 19 | namespace dev 20 | { 21 | // Binary data types. 22 | using bytes = std::vector; 23 | using bytesRef = vector_ref; 24 | using bytesConstRef = vector_ref; 25 | 26 | // Numeric types. 27 | using bigint = boost::multiprecision::number>; 28 | using u64 = boost::multiprecision::number>; 30 | using u128 = boost::multiprecision::number>; 32 | using u256 = boost::multiprecision::number>; 34 | using u160 = boost::multiprecision::number>; 36 | using u512 = boost::multiprecision::number>; 38 | 39 | // Null/Invalid values for convenience. 40 | static const u256 Invalid256 = ~(u256)0; 41 | 42 | /// Converts arbitrary value to string representation using std::stringstream. 43 | template 44 | std::string toString(_T const& _t) 45 | { 46 | std::ostringstream o; 47 | o << _t; 48 | return o.str(); 49 | } 50 | 51 | } // namespace dev 52 | -------------------------------------------------------------------------------- /DXEth/libdevcore/Exceptions.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of ethminer. 3 | 4 | ethminer is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or 7 | (at your option) any later version. 8 | 9 | ethminer is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with ethminer. If not, see . 16 | */ 17 | /** @file Exceptions.h 18 | * @author Gav Wood 19 | * @date 2014 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | #include 26 | 27 | #include 28 | #include 29 | 30 | #include "CommonData.h" 31 | #include "FixedHash.h" 32 | 33 | namespace dev 34 | { 35 | /// Base class for all exceptions. 36 | struct Exception : virtual std::exception, virtual boost::exception 37 | { 38 | Exception(const std::string& _message = std::string()) : m_message(std::move(_message)) {} 39 | const char* what() const noexcept override 40 | { 41 | return m_message.empty() ? std::exception::what() : m_message.c_str(); 42 | } 43 | 44 | private: 45 | std::string m_message; 46 | }; 47 | 48 | #define DEV_SIMPLE_EXCEPTION(X) \ 49 | struct X : virtual Exception \ 50 | { \ 51 | const char* what() const noexcept override { return #X; } \ 52 | } 53 | 54 | 55 | DEV_SIMPLE_EXCEPTION(BadHexCharacter); 56 | 57 | struct ExternalFunctionFailure : virtual Exception 58 | { 59 | public: 60 | ExternalFunctionFailure(const std::string& _f) : Exception("Function " + _f + "() failed.") {} 61 | }; 62 | 63 | // error information to be added to exceptions 64 | using errinfo_invalidSymbol = boost::error_info; 65 | using errinfo_comment = boost::error_info; 66 | using errinfo_required = boost::error_info; 67 | using errinfo_got = boost::error_info; 68 | using RequirementError = boost::tuple; 69 | 70 | } // namespace dev 71 | -------------------------------------------------------------------------------- /DXEth/libdevcore/FixedHash.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of ethminer. 3 | 4 | ethminer is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or 7 | (at your option) any later version. 8 | 9 | ethminer is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with ethminer. If not, see . 16 | */ 17 | /** @file FixedHash.cpp 18 | * @author Gav Wood 19 | * @date 2014 20 | */ 21 | #include"pch.h" 22 | #include 23 | 24 | #include "FixedHash.h" 25 | 26 | using namespace std; 27 | using namespace dev; 28 | 29 | //std::random_device dev::s_fixedHashEngine; 30 | -------------------------------------------------------------------------------- /DXEth/libdevcore/Guards.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of ethminer. 3 | 4 | ethminer is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or 7 | (at your option) any later version. 8 | 9 | ethminer is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with ethminer. If not, see . 16 | */ 17 | /** @file Guards.h 18 | * @author Gav Wood 19 | * @date 2014 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | #include 26 | 27 | namespace dev 28 | { 29 | using Mutex = std::mutex; 30 | using Guard = std::lock_guard; 31 | using UniqueGuard = std::unique_lock; 32 | 33 | template 34 | struct GenericGuardBool : GuardType 35 | { 36 | GenericGuardBool(MutexType& _m) : GuardType(_m) {} 37 | bool b = true; 38 | }; 39 | 40 | /** @brief Simple block guard. 41 | * The expression/block following is guarded though the given mutex. 42 | * Usage: 43 | * @code 44 | * Mutex m; 45 | * unsigned d; 46 | * ... 47 | * ETH_(m) d = 1; 48 | * ... 49 | * ETH_(m) { for (auto d = 10; d > 0; --d) foo(d); d = 0; } 50 | * @endcode 51 | * 52 | * There are several variants of this basic mechanism for different Mutex types and Guards. 53 | * 54 | * There is also the UNGUARD variant which allows an unguarded expression/block to exist within a 55 | * guarded expression. eg: 56 | * 57 | * @code 58 | * Mutex m; 59 | * int d; 60 | * ... 61 | * ETH_GUARDED(m) 62 | * { 63 | * for (auto d = 50; d > 25; --d) 64 | * foo(d); 65 | * ETH_UNGUARDED(m) 66 | * bar(); 67 | * for (; d > 0; --d) 68 | * foo(d); 69 | * } 70 | * @endcode 71 | */ 72 | 73 | #define DEV_GUARDED(MUTEX) \ 74 | for (GenericGuardBool __eth_l(MUTEX); __eth_l.b; __eth_l.b = false) 75 | 76 | } // namespace dev 77 | -------------------------------------------------------------------------------- /DXEth/libdevcore/Terminal.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace dev 4 | { 5 | namespace con 6 | { 7 | #define EthReset "\x1b[0m" // Text Reset 8 | 9 | // Regular Colors 10 | #define EthBlack "\x1b[30m" // Black 11 | #define EthCoal "\x1b[90m" // Black 12 | #define EthGray "\x1b[37m" // White 13 | #define EthWhite "\x1b[97m" // White 14 | #define EthMaroon "\x1b[31m" // Red 15 | #define EthRed "\x1b[91m" // Red 16 | #define EthGreen "\x1b[32m" // Green 17 | #define EthLime "\x1b[92m" // Green 18 | #define EthOrange "\x1b[33m" // Yellow 19 | #define EthYellow "\x1b[93m" // Yellow 20 | #define EthNavy "\x1b[34m" // Blue 21 | #define EthBlue "\x1b[94m" // Blue 22 | #define EthViolet "\x1b[35m" // Purple 23 | #define EthPurple "\x1b[95m" // Purple 24 | #define EthTeal "\x1b[36m" // Cyan 25 | #define EthCyan "\x1b[96m" // Cyan 26 | 27 | #define EthBlackBold "\x1b[1;30m" // Black 28 | #define EthCoalBold "\x1b[1;90m" // Black 29 | #define EthGrayBold "\x1b[1;37m" // White 30 | #define EthWhiteBold "\x1b[1;97m" // White 31 | #define EthMaroonBold "\x1b[1;31m" // Red 32 | #define EthRedBold "\x1b[1;91m" // Red 33 | #define EthGreenBold "\x1b[1;32m" // Green 34 | #define EthLimeBold "\x1b[1;92m" // Green 35 | #define EthOrangeBold "\x1b[1;33m" // Yellow 36 | #define EthYellowBold "\x1b[1;93m" // Yellow 37 | #define EthNavyBold "\x1b[1;34m" // Blue 38 | #define EthBlueBold "\x1b[1;94m" // Blue 39 | #define EthVioletBold "\x1b[1;35m" // Purple 40 | #define EthPurpleBold "\x1b[1;95m" // Purple 41 | #define EthTealBold "\x1b[1;36m" // Cyan 42 | #define EthCyanBold "\x1b[1;96m" // Cyan 43 | 44 | // Background 45 | #define EthOnBlack "\x1b[40m" // Black 46 | #define EthOnCoal "\x1b[100m" // Black 47 | #define EthOnGray "\x1b[47m" // White 48 | #define EthOnWhite "\x1b[107m" // White 49 | #define EthOnMaroon "\x1b[41m" // Red 50 | #define EthOnRed "\x1b[101m" // Red 51 | #define EthOnGreen "\x1b[42m" // Green 52 | #define EthOnLime "\x1b[102m" // Green 53 | #define EthOnOrange "\x1b[43m" // Yellow 54 | #define EthOnYellow "\x1b[103m" // Yellow 55 | #define EthOnNavy "\x1b[44m" // Blue 56 | #define EthOnBlue "\x1b[104m" // Blue 57 | #define EthOnViolet "\x1b[45m" // Purple 58 | #define EthOnPurple "\x1b[105m" // Purple 59 | #define EthOnTeal "\x1b[46m" // Cyan 60 | #define EthOnCyan "\x1b[106m" // Cyan 61 | 62 | // Underline 63 | #define EthBlackUnder "\x1b[4;30m" // Black 64 | #define EthGrayUnder "\x1b[4;37m" // White 65 | #define EthMaroonUnder "\x1b[4;31m" // Red 66 | #define EthGreenUnder "\x1b[4;32m" // Green 67 | #define EthOrangeUnder "\x1b[4;33m" // Yellow 68 | #define EthNavyUnder "\x1b[4;34m" // Blue 69 | #define EthVioletUnder "\x1b[4;35m" // Purple 70 | #define EthTealUnder "\x1b[4;36m" // Cyan 71 | 72 | } // namespace con 73 | 74 | } // namespace dev 75 | -------------------------------------------------------------------------------- /DXEth/libdevcore/Worker.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of ethminer. 3 | 4 | ethminer is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or 7 | (at your option) any later version. 8 | 9 | ethminer is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with ethminer. If not, see . 16 | */ 17 | /** @file Worker.h 18 | * @author Gav Wood 19 | * @date 2014 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | 30 | #include "Guards.h" 31 | 32 | extern bool g_exitOnError; 33 | 34 | namespace dev 35 | { 36 | enum class WorkerState 37 | { 38 | Starting, 39 | Started, 40 | Stopping, 41 | Stopped, 42 | Killing 43 | }; 44 | 45 | class Worker 46 | { 47 | public: 48 | Worker(std::string _name) : m_name(std::move(_name)) {} 49 | 50 | Worker(Worker const&) = delete; 51 | Worker& operator=(Worker const&) = delete; 52 | 53 | virtual ~Worker(); 54 | 55 | /// Starts worker thread; causes startedWorking() to be called. 56 | void startWorking(); 57 | 58 | /// Triggers worker thread it should stop 59 | void triggerStopWorking(); 60 | 61 | /// Stop worker thread; causes call to stopWorking() and waits till thread has stopped. 62 | void stopWorking(); 63 | 64 | /// Whether or not this worker should stop 65 | bool shouldStop() const { return m_state != WorkerState::Started; } 66 | 67 | private: 68 | virtual void workLoop() = 0; 69 | 70 | std::string m_name; 71 | 72 | mutable Mutex x_work; ///< Lock for the network existence. 73 | std::unique_ptr m_work; ///< The network thread. 74 | std::atomic m_state = {WorkerState::Starting}; 75 | }; 76 | 77 | } // namespace dev 78 | -------------------------------------------------------------------------------- /DXEth/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /DXEth/pch.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /DXEth/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #define NOMINMAX 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | -------------------------------------------------------------------------------- /DXEth/readme.txt: -------------------------------------------------------------------------------- 1 | ======================================================================== 2 | C++/WinRT DXEth Project Overview 3 | ======================================================================== 4 | 5 | 6 | This project demonstrates how to get started writing XAML apps directly 7 | with standard C++, using the C++/WinRT SDK component and XAML compiler 8 | support to generate implementation headers from interface (IDL) files. 9 | These headers can then be used to implement the local Windows Runtime 10 | classes referenced in the app's XAML pages. 11 | 12 | Steps: 13 | 1. Create an interface (IDL) file to define any local Windows Runtime 14 | classes referenced in the app's XAML pages. 15 | 2. Build the project once to generate implementation templates under 16 | the "Generated Files" folder, as well as skeleton class definitions 17 | under "Generated Files\sources". 18 | 3. Use the skeleton class definitions for reference to implement your 19 | Windows Runtime classes. 20 | 21 | ======================================================================== 22 | Learn more about C++/WinRT here: 23 | http://aka.ms/cppwinrt/ 24 | ======================================================================== 25 | -------------------------------------------------------------------------------- /img/ethbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/img/ethbox.png -------------------------------------------------------------------------------- /img/miner-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgrossnickle/eth-box/4b1aa0efe4b61ae08d28a7f22c2f9f11f4e36b89/img/miner-screenshot.png --------------------------------------------------------------------------------