コード例 #1
0
ファイル: check.py プロジェクト: f-prime/BlooCoin
def check(obj, data):
    try:
        winstr = str(data['winning_string'])
        winhash = str(data['winning_hash'])
        addr = str(data['addr'])
    except KeyError:
        obj.send("False")
        obj.close()
        return

    if not mongo.db.addresses.find_one({"addr": addr}):
        obj.send("False")
        obj.close()
        return

    if winhash == sha512(winstr).hexdigest() and not mongo.db.coins.find_one(
        {"hash": winhash}) and winhash.startswith(
            difficulty() * "0") and mongo.db.addresses.find_one({"addr": addr
                                                                 }):
        obj.send("True")
        mongo.db.coins.insert({"hash": winhash, "addr": addr})
    else:
        obj.send("False")
    obj.close()
    return
コード例 #2
0
    def handle(self, *args, **kwargs):
        addr = self.data['addr']
        if not mongo.db.addresses.find_one({"addr": addr}):
            self.error("Your address does not exist")
            return

        winning_string = self.data['winning_string']
        winning_hash = self.data['winning_hash']

        is_same_hash = winning_hash == sha512(winning_string).hexdigest()
        coin_exists = mongo.db.coins.find_one({"hash": winning_hash})
        correct_diff = winning_hash.startswith(difficulty() * "0")
        if is_same_hash and not coin_exists and correct_diff:
            mongo.db.coins.insert({"hash": winning_hash, "addr": addr})
            self.success({"hash": winning_hash})
        else:
            # Intentionally a bit vague, just so it's not infinitely easy
            self.error("Something went wrong")
コード例 #3
0
ファイル: check.py プロジェクト: Max00355/BlooCoin
def check(obj, data):
    try:
        winstr = str(data['winning_string'])
        winhash = str(data['winning_hash'])
        addr = str(data['addr'])
    except KeyError:
        obj.send("False")
        obj.close()
        return
    
    if not mongo.db.addresses.find_one({"addr":addr}):
        obj.send("False")
        obj.close()
        return

    if winhash == sha512(winstr).hexdigest() and not mongo.db.coins.find_one({"hash":winhash}) and winhash.startswith(difficulty() * "0") and mongo.db.addresses.find_one({"addr":addr}):
        obj.send("True")
        mongo.db.coins.insert({"hash":winhash, "addr":addr})
    else:
        obj.send("False")
    obj.close()
    return