title: Does every transaction creates a new block in blockchain?
body: <pre><code>class Block:
     def __init__(self, index, transactions, previous_hash):
          self.index = index
          self.transactions = transactions
          self.previous_hash = previous_hash
          self.timestamp = time()
  
  class BlockChain:
      self.chain = []
  
      def new_block(self, transactions):
          pass
  </code></pre>
  
  <p>lets say I make new a transaction <code>{'sender': 'bob', 'receiver': 'alice', 'amount': 2}</code></p>
  
  <p>will this transaction create a new block in the chain (i.e. <code>self.chain.append(new_block_which_has_above_transaction</code>)</p>
  
  <p>or will it get last block in the chain (i.e. <code>len(self.chain)-1</code>) and modify the <code>self.transactions</code> of this block.</p>
  
  <p><a href="https://hackernoon.com/learn-blockchains-by-building-one-117428612f46" rel="nofollow noreferrer">https://hackernoon.com/learn-blockchains-by-building-one-117428612f46</a>
  In this article, author is using <code>self.transactions</code> as a list and thats where I'm getting confused. </p>
  
  <p>As per my understanding, every new transaction will create a new block with that transaction and that block will be appended to blockchain. if some one mine a new block, few coins will be awarded to miner as a transaction.
  is that correct flow? or can a block has multiple transactions? if yes -</p>
  
  <ul>
  <li><p>1) should a genesis block has multiple transactions?</p>
  
  <p>2) what if two nodes have different chain(I mean we need to resolve
  using consensus algorithm) but meanwhile if that node process a
  transaction then hash of that block would be changed and then what would happen to neighbour node's chain?</p></li>
  </ul>