Hi, I am a beginner in python. I am working on blockchain and I am trying to transfer hashes through socket programming but on the client-side, I am receiving nothing. Can anyone please help me if this work can be done through a database like i can store hashes on a local database kindly guide me
Thank you.
import socket
import pandas as pd
import pickle
import hashlib
df = pd.read_csv(r"C:\Users\DELL\OneDrive\Desktop\mythesisdataset.csv",
names=[ 'SBP', 'DBP', 'HEARTRATE', "Temperature" ])
normal_df = (df [ (df.SBP > 120) & (df.DBP > 90) & (df.HEARTRATE < 100) & (df [ 'Temperature' ] < 100) ])
class Block:
def __init__( self, previous_block_hash, transaction_list ):
self.previous_block_hash = previous_block_hash
self.transaction_list = transaction_list
self.block_data = f"{' - '.join(transaction_list)} - {previous_block_hash}"
self.block_hash = hashlib.sha256(self.block_data.encode()).hexdigest()
class Blockchain:
def __init__( self ):
self.chain = [ ]
self.generate_genesis_block()
def generate_genesis_block( self ):
self.chain.append(Block("0", [ 'Genesis Block' ]))
def create_block_from_transaction( self, transaction_list ):
previous_block_hash = self.last_block.block_hash
self.chain.append(Block(previous_block_hash, transaction_list))
def display_chain( self ):
for i in range(len(self.chain)):
print(f"Hash {i + 1}: {self.chain [ i ].block_hash}\n")
@property
def last_block( self ):
return self.chain [ -1 ]
t1 = "abcdergfhiklm"
t2 = "abcdefghijklmnopqrstuvwxyz"
t3 = normal_df
myblockchain = Blockchain()
myblockchain.create_block_from_transaction(t1)
myblockchain.create_block_from_transaction(t2)
myblockchain.create_block_from_transaction(t3)
myblockchain.display_chain()
print(myblockchain.display_chain())
while True:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostname()
port = 5007
s.bind((host, port))
print("host name:", host, " socket name:", socket)
s.listen()
c, addr = s.accept()
# print('Got connection from', addr, '...')
df2 = pickle.dumps(myblockchain.display_chain())
c.send(df2)
c.close() # Close the connection
Client side
import pickle
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
# Connect to server and send data
sock.connect((socket.gethostname(), 5007))
# Receive data from the server and shut down
data = (sock.recv(4096))
#df3 = pickle.loads(data)
print("Hash receive")
print(data)
finally:
sock.close()
0 Answer(s)