input: Write a function to create a basic blockchain in Python using only the core modules. The function should define a Blockchain class with methods for initializing the blockchain, creating a new block with a non-negative integer nonce and the hash of the previous block, and hashing a block using the SHA-256 algorithm. Ensure that the output includes a method to retrieve the current timestamp in milliseconds, which should be used to set the timestamp for each new block.
  
  assert Blockchain().create_block(12345, "0000000000000000000000000000000000000000000000000000000000000000")['block_number'] == 1
  assert len(Blockchain().hash_block({'block_number': 1, 'timestamp': 1234567890000, 'nonce': 12345, 'previous_hash': "0000000000000000000000000000000000000000000000000000000000000000"})) == 64
output: class Blockchain:
      def __init__(self):
          self.chain = []
          self.create_block(nonce=0, previous_hash='0'*64)
  
      def create_block(self, nonce, previous_hash):
          block = {
              'block_number': len(self.chain) + 1,
              'timestamp': self.get_current_timestamp(),
              'nonce': nonce,
              'previous_hash': previous_hash
          }
          self.chain.append(block)
          return block
  
      def hash_block(self, block):
          import hashlib
          block_string = str(block).encode()
          return hashlib.sha256(block_string).hexdigest()
  
      def get_current_timestamp(self):
          import time
          return int(time.time() * 1000)