fixed overload of user requests, added ports to env
This commit is contained in:
parent
0b9147e84a
commit
7eb3c80812
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,6 +1,11 @@
|
|||||||
from getpass import getpass
|
from getpass import getpass
|
||||||
from helpers import SignatureHelper as Signature
|
from helpers import SignatureHelper as Signature
|
||||||
from helpers import UtilityHelper
|
from helpers import UtilityHelper
|
||||||
|
from helpers import SocketHelper as socketHelper
|
||||||
|
|
||||||
|
import os
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
class User:
|
class User:
|
||||||
def __init__(self, db, private_ser=None, public_ser=None, username=None, password=None):
|
def __init__(self, db, private_ser=None, public_ser=None, username=None, password=None):
|
||||||
@ -10,6 +15,9 @@ class User:
|
|||||||
self.username = username
|
self.username = username
|
||||||
self.password = password
|
self.password = password
|
||||||
|
|
||||||
|
self.peer_port = int(os.getenv("PEER_PORT"))
|
||||||
|
self.peer_ip_addr = os.getenv("PEER_IP")
|
||||||
|
|
||||||
def login(self):
|
def login(self):
|
||||||
print("Keep input empty to return")
|
print("Keep input empty to return")
|
||||||
input_username = input("Username: ")
|
input_username = input("Username: ")
|
||||||
@ -56,6 +64,8 @@ class User:
|
|||||||
private_ser, public_ser = Signature.keysToBytes(private_key, public_key)
|
private_ser, public_ser = Signature.keysToBytes(private_key, public_key)
|
||||||
# register user
|
# register user
|
||||||
if self.db.createUser( private_ser, public_ser, input_username, hashed_password):
|
if self.db.createUser( private_ser, public_ser, input_username, hashed_password):
|
||||||
|
# NEW SEND USER
|
||||||
|
socketHelper.sendObj(self.peer_ip_addr, ["USER CREATE",private_ser, public_ser, input_username, hashed_password], self.peer_port)
|
||||||
self.private_ser = private_ser
|
self.private_ser = private_ser
|
||||||
self.public_ser = public_ser
|
self.public_ser = public_ser
|
||||||
self.username = input_username
|
self.username = input_username
|
||||||
@ -87,6 +97,8 @@ class User:
|
|||||||
hashed_old_password = UtilityHelper.computeHash(old_password)
|
hashed_old_password = UtilityHelper.computeHash(old_password)
|
||||||
|
|
||||||
if self.db.changePassword(self.private_ser, hashed_old_password, hashed_new_password) == True:
|
if self.db.changePassword(self.private_ser, hashed_old_password, hashed_new_password) == True:
|
||||||
|
# NEW SEND USER
|
||||||
|
socketHelper.sendObj(self.peer_ip_addr, ["USER CHANGE PASSWORD",self.private_ser, hashed_old_password, hashed_new_password], self.peer_port)
|
||||||
print(f"{UtilityHelper.successMessage('Password updated')}")
|
print(f"{UtilityHelper.successMessage('Password updated')}")
|
||||||
else:
|
else:
|
||||||
print(f"{UtilityHelper.errorMessage('Something went wrong while trying to update password..')}")
|
print(f"{UtilityHelper.errorMessage('Something went wrong while trying to update password..')}")
|
||||||
@ -105,6 +117,8 @@ class User:
|
|||||||
|
|
||||||
if self.db.changeUsername(self.private_ser, new_username) == True:
|
if self.db.changeUsername(self.private_ser, new_username) == True:
|
||||||
self.username = new_username
|
self.username = new_username
|
||||||
|
# NEW SEND USER
|
||||||
|
socketHelper.sendObj(self.peer_ip_addr, ["USER CHANGE USERNAME",self.private_ser, new_username], self.peer_port)
|
||||||
print(f"{UtilityHelper.successMessage('Username updated')}")
|
print(f"{UtilityHelper.successMessage('Username updated')}")
|
||||||
else:
|
else:
|
||||||
print(f"{UtilityHelper.errorMessage('Something went wrong while trying to update username..')}")
|
print(f"{UtilityHelper.errorMessage('Something went wrong while trying to update username..')}")
|
||||||
@ -126,6 +140,8 @@ class User:
|
|||||||
print(f"{UtilityHelper.warningMessage('Invalid input')}")
|
print(f"{UtilityHelper.warningMessage('Invalid input')}")
|
||||||
|
|
||||||
if self.db.deleteUser(self.private_ser) == True:
|
if self.db.deleteUser(self.private_ser) == True:
|
||||||
|
# NEW SEND USER
|
||||||
|
socketHelper.sendObj(self.peer_ip_addr, ["USER DELETE",self.private_ser], self.peer_port)
|
||||||
print(f"{UtilityHelper.successMessage('Account deleted')}")
|
print(f"{UtilityHelper.successMessage('Account deleted')}")
|
||||||
self.logout()
|
self.logout()
|
||||||
return True
|
return True
|
||||||
|
@ -58,4 +58,3 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
connection_thread = threading.Thread(target=socketHelper.connection, args=(ip,port,db,))
|
connection_thread = threading.Thread(target=socketHelper.connection, args=(ip,port,db,))
|
||||||
connection_thread.start()
|
connection_thread.start()
|
||||||
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
from classes.Transaction import Tx
|
from classes.Transaction import Tx
|
||||||
from classes.TxBlock import TxBlock
|
from classes.TxBlock import TxBlock
|
||||||
from helpers import UtilityHelper as utilityHelper
|
from helpers import UtilityHelper as utilityHelper
|
||||||
import time
|
|
||||||
from helpers import SocketHelper as socketHelper
|
from helpers import SocketHelper as socketHelper
|
||||||
|
from helpers import TaskHelper as taskHelper
|
||||||
|
|
||||||
MIN_MINING_TIME = 10
|
import time
|
||||||
|
|
||||||
|
MIN_MINING_TIME = 0
|
||||||
MAX_MINING_TIME = 20
|
MAX_MINING_TIME = 20
|
||||||
|
|
||||||
def exploreBlocks(self):
|
def exploreBlocks(self):
|
||||||
@ -192,7 +194,7 @@ def createBlock(self):
|
|||||||
# create block
|
# create block
|
||||||
for i in selected_transactions:
|
for i in selected_transactions:
|
||||||
if not transactions[i].is_valid():
|
if not transactions[i].is_valid():
|
||||||
self.db.createLog(transactions[i].inputs[0][0], time.time(), f"Transaction of {transactions[i].outputs[0][1]} with {transactions[i].inputs[0][1] - transactions[i].outputs[0][1]} coins fee is declined")
|
taskHelper.createLog(self, transactions[i].inputs[0][0], time.time(), f"Transaction of {transactions[i].outputs[0][1]} with {transactions[i].inputs[0][1] - transactions[i].outputs[0][1]} coins fee is declined")
|
||||||
try:
|
try:
|
||||||
del transactions[i]
|
del transactions[i]
|
||||||
except:
|
except:
|
||||||
@ -291,15 +293,17 @@ def validateMinedBlock(self):
|
|||||||
for transaction in new_block.data:
|
for transaction in new_block.data:
|
||||||
if transaction.type != 1:
|
if transaction.type != 1:
|
||||||
fees += transaction.inputs[0][1] - transaction.outputs[0][1]
|
fees += transaction.inputs[0][1] - transaction.outputs[0][1]
|
||||||
self.db.createLog(transaction.inputs[0][0], time.time(), f"Transaction of {transaction.inputs[0][1]} is added in block id {new_block.id}")
|
taskHelper.createLog(self, transaction.inputs[0][0], time.time(), f"Transaction of {transaction.inputs[0][1]} is added in block id {new_block.id}")
|
||||||
self.db.createLog(transaction.outputs[0][0], time.time(), f"You have received new coins: {transaction.outputs[0][1]}, To see all info view block id {new_block.id}")
|
taskHelper.createLog(self, transaction.outputs[0][0], time.time(), f"You have received new coins: {transaction.outputs[0][1]}, To see all info view block id {new_block.id}")
|
||||||
fees = round(fees, 2)
|
fees = round(fees, 2)
|
||||||
new_reward = Tx()
|
new_reward = Tx()
|
||||||
new_reward.createRewardTransaction(new_block.metadata['miner'], self.user.private_ser, "MINE", fees)
|
new_reward.createRewardTransaction(new_block.metadata['miner'], self.user.private_ser, "MINE", fees)
|
||||||
|
|
||||||
self.db.createLog(new_block.metadata['miner'], time.time(), f"Block id {new_block.id}, is validated! You received a reward of {fees + 25} coins!")
|
taskHelper.createLog(self, new_block.metadata['miner'], time.time(), f"Block id {new_block.id}, is validated! You received a reward of {fees + 25} coins!")
|
||||||
utilityHelper.addFile("../data/transaction_pool.dat", new_reward)
|
utilityHelper.addFile("../data/transaction_pool.dat", new_reward)
|
||||||
|
|
||||||
|
# NEW SEND TRANSACTION
|
||||||
|
socketHelper.sendObj(self.peer_ip_addr, new_reward, self.peer_port)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
del blocks[-1]
|
del blocks[-1]
|
||||||
@ -312,9 +316,6 @@ def validateMinedBlock(self):
|
|||||||
# NEW SEND BLOCK
|
# NEW SEND BLOCK
|
||||||
socketHelper.sendObj(self.peer_ip_addr, new_block, self.peer_port)
|
socketHelper.sendObj(self.peer_ip_addr, new_block, self.peer_port)
|
||||||
|
|
||||||
# NEW SEND TRANSACTION
|
|
||||||
socketHelper.sendObj(self.peer_ip_addr, new_reward, self.peer_port)
|
|
||||||
|
|
||||||
for block in blocks:
|
for block in blocks:
|
||||||
utilityHelper.addFile("../data/ledger.dat", block)
|
utilityHelper.addFile("../data/ledger.dat", block)
|
||||||
|
|
||||||
@ -324,7 +325,7 @@ def validateMinedBlock(self):
|
|||||||
new_block.metadata['false_validations'] += 1
|
new_block.metadata['false_validations'] += 1
|
||||||
if new_block.metadata['false_validations'] >= 3:
|
if new_block.metadata['false_validations'] >= 3:
|
||||||
# Create log for miner
|
# Create log for miner
|
||||||
self.db.createLog(new_block.metadata['miner'], time.time(), f"Block id {new_block.id}, was flagged invalid. Mine unsuccesful...")
|
taskHelper.createLog(self, new_block.metadata['miner'], time.time(), f"Block id {new_block.id}, was flagged invalid. Mine unsuccesful...")
|
||||||
# setsaveFil transactions in block back to the pool
|
# setsaveFil transactions in block back to the pool
|
||||||
for transaction in new_block.data:
|
for transaction in new_block.data:
|
||||||
utilityHelper.addFile("../data/transaction_pool.dat", transaction)
|
utilityHelper.addFile("../data/transaction_pool.dat", transaction)
|
||||||
|
@ -58,8 +58,6 @@ class DatabaseHelper:
|
|||||||
self.cursor.execute("INSERT INTO `users` (private_key, public_key, username, password) VALUES (?, ?, ?, ?)", (private_key, public_key, username, password,))
|
self.cursor.execute("INSERT INTO `users` (private_key, public_key, username, password) VALUES (?, ?, ?, ?)", (private_key, public_key, username, password,))
|
||||||
self.commit()
|
self.commit()
|
||||||
|
|
||||||
# NEW SEND USER
|
|
||||||
socketHelper.sendObj("localhost", ["USER CREATE",private_key, public_key, username, password], 5050)
|
|
||||||
return True
|
return True
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
return False
|
return False
|
||||||
@ -74,8 +72,6 @@ class DatabaseHelper:
|
|||||||
if self.cursor.rowcount < 1:
|
if self.cursor.rowcount < 1:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# NEW SEND USER
|
|
||||||
socketHelper.sendObj("localhost", ["USER CHANGE PASSWORD",user_privatekey, old_password, password], 5050)
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
@ -90,9 +86,6 @@ class DatabaseHelper:
|
|||||||
self.cursor.execute("UPDATE `users` SET username = ? WHERE `private_key` = ?", (username, user_privatekey,))
|
self.cursor.execute("UPDATE `users` SET username = ? WHERE `private_key` = ?", (username, user_privatekey,))
|
||||||
self.commit()
|
self.commit()
|
||||||
|
|
||||||
# NEW SEND USER
|
|
||||||
socketHelper.sendObj("localhost", ["USER CHANGE USERNAME",user_privatekey, username], 5050)
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
@ -108,8 +101,6 @@ class DatabaseHelper:
|
|||||||
self.cursor.execute("DELETE FROM `users` WHERE `private_key` = ?", (user_privatekey, ))
|
self.cursor.execute("DELETE FROM `users` WHERE `private_key` = ?", (user_privatekey, ))
|
||||||
self.commit()
|
self.commit()
|
||||||
|
|
||||||
# NEW SEND USER
|
|
||||||
socketHelper.sendObj("localhost", ["USER DELETE",user_privatekey], 5050)
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
@ -135,13 +126,9 @@ class DatabaseHelper:
|
|||||||
self.cursor.execute("INSERT INTO `logs` (public_key, date, info, unread) VALUES (?, ?, ?, ?)", (public_key, date, info, unread,))
|
self.cursor.execute("INSERT INTO `logs` (public_key, date, info, unread) VALUES (?, ?, ?, ?)", (public_key, date, info, unread,))
|
||||||
self.commit()
|
self.commit()
|
||||||
|
|
||||||
# NEW SEND USER
|
|
||||||
socketHelper.sendObj("localhost", ["CREATE LOG",public_key,date,info,unread], 5050)
|
|
||||||
|
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def getLatestLogs(self, public_key):
|
def getLatestLogs(self, public_key):
|
||||||
if not self.conn:
|
if not self.conn:
|
||||||
return None
|
return None
|
||||||
@ -175,9 +162,6 @@ class DatabaseHelper:
|
|||||||
self.cursor.execute("UPDATE `logs` SET `unread` = ? WHERE `id` = ?", (unread, id, ))
|
self.cursor.execute("UPDATE `logs` SET `unread` = ? WHERE `id` = ?", (unread, id, ))
|
||||||
self.commit()
|
self.commit()
|
||||||
|
|
||||||
# NEW SEND USER
|
|
||||||
socketHelper.sendObj("localhost", ["UPDATE LOG STATUS",id,unread], 5050)
|
|
||||||
|
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ def connection(ip, port, db):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
case "UPDATE LOG STATUS":
|
case "UPDATE LOG STATUS":
|
||||||
db.updateLogStatus(item[1], item[2])
|
db.updateLogStatus(item[1])
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# changes on newServerConnection
|
# changes on newServerConnection
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from helpers import UtilityHelper as utilityHelper
|
from helpers import UtilityHelper as utilityHelper
|
||||||
|
from helpers import SocketHelper as socketHelper
|
||||||
import time
|
import time
|
||||||
|
|
||||||
def displayUnreadLogs(self):
|
def displayUnreadLogs(self):
|
||||||
@ -11,6 +12,8 @@ def displayUnreadLogs(self):
|
|||||||
|
|
||||||
for log in logs:
|
for log in logs:
|
||||||
self.db.updateLogStatus(log[0])
|
self.db.updateLogStatus(log[0])
|
||||||
|
# NEW SEND USER
|
||||||
|
socketHelper.sendObj(self.peer_ip_addr, ["UPDATE LOG STATUS",log[0]], self.peer_port)
|
||||||
|
|
||||||
def displayLogs(self):
|
def displayLogs(self):
|
||||||
logs = self.db.getLatestLogs(self.user.public_ser)
|
logs = self.db.getLatestLogs(self.user.public_ser)
|
||||||
@ -83,3 +86,7 @@ def getPersonalTransactions(self):
|
|||||||
print(f"Total balance: {total_output - total_input}")
|
print(f"Total balance: {total_output - total_input}")
|
||||||
print("-----------------------------------------------------------------------------------")
|
print("-----------------------------------------------------------------------------------")
|
||||||
|
|
||||||
|
def createLog(self, public_key, date, info, unread = 0):
|
||||||
|
self.db.createLog(public_key, date, info, unread)
|
||||||
|
# NEW SEND USER
|
||||||
|
socketHelper.sendObj(self.peer_ip_addr, ["CREATE LOG",public_key, date, info, unread], self.peer_port)
|
Loading…
x
Reference in New Issue
Block a user