diff -Nru gridcoinresearch-3.6.0.2/CHANGELOG.md gridcoinresearch-3.6.1.0/CHANGELOG.md --- gridcoinresearch-3.6.0.2/CHANGELOG.md 2017-08-26 05:21:26.000000000 +0000 +++ gridcoinresearch-3.6.1.0/CHANGELOG.md 2017-09-13 05:31:31.000000000 +0000 @@ -4,7 +4,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). -## [Unreleased] +## [3.6.1.0] 09-11-2017 +### Fixed + - Fix problems forging superblock due to rounding differences, #608 (@denravonska). + - Fetch data from project servers if missing on scraper #564 (@denravonska). + +## [3.6.0.2] 08-26-2017 ### Fixed - Fix incorrect V8 height trigger check. Many thanks to @barton2526 for discovering this. - Fix invalid superblock height formatting, #532 (@denravonska). diff -Nru gridcoinresearch-3.6.0.2/contrib/Installer/boinc/boinc/clsBoincProjectDownload.vb gridcoinresearch-3.6.1.0/contrib/Installer/boinc/boinc/clsBoincProjectDownload.vb --- gridcoinresearch-3.6.0.2/contrib/Installer/boinc/boinc/clsBoincProjectDownload.vb 2017-08-26 05:21:26.000000000 +0000 +++ gridcoinresearch-3.6.1.0/contrib/Installer/boinc/boinc/clsBoincProjectDownload.vb 2017-09-13 05:31:31.000000000 +0000 @@ -60,7 +60,7 @@ Return 1 Else Dim sCacheFileName As String = RetrieveCacheProjectFilename(sGzipURL) - Dim bStatus As Boolean = ResilientDownload(sGridcoinBaseUrl + sCacheFileName, sEtagFilePath, sGridcoinBaseUrl + sCacheFileName) + Dim bStatus As Boolean = ResilientDownload(sGridcoinBaseUrl + sCacheFileName, sEtagFilePath, sGzipURL) If bStatus Then Return 2 Else @@ -69,50 +69,6 @@ End If End Function - Private Function AnalyzeProjectHeaderRetired(ByVal sGzipURL As String, ByRef sEtag As String, ByRef sEtagFilePath As String, ByVal sProjectName As String) As Integer - 'Output - '1 = We already have the official etag version downloaded - '2 = We downloaded a new version - '3 = Download failed - Dim dictHeads As Dictionary(Of String, String) = GetHttpResponseHeaders(sGzipURL) - sEtag = dictHeads("ETag") - Dim sTimestamp As String - sTimestamp = dictHeads("Last-Modified") - sEtag = Replace(sEtag, Chr(34), "") - sEtag = Replace(sEtag, "W", "") - Dim dStatus As Double = 0 - Dim sGridcoinBaseUrl As String = "https://download.gridcoin.us/download/harvest/" - Dim sGridcoinURL As String = sGridcoinBaseUrl + sEtag + ".gz" - Dim dictHeadsGRC As Dictionary(Of String, String) = GetHttpResponseHeaders(sGridcoinURL) - Dim dLength1 As Double = dictHeads("Content-Length") - Dim dLength2 As Double = dictHeadsGRC("Content-Length") - ' If Etag matches GRC's cache, and the filesize is the same use the GRCCache version to prevent DDosing the boinc servers (Gridcoin Foundation copies the files from the project sites to the Gridcoin.US web site once every 4 hours to help avoid stressing the project servers from the massive hit by our network) - Dim bCacheSiteHasSameFile As Boolean = (dLength2 > 0) - Dim sEtagOnFile As String = GetDataValue("etag", "tbetags", sGzipURL).DataColumn1 - sEtagFilePath = ConstructTargetFileName(sEtag) - Dim lAgeInMins As Long = GetFileAge(sEtagFilePath) - If sEtagOnFile = sEtag And lAgeInMins < SYNC_THRESHOLD Then - 'We already have this file - Return 1 - Else - 'We do not have this file - 'Step 1, see if it exists in our cache before attempting to download from the project site - Dim sCacheFileName As String = RetrieveCacheProjectFilename(sGzipURL) - Dim bStatus As Boolean = ResilientDownload(sGridcoinBaseUrl + sCacheFileName, sEtagFilePath, sGridcoinBaseUrl + sCacheFileName) - If Not bStatus Then - 'This is the step where we download from the boinc project server if the cache either returns 404 or the bytes dont match the etag or filesize: - Dim sSourceURL As String = IIf(bCacheSiteHasSameFile, sGridcoinURL, sGzipURL) - bStatus = ResilientDownload(sSourceURL, sEtagFilePath, sGzipURL) - End If - 'If all bytes downloaded then store the etag in the local table - 'Only update Stored Value after we retrieve the file - If bStatus Then - Return 2 - Else - Return 3 - End If - End If - End Function Public Function DownloadFile(iAttemptNo As Integer, sSourceURL As String, sOutputPath As String) As Boolean Try Dim w As New MyWebClient2 diff -Nru gridcoinresearch-3.6.0.2/contrib/Installer/boinc/boinc/clsQuorumHashingAlgorithm.cls gridcoinresearch-3.6.1.0/contrib/Installer/boinc/boinc/clsQuorumHashingAlgorithm.cls --- gridcoinresearch-3.6.0.2/contrib/Installer/boinc/boinc/clsQuorumHashingAlgorithm.cls 2017-08-26 05:21:26.000000000 +0000 +++ gridcoinresearch-3.6.1.0/contrib/Installer/boinc/boinc/clsQuorumHashingAlgorithm.cls 2017-09-13 05:31:31.000000000 +0000 @@ -36,7 +36,7 @@ If UBound(vRow) > 0 Then If Len(vRow(0)) > 5 Then Dim sCPID As String = vRow(0) - Dim dMag = Math.Round(Val(vRow(1)), 0) + Dim dMag = Math.Round(Val(vRow(1)), 0, MidpointRounding.AwayFromZero) Dim sRow = sCPID + "," + Trim(dMag) If KeyValue("DEBUG_QHA") = "TRUE" Then Log(sRow) sHashIn += CPIDHash(dMag, sCPID) + "" @@ -53,11 +53,11 @@ Return sHash End Function Private Function CPIDHash(dMagIn As Double, sCPID As String) As String - Dim sMag As String = Trim(Math.Round(dMagIn, 0)) + Dim sMag As String = Trim(Math.Round(dMagIn, 0, MidpointRounding.AwayFromZero)) Dim dMagLength As Double = Len(sMag) Dim dExponent As Double = Math.Pow(dMagLength, 5) - Dim sMagComponent1 As String = Trim(Math.Round(dMagIn / (dExponent + 0.01), 0)) - Dim sSuffix = Trim(Math.Round(dMagLength * dExponent, 0)) + Dim sMagComponent1 As String = Trim(Math.Round(dMagIn / (dExponent + 0.01), 0, MidpointRounding.AwayFromZero)) + Dim sSuffix = Trim(Math.Round(dMagLength * dExponent, 0, MidpointRounding.AwayFromZero)) Dim sHash As String = sCPID + sMagComponent1 + sSuffix Return sHash End Function diff -Nru gridcoinresearch-3.6.0.2/contrib/Installer/boinc/boinc/Utilization.vb gridcoinresearch-3.6.1.0/contrib/Installer/boinc/boinc/Utilization.vb --- gridcoinresearch-3.6.0.2/contrib/Installer/boinc/boinc/Utilization.vb 2017-08-26 05:21:26.000000000 +0000 +++ gridcoinresearch-3.6.1.0/contrib/Installer/boinc/boinc/Utilization.vb 2017-09-13 05:31:31.000000000 +0000 @@ -14,7 +14,7 @@ Private mlSpeakMagnitude As Double Public ReadOnly Property Version As Double Get - Return 423 + Return 424 End Get End Property diff -Nru gridcoinresearch-3.6.0.2/contrib/Installer/GridcoinInstaller/GridcoinResearch.vdproj gridcoinresearch-3.6.1.0/contrib/Installer/GridcoinInstaller/GridcoinResearch.vdproj --- gridcoinresearch-3.6.0.2/contrib/Installer/GridcoinInstaller/GridcoinResearch.vdproj 2017-08-26 05:21:26.000000000 +0000 +++ gridcoinresearch-3.6.1.0/contrib/Installer/GridcoinInstaller/GridcoinResearch.vdproj 2017-09-13 05:31:31.000000000 +0000 @@ -232,37 +232,37 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_7A0EA93E644A4D9E8037FBB3C062DD65" + "OwnerKey" = "8:_6408A3D03D15E306A4C3FC5FD95ADA69" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_6AEABB5004EC4B57225B51B085DB5625" + "OwnerKey" = "8:_32F2DC723F30362B0B78F9A291EC0098" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_5644D8F767F33372E534FBD5A2384D12" + "OwnerKey" = "8:_DEB886DE05C496A5AD26B43C4B1B90B9" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DEB886DE05C496A5AD26B43C4B1B90B9" + "OwnerKey" = "8:_5644D8F767F33372E534FBD5A2384D12" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_32F2DC723F30362B0B78F9A291EC0098" + "OwnerKey" = "8:_6AEABB5004EC4B57225B51B085DB5625" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_6408A3D03D15E306A4C3FC5FD95ADA69" + "OwnerKey" = "8:_7A0EA93E644A4D9E8037FBB3C062DD65" "MsmSig" = "8:_UNDEFINED" } } @@ -1084,19 +1084,19 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:Gridcoin Research" - "ProductCode" = "8:{C7D29DFD-D31B-4849-AB57-707C0AC1DB82}" - "PackageCode" = "8:{D103E86A-AB58-42C3-825A-97881D9CC228}" + "ProductCode" = "8:{239D585C-E9B0-48EC-9F3A-CFA0F0196316}" + "PackageCode" = "8:{D2F3951C-E71B-47B9-88D9-DC7F63D5ED31}" "UpgradeCode" = "8:{9617E9EA-252F-43CE-B53E-B48C85F71192}" "AspNetVersion" = "8:4.0.30319.0" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" "DetectNewerInstalledVersion" = "11:FALSE" "InstallAllUsers" = "11:TRUE" - "ProductVersion" = "8:43.6" + "ProductVersion" = "8:43.7" "Manufacturer" = "8:GridcoinResearch" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" - "Title" = "8:Gridcoin Research 43.6" + "Title" = "8:Gridcoin Research 43.7" "Subject" = "8:" "ARPCONTACT" = "8:The Gridcoin Developers" "Keywords" = "8:Gridcoin Research" diff -Nru gridcoinresearch-3.6.0.2/debian/changelog gridcoinresearch-3.6.1.0/debian/changelog --- gridcoinresearch-3.6.0.2/debian/changelog 2017-08-26 05:21:28.000000000 +0000 +++ gridcoinresearch-3.6.1.0/debian/changelog 2017-09-13 05:31:33.000000000 +0000 @@ -1,8 +1,15 @@ -gridcoinresearch (3.6.0.2-2~ubuntu14.04.1) trusty; urgency=low +gridcoinresearch (3.6.1.0-3~ubuntu14.04.1) trusty; urgency=low * Auto build. - -- Richard Leckinger Sat, 26 Aug 2017 05:21:28 +0000 + -- Richard Leckinger Wed, 13 Sep 2017 05:31:33 +0000 + +gridcoinresearch (3.6.1.0-1) xenial; urgency=medium + + * Fix problems forging superblock due to rounding differences, #608 (@denravonska). + Fetch data from project servers if missing on scraper #564 (@denravonska). + + -- Richard Leckinger Wed, 13 Sep 2017 17:24:36 +1200 gridcoinresearch (3.6.0.2-1) xenial; urgency=medium diff -Nru gridcoinresearch-3.6.0.2/debian/git-build-recipe.manifest gridcoinresearch-3.6.1.0/debian/git-build-recipe.manifest --- gridcoinresearch-3.6.0.2/debian/git-build-recipe.manifest 2017-08-26 05:21:28.000000000 +0000 +++ gridcoinresearch-3.6.1.0/debian/git-build-recipe.manifest 2017-09-13 05:31:33.000000000 +0000 @@ -1,3 +1,3 @@ -# git-build-recipe format 0.4 deb-version {debupstream}-2 -lp:~gridcoin/gridcoin git-commit:4e2185b703363dee57582fc9c0efd4b6a8daaeaa -merge packaging lp:~gridcoin/gridcoin git-commit:302a7399c0c7c4cb99c88494974b23fa830393d3 +# git-build-recipe format 0.4 deb-version {debupstream}-3 +lp:~gridcoin/gridcoin git-commit:386243d6253dc71e9463c7aa5834335007917a97 +merge packaging lp:~gridcoin/gridcoin git-commit:a09f2f667e8e5e3c8d00f89e300081d407dce862 diff -Nru gridcoinresearch-3.6.0.2/README.md gridcoinresearch-3.6.1.0/README.md --- gridcoinresearch-3.6.0.2/README.md 2017-08-26 05:21:26.000000000 +0000 +++ gridcoinresearch-3.6.1.0/README.md 2017-09-13 05:31:31.000000000 +0000 @@ -43,8 +43,9 @@ Branching strategy ================== -Gridcoin uses three branches to ensure stability without slowing down -the pace of the daily development activities; development, staging and master. +Gridcoin uses four branches to ensure stability without slowing down +the pace of the daily development activities; development, staging, master +and hotfix. The *development* branch is used for day-to-day activities. It is the most active branch and is where pull requests go by default. This branch may contain @@ -61,6 +62,12 @@ and a release is made available to the public. At this point the code is considered mature and ready for production. +When a bug is found in a production version and an update is needed to be +released quickly the changes go into the *hotfix* branch for test before +being merged to *master* for release. This shows the intent of the change +and allows for production updates without having to merge straight to +master if the staging branch is busy. + Community ============ @@ -73,3 +80,9 @@ information or see https://opensource.org/licenses/MIT. +Build Status +============= + +| Development | Staging | Master | +|----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------| +| [![Build Status](https://travis-ci.org/gridcoin/Gridcoin-Research.svg?branch=development)](https://travis-ci.org/gridcoin/Gridcoin-Research) | [![Build Status](https://travis-ci.org/gridcoin/Gridcoin-Research.svg?branch=staging)](https://travis-ci.org/gridcoin/Gridcoin-Research) | [![Build Status](https://travis-ci.org/gridcoin/Gridcoin-Research.svg?branch=master)](https://travis-ci.org/gridcoin/Gridcoin-Research) | diff -Nru gridcoinresearch-3.6.0.2/src/clientversion.h gridcoinresearch-3.6.1.0/src/clientversion.h --- gridcoinresearch-3.6.0.2/src/clientversion.h 2017-08-26 05:21:26.000000000 +0000 +++ gridcoinresearch-3.6.1.0/src/clientversion.h 2017-09-13 05:31:31.000000000 +0000 @@ -8,8 +8,8 @@ // These need to be macros, as version.cpp's and bitcoin-qt.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 3 #define CLIENT_VERSION_MINOR 6 -#define CLIENT_VERSION_REVISION 0 -#define CLIENT_VERSION_BUILD 2 +#define CLIENT_VERSION_REVISION 1 +#define CLIENT_VERSION_BUILD 0 // Converts the parameter X to a string after macro replacement on X has been performed. // Don't merge these into one macro!