Esempio n. 1
0
 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
Esempio n. 2
0
 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