def addNodeRequest(): content = request.json try: print("in request") name = decryptData(PRIVATE_KEY, content['name']) ipaddr = decryptData(PRIVATE_KEY, content['ipaddr']) publicKey = content['publicKey'] companyName = decryptData(PRIVATE_KEY, content['companyName']) companyID = decryptData(PRIVATE_KEY, content['companyID']) #verify if the node doesn't exist? addNodes(name, ipaddr, publicKey) ll = getAllClients() for i in ll: try: TEMP_KEY = "keys/tempKey.pem" saveKeyinFile(TEMP_KEY, i.publicKey) data = {} data["name"] = encryptData(TEMP_KEY, name) data["companyName"] = encryptData(TEMP_KEY, companyName) data["companyID"] = encryptData(TEMP_KEY, companyID) try: rr = requests.post(i.callback_URL + '/addNode', json=data) except Exception as e: print(e) except Exception as e: print(e) return jsonify({"code": 0, "status": "Node added"}) except: return jsonify({"code": 1, "status": "Something Went Wrong here"})
def clientTranSubmit(): content = request.json try: uid = decryptData(PRIVATE_KEY, content['uid']) status = decryptData(PRIVATE_KEY, content['status']) if status == "1": setVoteCount(uid, getVoteCount(uid) + 1) if calScore(uid) == True and str(getFlag(uid)) == "0": addToBlockChain(uid) #call others here ll = retrieveNodeList() for i in ll: try: TEMP_KEY = "keys/tempKey.pem" saveKeyinFile(TEMP_KEY, i.publicKey) data = {} data["uid"] = encryptData(TEMP_KEY, uid) data["status"] = encryptData(TEMP_KEY, status) rr = requests.post(i.ip + BASE_API + '/nodeTranSubmit', json=data) except Exception as e: print(e) return jsonify({"code": 0, "status": "OK Got IT"}) except Exception as e: print(e) return jsonify({"code": 1, "status": "Something Went Wrong"})
def nodeTranSubmit(): content = request.json try: uid = decryptData(PRIVATE_KEY, content['uid']) status = decryptData(PRIVATE_KEY, content['status']) if status == "1": setVoteCount(uid, getVoteCount(uid) + 1) if calScore(uid) == True and str(getFlag(uid)) == "0": addToBlockChain(uid) return jsonify({"code": 0, "status": "OK Got IT"}) except Exception as e: print(e) return jsonify({"code": 1, "status": "Something Went Wrong"})
def check_transaction(): data = request.get_json() print(data) try: dataToFunction = {} params = ["proposingNode", "transaction", "blockindex", "uid"] for i in params: dataToFunction[i] = decryptData(private_key_path, data[i]) print(dataToFunction) NotifyNewTransaction = webhook_functions["NotifyNewTransaction"] proposingNode = dataToFunction["proposingNode"] transaction = dataToFunction["transaction"] blockindex = dataToFunction["blockindex"] uid = dataToFunction["uid"] status = NotifyNewTransaction(proposingNode, transaction, blockindex, uid) print(status) if status == True: return jsonify({"code": 0, "status": "Transaction added"}) else: return jsonify({"code": 1, "status": "Something Went Wrong"}) except Exception as e: print(e) return jsonify({"code": 1, "status": "Something Went Wrong"})
def submitTransaction(): content = request.json try: transaction = decryptData(PRIVATE_KEY, content['transaction']) proposingNode = getName() blockindex = getLastIndex() timeStamp = str(datetime.datetime.now()) uid = str(uuid.uuid4()) addPendingTransaction(uid, proposingNode, transaction, blockindex, timeStamp) ll = retrieveNodeList() for i in ll: try: TEMP_KEY = "keys/tempKey.pem" saveKeyinFile(TEMP_KEY, i.publicKey) data = {} data["transaction"] = encryptData(TEMP_KEY, transaction) data["proposingNode"] = encryptData(TEMP_KEY, proposingNode) data["blockindex"] = encryptData(TEMP_KEY, blockindex) data["timeStamp"] = encryptData(TEMP_KEY, timeStamp) data["uid"] = encryptData(TEMP_KEY, uid) rr = requests.post(i.ip + BASE_API + '/getTransaction', json=data) except Exception as e: print(e) return jsonify({ "code": 0, "status": "Transaction is submitted to client", "uid": uid }) except Exception as e: print(e) return jsonify({"code": 1, "status": "Something Went Wrong"})
def getTransaction(): content = request.json try: proposingNode = decryptData(PRIVATE_KEY, content['proposingNode']) transaction = decryptData(PRIVATE_KEY, content['transaction']) blockindex = decryptData(PRIVATE_KEY, content['blockindex']) timeStamp = decryptData(PRIVATE_KEY, content['timeStamp']) uid = decryptData(PRIVATE_KEY, content['uid']) addPendingTransaction(uid, proposingNode, transaction, blockindex, timeStamp) #call client for transaction strucutre check ll = getAllClients() for i in ll: try: TEMP_KEY = "keys/tempKey.pem" saveKeyinFile(TEMP_KEY, i.publicKey) data = {} data["transaction"] = encryptData(TEMP_KEY, transaction) data["proposingNode"] = encryptData(TEMP_KEY, proposingNode) data["blockindex"] = encryptData(TEMP_KEY, blockindex) data["uid"] = encryptData(TEMP_KEY, uid) rr = requests.post(i.callback_URL + '/addTransaction', json=data) except Exception as e: print(e) ## #save in pending db #call client for verify return jsonify({ "code": 0, "status": "Transaction is submitted to client" }) except Exception as e: print(e) return jsonify({"code": 1, "status": "Something Went Wrong"})
def check_node(): data = request.get_json() print(data) try: dataToFunction = {} params = ["name", "companyName", "companyID"] for i in params: dataToFunction[i] = decryptData(private_key_path, data[i]) print(dataToFunction) NotifyNewNode = webhook_functions["NotifyNewNode"] name = dataToFunction["name"] companyName = dataToFunction["companyName"] companyID = dataToFunction["companyID"] status = NotifyNewNode(name, companyName, companyID) print(status) if status == True: return jsonify({"code": 0, "status": "Node added"}) else: return jsonify({"code": 1, "status": "Something Went Wrong"}) except Exception as e: print(e) return jsonify({"code": 1, "status": "Something Went Wrong"})