input: Write a function to build a simple blockchain system in Python. The function should define a Block class with an __init__ method to initialize the block with index, timestamp, data, and previous_hash, and a hash_block method to create the hash of the block contents. The function should also define a create_blockchain function to create the blockchain, and a print_blockchain function to print the details of each block in the blockchain.
  def build_simple_blockchain():
      import hashlib
      import json
  
      # Define the Block class
      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()
  
          # Create the hash of the block contents
          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()
  
      # Create the blockchain
      def create_blockchain():
          blockchain = [create_genesis_block()]
          previous_block = blockchain[0]
  
          # Add blocks for each item in the list of transactions
          for i in range(1, len(blockchain_transactions)):
              block_to_add = next_block(previous_block, blockchain_transactions[i])
              blockchain.append(block_to_add)
              previous_block = block_to_add
  
      # Print the blockchain
      def print_blockchain():
          for block in blockchain:
              block_index = str(block.index)
              block_timestamp = str(block.timestamp)
              block_data = str(block.data)
              block_hash = block.hash
  
      assert create_genesis_block()
      assert next_block(previous_block, transaction)
      assert create_blockchain(blockchain_transactions)
output: def build_simple_blockchain():
      import hashlib
      import json
      import time
  
      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_genesis_block():
          return Block(0, time.time(), "Genesis Block", "0")
  
      def next_block(last_block, data):
          this_index = last_block.index + 1
          this_timestamp = time.time()
          this_data = data
          this_hash = last_block.hash
          return Block(this_index, this_timestamp, this_data, this_hash)
  
      def create_blockchain(transactions):
          blockchain = [create_genesis_block()]
          previous_block = blockchain[0]
  
          for i in range(1, len(transactions)):
              block_to_add = next_block(previous_block, transactions[i])
              blockchain.append(block_to_add)
              previous_block = block_to_add
  
          return blockchain
  
      def print_blockchain(blockchain):
          for block in blockchain:
              block_index = str(block.index)
              block_timestamp = str(block.timestamp)
              block_data = str(block.data)
              block_hash = block.hash
              print(f"Block {block_index} has been added to the blockchain!\n"
                    f"Timestamp: {block_timestamp}\n"
                    f"Data: {block_data}\n"
                    f"Hash: {block_hash}\n")