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 helpers import SignatureHelper as Signature
|
||||
from helpers import UtilityHelper
|
||||
from helpers import SocketHelper as socketHelper
|
||||
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
load_dotenv()
|
||||
|
||||
class User:
|
||||
def __init__(self, db, private_ser=None, public_ser=None, username=None, password=None):
|
||||
@ -10,6 +15,9 @@ class User:
|
||||
self.username = username
|
||||
self.password = password
|
||||
|
||||
self.peer_port = int(os.getenv("PEER_PORT"))
|
||||
self.peer_ip_addr = os.getenv("PEER_IP")
|
||||
|
||||
def login(self):
|
||||
print("Keep input empty to return")
|
||||
input_username = input("Username: ")
|
||||
@ -56,6 +64,8 @@ class User:
|
||||
private_ser, public_ser = Signature.keysToBytes(private_key, public_key)
|
||||
# register user
|
||||
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.public_ser = public_ser
|
||||
self.username = input_username
|
||||
@ -87,6 +97,8 @@ class User:
|
||||
hashed_old_password = UtilityHelper.computeHash(old_password)
|
||||
|
||||
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')}")
|
||||
else:
|
||||
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:
|
||||
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')}")
|
||||
else:
|
||||
print(f"{UtilityHelper.errorMessage('Something went wrong while trying to update username..')}")
|
||||
@ -126,6 +140,8 @@ class User:
|
||||
print(f"{UtilityHelper.warningMessage('Invalid input')}")
|
||||
|
||||
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')}")
|
||||
self.logout()
|
||||
return True
|
||||
|
@ -58,4 +58,3 @@ if __name__ == "__main__":
|
||||
|
||||
connection_thread = threading.Thread(target=socketHelper.connection, args=(ip,port,db,))
|
||||
connection_thread.start()
|
||||
|
||||
|
@ -1,10 +1,12 @@
|
||||
from classes.Transaction import Tx
|
||||
from classes.TxBlock import TxBlock
|
||||
from helpers import UtilityHelper as utilityHelper
|
||||
import time
|
||||
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
|
||||
|
||||
def exploreBlocks(self):
|
||||
@ -192,7 +194,7 @@ def createBlock(self):
|
||||
# create block
|
||||
for i in selected_transactions:
|
||||
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:
|
||||
del transactions[i]
|
||||
except:
|
||||
@ -291,15 +293,17 @@ def validateMinedBlock(self):
|
||||
for transaction in new_block.data:
|
||||
if transaction.type != 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}")
|
||||
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.inputs[0][0], time.time(), f"Transaction of {transaction.inputs[0][1]} is added in 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)
|
||||
new_reward = Tx()
|
||||
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)
|
||||
|
||||
# NEW SEND TRANSACTION
|
||||
socketHelper.sendObj(self.peer_ip_addr, new_reward, self.peer_port)
|
||||
|
||||
try:
|
||||
del blocks[-1]
|
||||
@ -312,9 +316,6 @@ def validateMinedBlock(self):
|
||||
# NEW SEND BLOCK
|
||||
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:
|
||||
utilityHelper.addFile("../data/ledger.dat", block)
|
||||
|
||||
@ -324,7 +325,7 @@ def validateMinedBlock(self):
|
||||
new_block.metadata['false_validations'] += 1
|
||||
if new_block.metadata['false_validations'] >= 3:
|
||||
# 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
|
||||
for transaction in new_block.data:
|
||||
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.commit()
|
||||
|
||||
# NEW SEND USER
|
||||
socketHelper.sendObj("localhost", ["USER CREATE",private_key, public_key, username, password], 5050)
|
||||
return True
|
||||
except sqlite3.Error as error:
|
||||
return False
|
||||
@ -74,8 +72,6 @@ class DatabaseHelper:
|
||||
if self.cursor.rowcount < 1:
|
||||
return False
|
||||
|
||||
# NEW SEND USER
|
||||
socketHelper.sendObj("localhost", ["USER CHANGE PASSWORD",user_privatekey, old_password, password], 5050)
|
||||
return True
|
||||
|
||||
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.commit()
|
||||
|
||||
# NEW SEND USER
|
||||
socketHelper.sendObj("localhost", ["USER CHANGE USERNAME",user_privatekey, username], 5050)
|
||||
|
||||
return True
|
||||
|
||||
except sqlite3.Error as error:
|
||||
@ -108,8 +101,6 @@ class DatabaseHelper:
|
||||
self.cursor.execute("DELETE FROM `users` WHERE `private_key` = ?", (user_privatekey, ))
|
||||
self.commit()
|
||||
|
||||
# NEW SEND USER
|
||||
socketHelper.sendObj("localhost", ["USER DELETE",user_privatekey], 5050)
|
||||
return True
|
||||
|
||||
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.commit()
|
||||
|
||||
# NEW SEND USER
|
||||
socketHelper.sendObj("localhost", ["CREATE LOG",public_key,date,info,unread], 5050)
|
||||
|
||||
except sqlite3.Error as error:
|
||||
return None
|
||||
|
||||
|
||||
def getLatestLogs(self, public_key):
|
||||
if not self.conn:
|
||||
return None
|
||||
@ -175,9 +162,6 @@ class DatabaseHelper:
|
||||
self.cursor.execute("UPDATE `logs` SET `unread` = ? WHERE `id` = ?", (unread, id, ))
|
||||
self.commit()
|
||||
|
||||
# NEW SEND USER
|
||||
socketHelper.sendObj("localhost", ["UPDATE LOG STATUS",id,unread], 5050)
|
||||
|
||||
except sqlite3.Error as error:
|
||||
return False
|
||||
|
||||
|
@ -89,7 +89,7 @@ def connection(ip, port, db):
|
||||
continue
|
||||
|
||||
case "UPDATE LOG STATUS":
|
||||
db.updateLogStatus(item[1], item[2])
|
||||
db.updateLogStatus(item[1])
|
||||
continue
|
||||
|
||||
# changes on newServerConnection
|
||||
|
@ -1,4 +1,5 @@
|
||||
from helpers import UtilityHelper as utilityHelper
|
||||
from helpers import SocketHelper as socketHelper
|
||||
import time
|
||||
|
||||
def displayUnreadLogs(self):
|
||||
@ -11,6 +12,8 @@ def displayUnreadLogs(self):
|
||||
|
||||
for log in logs:
|
||||
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):
|
||||
logs = self.db.getLatestLogs(self.user.public_ser)
|
||||
@ -83,3 +86,7 @@ def getPersonalTransactions(self):
|
||||
print(f"Total balance: {total_output - total_input}")
|
||||
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