From 5b87bc26ecbde2760dbe7119f09e740c481c192f Mon Sep 17 00:00:00 2001 From: Jonathan Warren Date: Wed, 21 Jan 2015 12:38:25 -0500 Subject: [PATCH 1/3] Fix #758 --- src/class_singleWorker.py | 2 ++ src/proofofwork.py | 1 + src/shared.py | 2 ++ 3 files changed, 5 insertions(+) diff --git a/src/class_singleWorker.py b/src/class_singleWorker.py index 5fe85d6d..84f0403c 100644 --- a/src/class_singleWorker.py +++ b/src/class_singleWorker.py @@ -1,3 +1,5 @@ +from __future__ import division + import threading import shared import time diff --git a/src/proofofwork.py b/src/proofofwork.py index 8857ccb3..4392bc7e 100644 --- a/src/proofofwork.py +++ b/src/proofofwork.py @@ -71,6 +71,7 @@ def _doFastPoW(target, initialHash): time.sleep(0.2) def run(target, initialHash): + target = int(target) if frozen == "macosx_app" or not frozen: return _doFastPoW(target, initialHash) else: diff --git a/src/shared.py b/src/shared.py index 1de8708f..ec16e6e9 100644 --- a/src/shared.py +++ b/src/shared.py @@ -1,3 +1,5 @@ +from __future__ import division + softwareVersion = '0.4.4' verbose = 1 maximumAgeOfAnObjectThatIAmWillingToAccept = 216000 # This is obsolete with the change to protocol v3 but the singleCleaner thread still hasn't been updated so we need this a little longer. From bd9286ef419fc4064deae7ba2ccfbe9625c301eb Mon Sep 17 00:00:00 2001 From: Jonathan Warren Date: Wed, 28 Jan 2015 14:14:28 -0500 Subject: [PATCH 2/3] msg objects now contain an objectVersion --- src/shared.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/shared.py b/src/shared.py index ec16e6e9..cfe24340 100644 --- a/src/shared.py +++ b/src/shared.py @@ -591,7 +591,7 @@ def checkAndShareObjectWithPeers(data): """ if len(data) > 2 ** 18: logger.info('The payload length of this object is too large (%s bytes). Ignoring it.' % len(data)) - return + return 0 # Let us check to make sure that the proof of work is sufficient. if not isProofOfWorkSufficient(data): logger.info('Proof of work is insufficient.') @@ -663,6 +663,9 @@ def _checkAndShareUndefinedObjectWithPeers(data): def _checkAndShareMsgWithPeers(data): embeddedTime, = unpack('>Q', data[8:16]) readPosition = 20 # bypass nonce, time, and object type + objectVersion, objectVersionLength = decodeVarint( + data[readPosition:readPosition + 9]) + readPosition += objectVersionLength streamNumber, streamNumberLength = decodeVarint( data[readPosition:readPosition + 9]) if not streamNumber in streamsInWhichIAmParticipating: From 0c7330f900337c590a0b4437a79127f2025ce39b Mon Sep 17 00:00:00 2001 From: Jonathan Warren Date: Wed, 28 Jan 2015 14:45:29 -0500 Subject: [PATCH 3/3] fix misbehaving logger.warning line --- src/class_receiveDataThread.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/class_receiveDataThread.py b/src/class_receiveDataThread.py index f53aec1e..53281aca 100644 --- a/src/class_receiveDataThread.py +++ b/src/class_receiveDataThread.py @@ -479,7 +479,7 @@ class receiveDataThread(threading.Thread): payload, = row self.sendObject(payload) else: - logger.warning('%s asked for an object with a getdata which is not in either our memory inventory or our SQL inventory. We probably cleaned it out after advertising it but before they got around to asking for it.' % self.peer) + logger.warning('%s asked for an object with a getdata which is not in either our memory inventory or our SQL inventory. We probably cleaned it out after advertising it but before they got around to asking for it.' % (self.peer,)) # Our peer has requested (in a getdata message) that we send an object. def sendObject(self, payload):