This simple program shows how public blockchains allow anyone to join and add data, while private blockchains only allow known members.
class Blockchain:
def __init__(self, is_public):
self.is_public = is_public
self.members = []
self.data = []
def join(self, member):
if self.is_public or member in self.members:
print(f"{member} joined the blockchain.")
if member not in self.members:
self.members.append(member)
else:
print(f"{member} cannot join this private blockchain.")
def add_data(self, member, data):
if self.is_public or member in self.members:
self.data.append((member, data))
print(f"{member} added data: {data}")
else:
print(f"{member} cannot add data to this private blockchain.")
# Public blockchain example
public_chain = Blockchain(is_public=True)
public_chain.join("Alice")
public_chain.add_data("Alice", "Transaction 1")
# Private blockchain example
private_chain = Blockchain(is_public=False)
private_chain.members = ["Bob", "Carol"]
private_chain.join("Bob")
private_chain.add_data("Bob", "Private Transaction")
private_chain.join("Eve")
private_chain.add_data("Eve", "Hacker Transaction")