Exemple #1
0
def construirBloque(bloque):
    block = Block()
    print("hash del bloque", bloque["_id"])
    block.set_hash(bloque["_id"])
    block.indice = int(bloque["indice"])
    block.transacciones = bloque["transacciones"]

    block.prev_hash = bloque["prev_hash"]
    block.Nonce = bloque["Nonce"]
    block.MAX_TRANS = bloque["MAX_TRANS"]
    block.trabajo = bloque["trabajo"]
    return block
Exemple #2
0
    def prueba_de_minado(self,bloque):
    #el bloque me llega en formato json, por lo que para hacer la prueba de minado, primero creare el bloque con los datos del mismo y a ver si
    #cumple la prueba de trabajo

        block=Block()
        bloque=json.loads(bloque)

        block.indice=int(bloque["indice"])

        block.Nonce=int(bloque["Nonce"])
        block.prev_hash=bloque["prev_hash"]
        block.transacciones=bloque["transacciones"]
        #una vez tengo el bloque hago la prueba de trabajo
        nuevoHash=block.compute_hash()
        block.set_hash(nuevoHash)
        # print("el hash del bloque es:",bloque["_id"],"mientras que el nuevo hash es:",nuevoHash)

        #para que sea valido, el nonce no se tiene que haber modificado y el hash tampoco
        if block.Nonce==int(bloque["Nonce"]) and bloque["_id"]==nuevoHash:
            self.bloque_consenso=block
            return block
        else:
            print("ha habido un fallo")
            return False