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
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