def test_query(tx_json): query_ret = PRC_Client.abci_query(tx_json) print(query_ret) key_str = query_ret['result']['response']['key'] if (key_str != None): print("key:" + TypesUtil.base64_to_ascii(key_str)) value_str = query_ret['result']['response']['value'] if (value_str != None): str_ascii = TypesUtil.base64_to_ascii(value_str) print("value:" + str_ascii)
def verify_hashmodel(model_name): ''' Verify model hash value by querying blockchain Args: model_name: model file Returns: Verified result: True or False ''' # 1) Load model from file ls_time_exec = [] start_time=time.time() model=ModelUtils.load_model(model_name) ls_time_exec.append( format( time.time()-start_time, '.3f' ) ) # 2) Calculate hash value of model start_time=time.time() hash_value=ModelUtils.hash_model(model) ls_time_exec.append( format( time.time()-start_time, '.3f' ) ) model_hash={} model_hash[model_name]=str(hash_value) # 3) Read token data using call query_json = {} query_json['data']='"' + model_name +'"' start_time=time.time() query_ret=Tender_RPC.abci_query(query_json) ls_time_exec.append( format( time.time()-start_time, '.3f' ) ) # -------- parse value from response and display it ------------ key_str=query_ret['result']['response']['key'] value_str=query_ret['result']['response']['value'] logger.info("Fetched model hash value:") logger.info("model: {}".format(TypesUtil.base64_to_ascii(key_str)) ) if( value_str!= None): query_hash_value = TypesUtil.hex_to_string(TypesUtil.base64_to_ascii(value_str)) else: query_hash_value = '' logger.info("value: {}".format(query_hash_value)) # Prepare log messgae str_time_exec=" ".join(ls_time_exec) FileUtil.save_testlog('test_results', 'exec_verify_hashmodel_tendermint.log', str_time_exec) # 4) return verify hash model result return model_hash[model_name]==str(query_hash_value)