def mine_block(self): if self.public_key == None: return None hashed_last_block = hash_block(self.get_last_blockchain_value()) proof = self.proof_of_work() block = Block(len(self.__chain), hashed_last_block, self.__date_de_introdus, proof) for rez in block.rezultate: if not Carnet.verify_rezultat(rez): return None self.__chain.append(block) self.__date_de_introdus = [] self.save_data() for node in self.__peer_nodes: url = 'http://{}/broadcast_block'.format(node) block_convertit = block.__dict__.copy() block_convertit['rezultate'] = [ rez.to_ordered_dict() for rez in block_convertit['rezultate'] ] try: response = requests.post(url, json={'block': block_convertit}) if response.status_code == 400 or response.status_code == 500: print('bloc aiurea') if response.status_code == 409: self.resolve_conflicts = True except requests.exceptions.ConnectionError: continue return block
def add_nota(self, emitator, receptor, info_didactic, semnatura, is_receiving=False): rezultat = Rezultat(emitator, receptor, info_didactic, semnatura) print(rezultat) if not Carnet.verify_rezultat(rezultat): return False self.__date_de_introdus.append(rezultat) self.save_data() if not is_receiving: for node in self.__peer_nodes: url = 'http://{}/broadcast_note'.format(node) try: response = requests.post( url, json={ 'emitator': emitator, 'receptor': receptor, 'info_didactic': info_didactic.to_ordered_dict(), 'semnatura': semnatura }) if response.status_code == 400 or response.status_code == 500: print('nota aiurea') return False except requests.exceptions.ConnectionError: continue return True