input: Write a function to create a simple blockchain system in Python. The function should define a Block class that takes index, timestamp, data, and previous_hash as parameters, and a hashing function to create the block's hash. It should also define a function to create the blockchain and a function to print the blockchain.
  
  class Block:
      def __init__(self, index, timestamp, data, previous_hash):
          self.index = index
          self.timestamp = timestamp
          self.data = data
          self.previous_hash = previous_hash
          self.hash = self.hash_block()
  
      def hash_block(self):
          sha = hashlib.sha256()
          sha.update((str(self.index) +
                      str(self.timestamp) +
                      str(self.data) +
                      str(self.previous_hash)).encode('utf-8'))
          return sha.hexdigest()
  
  def create_blockchain(transactions):
      blockchain = []
      genesis_block = Block(0, '01/01/2023', 'Genesis Block', '0')
      blockchain.append(genesis_block)
      previous_block = genesis_block
  
      for i in range(1, len(transactions)):
          block_to_add = Block(i, '01/01/2023', transactions[i], previous_block.hash)
          blockchain.append(block_to_add)
          previous_block = block_to_add
  
      return blockchain
  
  def print_blockchain(blockchain):
      for block in blockchain:
          print(f"Index: {block.index}, Timestamp: {block.timestamp}, Data: {block.data}, Hash: {block.hash}")
  
  assert print_blockchain(create_blockchain(['Transaction1', 'Transaction2', 'Transaction3']))==None
output: class Block:
      def __init__(self, index, timestamp, data, previous_hash):
          self.index = index
          self.timestamp = timestamp
          self.data = data
          self.previous_hash = previous_hash
          self.hash = self.hash_block()
  
      def hash_block(self):
          sha = hashlib.sha256()
          sha.update((str(self.index) +
                      str(self.timestamp) +
                      str(self.data) +
                      str(self.previous_hash)).encode('utf-8'))
          return sha.hexdigest()
  
  def create_blockchain(transactions):
      blockchain = []
      genesis_block = Block(0, '01/01/2023', 'Genesis Block', '0')
      blockchain.append(genesis_block)
      previous_block = genesis_block
  
      for i in range(1, len(transactions)):
          block_to_add = Block(i, '01/01/2023', transactions[i], previous_block.hash)
          blockchain.append(block_to_add)
          previous_block = block_to_add
  
      return blockchain
  
  def print_blockchain(blockchain):
      for block in blockchain:
          print(f"Index: {block.index}, Timestamp: {block.timestamp}, Data: {block.data}, Hash: {block.hash}")