diff --git a/Ethereum.sln b/Ethereum.sln
deleted file mode 100644
index b8f8fce1d..000000000
--- a/Ethereum.sln
+++ /dev/null
@@ -1,68 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Express 2013 for Windows Desktop
-VisualStudioVersion = 12.0.21005.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibEthereum", "libethereum\LibEthereum.vcxproj", "{7050C7CF-7551-48BE-8E57-92235906C13A}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestMining", "test\TestMining.vcxproj", "{02DC8A9B-DEF7-403B-8AE3-EF9680937D96}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Test", "test\Test.vcxproj", "{3F3E389B-88DE-41D5-A73B-4F6036E18B36}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\cryptopp562\cryptlib.vcxproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ethereum", "eth\Ethereum.vcxproj", "{C60C065C-2135-4B2B-AFD4-35FD7AC56B40}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Debug|x64 = Debug|x64
- Release|Win32 = Release|Win32
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {7050C7CF-7551-48BE-8E57-92235906C13A}.Debug|Win32.ActiveCfg = Debug|Win32
- {7050C7CF-7551-48BE-8E57-92235906C13A}.Debug|Win32.Build.0 = Debug|Win32
- {7050C7CF-7551-48BE-8E57-92235906C13A}.Debug|x64.ActiveCfg = Debug|x64
- {7050C7CF-7551-48BE-8E57-92235906C13A}.Debug|x64.Build.0 = Debug|x64
- {7050C7CF-7551-48BE-8E57-92235906C13A}.Release|Win32.ActiveCfg = Release|Win32
- {7050C7CF-7551-48BE-8E57-92235906C13A}.Release|Win32.Build.0 = Release|Win32
- {7050C7CF-7551-48BE-8E57-92235906C13A}.Release|x64.ActiveCfg = Release|x64
- {7050C7CF-7551-48BE-8E57-92235906C13A}.Release|x64.Build.0 = Release|x64
- {02DC8A9B-DEF7-403B-8AE3-EF9680937D96}.Debug|Win32.ActiveCfg = Debug|Win32
- {02DC8A9B-DEF7-403B-8AE3-EF9680937D96}.Debug|Win32.Build.0 = Debug|Win32
- {02DC8A9B-DEF7-403B-8AE3-EF9680937D96}.Debug|x64.ActiveCfg = Debug|x64
- {02DC8A9B-DEF7-403B-8AE3-EF9680937D96}.Debug|x64.Build.0 = Debug|x64
- {02DC8A9B-DEF7-403B-8AE3-EF9680937D96}.Release|Win32.ActiveCfg = Release|Win32
- {02DC8A9B-DEF7-403B-8AE3-EF9680937D96}.Release|Win32.Build.0 = Release|Win32
- {02DC8A9B-DEF7-403B-8AE3-EF9680937D96}.Release|x64.ActiveCfg = Release|x64
- {02DC8A9B-DEF7-403B-8AE3-EF9680937D96}.Release|x64.Build.0 = Release|x64
- {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Debug|Win32.ActiveCfg = Debug|Win32
- {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Debug|Win32.Build.0 = Debug|Win32
- {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Debug|x64.ActiveCfg = Debug|x64
- {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Debug|x64.Build.0 = Debug|x64
- {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Release|Win32.ActiveCfg = Release|Win32
- {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Release|Win32.Build.0 = Release|Win32
- {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Release|x64.ActiveCfg = Release|x64
- {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Release|x64.Build.0 = Release|x64
- {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.ActiveCfg = Debug|Win32
- {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.Build.0 = Debug|Win32
- {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|x64.ActiveCfg = Debug|x64
- {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|x64.Build.0 = Debug|x64
- {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.ActiveCfg = Release|Win32
- {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.Build.0 = Release|Win32
- {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|x64.ActiveCfg = Release|x64
- {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|x64.Build.0 = Release|x64
- {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Debug|Win32.ActiveCfg = Debug|Win32
- {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Debug|Win32.Build.0 = Debug|Win32
- {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Debug|x64.ActiveCfg = Debug|x64
- {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Debug|x64.Build.0 = Debug|x64
- {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Release|Win32.ActiveCfg = Release|Win32
- {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Release|Win32.Build.0 = Release|Win32
- {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Release|x64.ActiveCfg = Release|x64
- {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/libethereum/LibEthereum.props b/libethereum/LibEthereum.props
deleted file mode 100644
index d5e69e1ce..000000000
--- a/libethereum/LibEthereum.props
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
- $(IncludePath);../../boost_1_55_0;../../leveldb/include;../../cryptopp562;../secp256k1
- ..\build\$(ProjectName)\$(Platform)_$(Configuration)\
- ..\build\$(ProjectName)\$(Platform)_$(Configuration)\
-
-
-
- 4100;4127;4505;4512;
- Level4
- true
- false
- ../..
- _WIN32_WINNT=0x0501;_UNICODE;UNICODE;%(PreprocessorDefinitions)
- true
-
-
-
-
\ No newline at end of file
diff --git a/libethereum/LibEthereum.vcxproj.filters b/libethereum/LibEthereum.vcxproj.filters
deleted file mode 100644
index c0655b095..000000000
--- a/libethereum/LibEthereum.vcxproj.filters
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/windows/Ethereum.sln b/windows/Ethereum.sln
new file mode 100644
index 000000000..f489ede53
--- /dev/null
+++ b/windows/Ethereum.sln
@@ -0,0 +1,111 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Express 2013 for Windows Desktop
+VisualStudioVersion = 12.0.21005.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libs", "Libs", "{988F2383-FA1D-408B-BCF6-C0EE7AB0A560}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{6838FA95-01BF-4FF7-914C-FC209B81406E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibEthereum", "LibEthereum.vcxproj", "{826E68CB-D3EE-4A8A-B540-59A8C3F38D4F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibLevelDB", "LibLevelDB.vcxproj", "{27014763-955D-486B-9BA7-69872192E6F4}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibSecp256k1", "LibSecp256k1.vcxproj", "{1E1175BB-C4A9-41D8-B2D1-9022F71D3CEA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ethereum", "Ethereum.vcxproj", "{C60C065C-2135-4B2B-AFD4-35FD7AC56B40}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSecp256k1", "TestSecp256k1.vcxproj", "{3BF049F8-AF7E-4E1C-9627-3E94C887AF24}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestEthereum", "TestEthereum.vcxproj", "{3F3E389B-88DE-41D5-A73B-4F6036E18B36}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibCryptoPP", "LibCryptoPP.vcxproj", "{1CC213A4-3482-4211-B47B-172E90DAC7DE}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibMiniUPnPc", "LibMiniUPnPc.vcxproj", "{1B1CA20E-39C3-4D9B-AC37-3783048E6672}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {826E68CB-D3EE-4A8A-B540-59A8C3F38D4F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {826E68CB-D3EE-4A8A-B540-59A8C3F38D4F}.Debug|Win32.Build.0 = Debug|Win32
+ {826E68CB-D3EE-4A8A-B540-59A8C3F38D4F}.Debug|x64.ActiveCfg = Debug|x64
+ {826E68CB-D3EE-4A8A-B540-59A8C3F38D4F}.Debug|x64.Build.0 = Debug|x64
+ {826E68CB-D3EE-4A8A-B540-59A8C3F38D4F}.Release|Win32.ActiveCfg = Release|Win32
+ {826E68CB-D3EE-4A8A-B540-59A8C3F38D4F}.Release|Win32.Build.0 = Release|Win32
+ {826E68CB-D3EE-4A8A-B540-59A8C3F38D4F}.Release|x64.ActiveCfg = Release|x64
+ {826E68CB-D3EE-4A8A-B540-59A8C3F38D4F}.Release|x64.Build.0 = Release|x64
+ {27014763-955D-486B-9BA7-69872192E6F4}.Debug|Win32.ActiveCfg = Debug|Win32
+ {27014763-955D-486B-9BA7-69872192E6F4}.Debug|Win32.Build.0 = Debug|Win32
+ {27014763-955D-486B-9BA7-69872192E6F4}.Debug|x64.ActiveCfg = Debug|x64
+ {27014763-955D-486B-9BA7-69872192E6F4}.Debug|x64.Build.0 = Debug|x64
+ {27014763-955D-486B-9BA7-69872192E6F4}.Release|Win32.ActiveCfg = Release|Win32
+ {27014763-955D-486B-9BA7-69872192E6F4}.Release|Win32.Build.0 = Release|Win32
+ {27014763-955D-486B-9BA7-69872192E6F4}.Release|x64.ActiveCfg = Release|x64
+ {27014763-955D-486B-9BA7-69872192E6F4}.Release|x64.Build.0 = Release|x64
+ {1E1175BB-C4A9-41D8-B2D1-9022F71D3CEA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1E1175BB-C4A9-41D8-B2D1-9022F71D3CEA}.Debug|Win32.Build.0 = Debug|Win32
+ {1E1175BB-C4A9-41D8-B2D1-9022F71D3CEA}.Debug|x64.ActiveCfg = Debug|x64
+ {1E1175BB-C4A9-41D8-B2D1-9022F71D3CEA}.Debug|x64.Build.0 = Debug|x64
+ {1E1175BB-C4A9-41D8-B2D1-9022F71D3CEA}.Release|Win32.ActiveCfg = Release|Win32
+ {1E1175BB-C4A9-41D8-B2D1-9022F71D3CEA}.Release|Win32.Build.0 = Release|Win32
+ {1E1175BB-C4A9-41D8-B2D1-9022F71D3CEA}.Release|x64.ActiveCfg = Release|x64
+ {1E1175BB-C4A9-41D8-B2D1-9022F71D3CEA}.Release|x64.Build.0 = Release|x64
+ {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Debug|Win32.Build.0 = Debug|Win32
+ {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Debug|x64.ActiveCfg = Debug|x64
+ {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Debug|x64.Build.0 = Debug|x64
+ {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Release|Win32.ActiveCfg = Release|Win32
+ {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Release|Win32.Build.0 = Release|Win32
+ {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Release|x64.ActiveCfg = Release|x64
+ {C60C065C-2135-4B2B-AFD4-35FD7AC56B40}.Release|x64.Build.0 = Release|x64
+ {3BF049F8-AF7E-4E1C-9627-3E94C887AF24}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3BF049F8-AF7E-4E1C-9627-3E94C887AF24}.Debug|Win32.Build.0 = Debug|Win32
+ {3BF049F8-AF7E-4E1C-9627-3E94C887AF24}.Debug|x64.ActiveCfg = Debug|x64
+ {3BF049F8-AF7E-4E1C-9627-3E94C887AF24}.Debug|x64.Build.0 = Debug|x64
+ {3BF049F8-AF7E-4E1C-9627-3E94C887AF24}.Release|Win32.ActiveCfg = Release|Win32
+ {3BF049F8-AF7E-4E1C-9627-3E94C887AF24}.Release|Win32.Build.0 = Release|Win32
+ {3BF049F8-AF7E-4E1C-9627-3E94C887AF24}.Release|x64.ActiveCfg = Release|x64
+ {3BF049F8-AF7E-4E1C-9627-3E94C887AF24}.Release|x64.Build.0 = Release|x64
+ {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Debug|Win32.Build.0 = Debug|Win32
+ {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Debug|x64.ActiveCfg = Debug|x64
+ {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Debug|x64.Build.0 = Debug|x64
+ {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Release|Win32.ActiveCfg = Release|Win32
+ {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Release|Win32.Build.0 = Release|Win32
+ {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Release|x64.ActiveCfg = Release|x64
+ {3F3E389B-88DE-41D5-A73B-4F6036E18B36}.Release|x64.Build.0 = Release|x64
+ {1CC213A4-3482-4211-B47B-172E90DAC7DE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1CC213A4-3482-4211-B47B-172E90DAC7DE}.Debug|Win32.Build.0 = Debug|Win32
+ {1CC213A4-3482-4211-B47B-172E90DAC7DE}.Debug|x64.ActiveCfg = Debug|x64
+ {1CC213A4-3482-4211-B47B-172E90DAC7DE}.Debug|x64.Build.0 = Debug|x64
+ {1CC213A4-3482-4211-B47B-172E90DAC7DE}.Release|Win32.ActiveCfg = Release|Win32
+ {1CC213A4-3482-4211-B47B-172E90DAC7DE}.Release|Win32.Build.0 = Release|Win32
+ {1CC213A4-3482-4211-B47B-172E90DAC7DE}.Release|x64.ActiveCfg = Release|x64
+ {1CC213A4-3482-4211-B47B-172E90DAC7DE}.Release|x64.Build.0 = Release|x64
+ {1B1CA20E-39C3-4D9B-AC37-3783048E6672}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1B1CA20E-39C3-4D9B-AC37-3783048E6672}.Debug|Win32.Build.0 = Debug|Win32
+ {1B1CA20E-39C3-4D9B-AC37-3783048E6672}.Debug|x64.ActiveCfg = Debug|x64
+ {1B1CA20E-39C3-4D9B-AC37-3783048E6672}.Debug|x64.Build.0 = Debug|x64
+ {1B1CA20E-39C3-4D9B-AC37-3783048E6672}.Release|Win32.ActiveCfg = Release|Win32
+ {1B1CA20E-39C3-4D9B-AC37-3783048E6672}.Release|Win32.Build.0 = Release|Win32
+ {1B1CA20E-39C3-4D9B-AC37-3783048E6672}.Release|x64.ActiveCfg = Release|x64
+ {1B1CA20E-39C3-4D9B-AC37-3783048E6672}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {826E68CB-D3EE-4A8A-B540-59A8C3F38D4F} = {988F2383-FA1D-408B-BCF6-C0EE7AB0A560}
+ {27014763-955D-486B-9BA7-69872192E6F4} = {988F2383-FA1D-408B-BCF6-C0EE7AB0A560}
+ {1E1175BB-C4A9-41D8-B2D1-9022F71D3CEA} = {988F2383-FA1D-408B-BCF6-C0EE7AB0A560}
+ {1CC213A4-3482-4211-B47B-172E90DAC7DE} = {988F2383-FA1D-408B-BCF6-C0EE7AB0A560}
+ {1B1CA20E-39C3-4D9B-AC37-3783048E6672} = {988F2383-FA1D-408B-BCF6-C0EE7AB0A560}
+ {3BF049F8-AF7E-4E1C-9627-3E94C887AF24} = {6838FA95-01BF-4FF7-914C-FC209B81406E}
+ {3F3E389B-88DE-41D5-A73B-4F6036E18B36} = {6838FA95-01BF-4FF7-914C-FC209B81406E}
+ EndGlobalSection
+EndGlobal
diff --git a/eth/Ethereum.vcxproj b/windows/Ethereum.vcxproj
similarity index 84%
rename from eth/Ethereum.vcxproj
rename to windows/Ethereum.vcxproj
index 9204efe9f..c7e52133c 100644
--- a/eth/Ethereum.vcxproj
+++ b/windows/Ethereum.vcxproj
@@ -29,54 +29,48 @@
Application
true
v120
- Unicode
Application
true
v120
- Unicode
Application
false
- v120
true
- Unicode
+ v120
Application
false
- v120
true
- Unicode
+ v120
-
+
-
+
-
+
-
+
true
-
- true
-
+
false
@@ -89,10 +83,8 @@
Disabled
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- ../libethereum
MultiThreadedDebug
true
- 4351
Console
@@ -106,10 +98,8 @@
Disabled
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- ../libethereum
MultiThreadedDebug
true
- 4351
Console
@@ -124,11 +114,9 @@
true
true
WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- ../libethereum
MultiThreaded
true
AnySuitable
- 4351
Console
@@ -146,11 +134,9 @@
true
true
WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- ../libethereum
MultiThreaded
true
AnySuitable
- 4351
Console
@@ -160,15 +146,12 @@
-
- {3423ec9a-52e4-4a4d-9753-edebc38785ef}
-
-
- {7050c7cf-7551-48be-8e57-92235906c13a}
+
+ {826e68cb-d3ee-4a8a-b540-59a8c3f38d4f}
-
+
diff --git a/windows/LibCryptoPP.vcxproj b/windows/LibCryptoPP.vcxproj
new file mode 100644
index 000000000..90751d5d0
--- /dev/null
+++ b/windows/LibCryptoPP.vcxproj
@@ -0,0 +1,176 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Document
+ ml64.exe /c /nologo /Fo"$(IntDir)x64dll.obj" /Zi "%(FullPath)"
+ ml64.exe /c /nologo /Fo"$(IntDir)x64dll.obj" /Zi "%(FullPath)"
+ $(IntDir)x64dll.obj
+ $(IntDir)x64dll.obj
+
+
+
+ Win32Proj
+ LibCryptoPP
+ {1CC213A4-3482-4211-B47B-172E90DAC7DE}
+
+
+
+ StaticLibrary
+ true
+ v120
+
+
+ StaticLibrary
+ true
+ v120
+
+
+ StaticLibrary
+ false
+ true
+ v120
+
+
+ StaticLibrary
+ false
+ true
+ v120
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disabled
+ MultiThreadedDebug
+ 4189;4244;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+
+
+
+
+
+
+ Disabled
+ MultiThreadedDebug
+ 4189;4244;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+
+
+
+
+
+
+ MaxSpeed
+ true
+ true
+ MultiThreaded
+ 4189;4244;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
+ MaxSpeed
+ true
+ true
+ MultiThreaded
+ 4189;4244;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/windows/LibEthereum.props b/windows/LibEthereum.props
new file mode 100644
index 000000000..8af87a44d
--- /dev/null
+++ b/windows/LibEthereum.props
@@ -0,0 +1,24 @@
+
+
+
+
+
+ ..\..\build\$(ProjectName)\$(Platform)_$(Configuration)\
+ ..\..\build\$(ProjectName)\$(Platform)_$(Configuration)\
+
+
+
+ 4100;4127;4505;4512;4706
+ Level4
+ true
+ false
+ include/$(ProjectName);../libethereum;../../boost;../../leveldb/include;../../cryptopp;../secp256k1;../../miniupnp
+ STATICLIB;LEVELDB_PLATFORM_WINDOWS;USE_NUM_BOOST;USE_FIELD_10X26;USE_FIELD_INV_BUILTIN;_WIN32_WINNT=0x0501;WIN32;%(PreprocessorDefinitions)
+ true
+
+
+ ../../boost/stage/$(Platform)
+
+
+
+
\ No newline at end of file
diff --git a/libethereum/LibEthereum.vcxproj b/windows/LibEthereum.vcxproj
similarity index 70%
rename from libethereum/LibEthereum.vcxproj
rename to windows/LibEthereum.vcxproj
index ad9bc884d..e3432b328 100644
--- a/libethereum/LibEthereum.vcxproj
+++ b/windows/LibEthereum.vcxproj
@@ -19,55 +19,70 @@
-
+
true
true
true
true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {1cc213a4-3482-4211-b47b-172e90dac7de}
+
+
+ {27014763-955d-486b-9ba7-69872192e6f4}
+
+
+ {1b1ca20e-39c3-4d9b-ac37-3783048e6672}
+
+
+ {1e1175bb-c4a9-41d8-b2d1-9022f71d3cea}
+
- {7050C7CF-7551-48BE-8E57-92235906C13A}
+ {826E68CB-D3EE-4A8A-B540-59A8C3F38D4F}
Win32Proj
LibEthereum
@@ -76,27 +91,23 @@
StaticLibrary
true
v120
- Unicode
StaticLibrary
true
v120
- Unicode
StaticLibrary
false
- v120
true
- Unicode
+ v120
StaticLibrary
false
- v120
true
- Unicode
+ v120
@@ -118,19 +129,10 @@
-
- ..\build\$(ProjectName)\$(Platform)_$(Configuration)\
- ..\build\$(ProjectName)\$(Platform)_$(Configuration)\
-
+
-
- ..\build\$(ProjectName)\$(Platform)_$(Configuration)\
- ..\build\$(ProjectName)\$(Platform)_$(Configuration)\
-
-
- ..\build\$(ProjectName)\$(Platform)_$(Configuration)\
- ..\build\$(ProjectName)\$(Platform)_$(Configuration)\
-
+
+
Disabled
diff --git a/windows/LibEthereum.vcxproj.filters b/windows/LibEthereum.vcxproj.filters
new file mode 100644
index 000000000..29b24ad66
--- /dev/null
+++ b/windows/LibEthereum.vcxproj.filters
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/windows/LibLevelDB.vcxproj b/windows/LibLevelDB.vcxproj
new file mode 100644
index 000000000..ed04f569a
--- /dev/null
+++ b/windows/LibLevelDB.vcxproj
@@ -0,0 +1,223 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {27014763-955D-486B-9BA7-69872192E6F4}
+ Win32Proj
+ LibLevelDB
+
+
+
+ StaticLibrary
+ true
+ v120
+
+
+ StaticLibrary
+ true
+ v120
+
+
+ StaticLibrary
+ false
+ true
+ v120
+
+
+ StaticLibrary
+ false
+ true
+ v120
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disabled
+ MultiThreadedDebug
+ %(AdditionalIncludeDirectories);../../leveldb
+ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ 4018;4244;4267;4389;4702;4722;4800;4996;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+
+
+
+
+
+
+ Disabled
+ MultiThreadedDebug
+ %(AdditionalIncludeDirectories);../../leveldb
+ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ 4018;4244;4267;4389;4702;4722;4800;4996;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+
+
+
+
+
+
+ MaxSpeed
+ true
+ true
+ MultiThreaded
+ %(AdditionalIncludeDirectories);../../leveldb
+ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ 4018;4244;4267;4389;4702;4722;4800;4996;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
+ MaxSpeed
+ true
+ true
+ MultiThreaded
+ %(AdditionalIncludeDirectories);../../leveldb
+ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ 4018;4244;4267;4389;4702;4722;4800;4996;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/windows/LibLevelDB.vcxproj.filters b/windows/LibLevelDB.vcxproj.filters
new file mode 100644
index 000000000..bc3306f56
--- /dev/null
+++ b/windows/LibLevelDB.vcxproj.filters
@@ -0,0 +1,246 @@
+
+
+
+
+ {d83904b1-b5d1-4c5b-b476-96f08300d103}
+
+
+ {72573022-b7fd-4b7a-a92e-a68c06bd6366}
+
+
+ {7f821e9e-4ebf-4d18-8fb4-898bd3d81376}
+
+
+ {f285a595-6c39-4350-8d30-6f696a3a7c4c}
+
+
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ table
+
+
+ table
+
+
+ table
+
+
+ table
+
+
+ table
+
+
+ table
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ port
+
+
+ port
+
+
+ port
+
+
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ db
+
+
+ table
+
+
+ table
+
+
+ table
+
+
+ table
+
+
+ table
+
+
+ table
+
+
+ table
+
+
+ table
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ util
+
+
+ port
+
+
+
\ No newline at end of file
diff --git a/windows/LibMiniUPnPc.vcxproj b/windows/LibMiniUPnPc.vcxproj
new file mode 100644
index 000000000..7f3e59131
--- /dev/null
+++ b/windows/LibMiniUPnPc.vcxproj
@@ -0,0 +1,184 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Win32Proj
+ LibMiniUPnPc
+ {1B1CA20E-39C3-4D9B-AC37-3783048E6672}
+ LibMiniUPnPc
+
+
+
+ StaticLibrary
+ true
+ v120
+
+
+ StaticLibrary
+ true
+ v120
+
+
+ StaticLibrary
+ false
+ true
+ v120
+
+
+ StaticLibrary
+ false
+ true
+ v120
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disabled
+ MultiThreadedDebug
+ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ 4244;4245;4267;4389;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+
+
+ Iphlpapi.lib
+
+
+
+
+
+
+ Disabled
+ MultiThreadedDebug
+ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ 4244;4245;4267;4389;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+
+
+ Iphlpapi.lib
+
+
+
+
+
+
+ MaxSpeed
+ true
+ true
+ MultiThreaded
+ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ 4244;4245;4267;4389;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+ true
+ true
+
+
+ Iphlpapi.lib
+
+
+
+
+
+
+ MaxSpeed
+ true
+ true
+ MultiThreaded
+ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ 4244;4245;4267;4389;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+ true
+ true
+
+
+ Iphlpapi.lib
+
+
+
+
+
+
\ No newline at end of file
diff --git a/windows/LibSecp256k1.vcxproj b/windows/LibSecp256k1.vcxproj
new file mode 100644
index 000000000..cccf0e014
--- /dev/null
+++ b/windows/LibSecp256k1.vcxproj
@@ -0,0 +1,185 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+
+
+
+
+
+
+ Win32Proj
+ LibSecp256k1
+ {1E1175BB-C4A9-41D8-B2D1-9022F71D3CEA}
+ LibSecp256k1
+
+
+
+ StaticLibrary
+ true
+ v120
+
+
+ StaticLibrary
+ true
+ v120
+
+
+ StaticLibrary
+ false
+ true
+ v120
+
+
+ StaticLibrary
+ false
+ true
+ v120
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+ 4189;4244;4267;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+ 4189;4244;4267;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreaded
+ 4189;4244;4267;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreaded
+ 4189;4244;4267;%(DisableSpecificWarnings)
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/windows/LibSecp256k1.vcxproj.filters b/windows/LibSecp256k1.vcxproj.filters
new file mode 100644
index 000000000..aa4e5b9cb
--- /dev/null
+++ b/windows/LibSecp256k1.vcxproj.filters
@@ -0,0 +1,71 @@
+
+
+
+
+ {7d4db365-bce7-45c1-861c-f5f86beca992}
+
+
+
+
+ impl
+
+
+ impl
+
+
+ impl
+
+
+ impl
+
+
+ impl
+
+
+ impl
+
+
+ impl
+
+
+ impl
+
+
+ impl
+
+
+ impl
+
+
+ impl
+
+
+ impl
+
+
+ impl
+
+
+ impl
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/Test.vcxproj b/windows/TestEthereum.vcxproj
similarity index 78%
rename from test/Test.vcxproj
rename to windows/TestEthereum.vcxproj
index 74f88a03a..e275ce267 100644
--- a/test/Test.vcxproj
+++ b/windows/TestEthereum.vcxproj
@@ -20,8 +20,8 @@
Win32Proj
- Test
- Test
+ TestEthereum
+ TestEthereum
{3F3E389B-88DE-41D5-A73B-4F6036E18B36}
@@ -29,46 +29,42 @@
Application
true
v120
- Unicode
Application
true
v120
- Unicode
Application
false
- v120
true
- Unicode
+ v120
Application
false
- v120
true
- Unicode
+ v120
-
+
-
+
-
+
-
+
@@ -89,17 +85,14 @@
Disabled
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- ../libethereum
MultiThreadedDebug
true
true
- 4351
Console
true
true
- ../../boost_1_55_0/stage/x86
@@ -108,15 +101,12 @@
Disabled
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- ../libethereum
MultiThreadedDebug
true
- 4351
Console
true
- ../../boost_1_55_0/stage/x64
@@ -127,12 +117,10 @@
true
true
WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- ../libethereum
MultiThreaded
true
AnySuitable
true
- 4351
Console
@@ -140,7 +128,6 @@
true
true
true
- ../../boost_1_55_0/stage/x86
@@ -151,38 +138,33 @@
true
true
WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- ../libethereum
MultiThreaded
true
AnySuitable
true
- 4351
Console
true
true
true
- ../../boost_1_55_0/stage/x64
-
- {3423ec9a-52e4-4a4d-9753-edebc38785ef}
-
-
- {7050c7cf-7551-48be-8e57-92235906c13a}
+
+ {826e68cb-d3ee-4a8a-b540-59a8c3f38d4f}
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/windows/TestSecp256k1.vcxproj b/windows/TestSecp256k1.vcxproj
new file mode 100644
index 000000000..f363f4706
--- /dev/null
+++ b/windows/TestSecp256k1.vcxproj
@@ -0,0 +1,173 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+
+
+
+
+ {1e1175bb-c4a9-41d8-b2d1-9022f71d3cea}
+
+
+
+ Win32Proj
+ TestSecp256k1
+ TestSecp256k1
+ {3BF049F8-AF7E-4E1C-9627-3E94C887AF24}
+
+
+
+ Application
+ true
+ v120
+
+
+ Application
+ true
+ v120
+
+
+ Application
+ false
+ true
+ v120
+
+
+ Application
+ false
+ true
+ v120
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+ false
+
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+ true
+ true
+ 4189;4244;4267;%(DisableSpecificWarnings)
+
+
+ Console
+ true
+ true
+
+
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+ true
+ 4189;4244;4267;%(DisableSpecificWarnings)
+
+
+ Console
+ true
+
+
+
+
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ MultiThreaded
+ true
+ AnySuitable
+ true
+ 4189;4244;4267;%(DisableSpecificWarnings)
+
+
+ Console
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ MultiThreaded
+ true
+ AnySuitable
+ true
+ 4189;4244;4267;%(DisableSpecificWarnings)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/windows/bootstrap.sh b/windows/bootstrap.sh
new file mode 100644
index 000000000..397b4ce12
--- /dev/null
+++ b/windows/bootstrap.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+# Setup script for building Ethereum using Visual Studio Express 2013.
+# Execute once in directory only containing cpp-ethereum
+# Prerequisites:
+# - Visual Studio Express 2013 for Desktop
+# - On PATH: git, git-svn, wget, 7z
+
+# stop on errors
+set -e
+
+# fetch CryptoPP-5.6.2
+git svn clone -r 541:541 svn://svn.code.sf.net/p/cryptopp/code/trunk/c5 cryptopp
+
+# fetch MiniUPnP-1.8
+git clone git@github.com:miniupnp/miniupnp.git
+cd miniupnp
+git checkout tags/miniupnpd_1_8
+cd ..
+
+# fetch LevelDB (windows branch)
+git clone https://code.google.com/p/leveldb/
+cd leveldb
+git checkout origin/windows
+cd ..
+
+# fetch and unpack boost-1.55
+wget -O boost_1_55_0.7z http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.7z/download
+7z x boost_1_55_0.7z
+mv boost_1_55_0 boost
+
+# compile boost for x86 and x64
+cd boost
+cmd /c bootstrap.bat
+./b2 --build-type=complete link=static runtime-link=static variant=debug,release threading=multi stage
+mv stage/lib stage/Win32
+./b2 --build-type=complete link=static runtime-link=static variant=debug,release threading=multi address-model=64 stage
+mv stage/lib stage/x64
+cd ..
diff --git a/windows/include/LibLevelDB/port/port.h b/windows/include/LibLevelDB/port/port.h
new file mode 100644
index 000000000..ce7ae19c4
--- /dev/null
+++ b/windows/include/LibLevelDB/port/port.h
@@ -0,0 +1,23 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_PORT_PORT_H_
+#define STORAGE_LEVELDB_PORT_PORT_H_
+
+#include
+
+// Include the appropriate platform specific file below. If you are
+// porting to a new platform, see "port_example.h" for documentation
+// of what the new port_.h file must provide.
+#if defined(LEVELDB_PLATFORM_POSIX)
+# include "port/port_posix.h"
+#elif defined(LEVELDB_PLATFORM_CHROMIUM)
+# include "port/port_chromium.h"
+#elif defined(LEVELDB_PLATFORM_ANDROID)
+# include "port/port_android.h"
+#elif defined(LEVELDB_PLATFORM_WINDOWS)
+# include "port/port_win.h"
+#endif
+
+#endif // STORAGE_LEVELDB_PORT_PORT_H_
diff --git a/windows/include/LibLevelDB/unistd.h b/windows/include/LibLevelDB/unistd.h
new file mode 100644
index 000000000..e69de29bb
diff --git a/windows/include/LibMiniUPnPc/miniupnpcstrings.h b/windows/include/LibMiniUPnPc/miniupnpcstrings.h
new file mode 100644
index 000000000..364342ecf
--- /dev/null
+++ b/windows/include/LibMiniUPnPc/miniupnpcstrings.h
@@ -0,0 +1,14 @@
+/* $Id: miniupnpcstrings.h.in,v 1.4 2011/01/04 11:41:53 nanard Exp $ */
+/* Project: miniupnp
+ * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
+ * Author: Thomas Bernard
+ * Copyright (c) 2005-2011 Thomas Bernard
+ * This software is subjects to the conditions detailed
+ * in the LICENCE file provided within this distribution */
+#ifndef MINIUPNPCSTRINGS_H_INCLUDED
+#define MINIUPNPCSTRINGS_H_INCLUDED
+
+#define OS_STRING "Windows"
+#define MINIUPNPC_VERSION_STRING "1.9"
+
+#endif