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"})
Esempio n. 4
0
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"})
Esempio n. 7
0
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"})