每个事务是否在区块链中创建新块?

时间:2018-01-01 07:55:27

标签: python blockchain

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

让我说我做了一个新的交易{'sender': 'bob', 'receiver': 'alice', 'amount': 2}

此事务会在链中创建一个新块(即self.chain.append(new_block_which_has_above_transaction

或它是否会获得链中的最后一个块(即len(self.chain)-1)并修改此块的self.transactions

https://hackernoon.com/learn-blockchains-by-building-one-117428612f46 在本文中,作者使用self.transactions作为列表,这就是我感到困惑的地方。

根据我的理解,每个新事务都将使用该事务创建一个新块,该块将附加到区块链。如果有人开采新区块,那么很少有硬币将作为交易授予矿工。 那是正确的流程吗?或者一个块有多个交易?如果是的话 -

  • 1)创世区块应该有多笔交易吗?

    2)如果两个节点具有不同的链(我的意思是我们需要解决) 使用一致性算法)但同时如果该节点处理a 事务然后该块的哈希值会被改变,然后邻居节点的链会发生什么?

1 个答案:

答案 0 :(得分:1)

比特币在每个区块上设置了2,400个交易上限,但并非所有区块都有这么多。人们向矿工和矿工广播交易,将交易分成块并分发。

关于你的问题:

  1. 您链接的website表示块应该不可变,因此您不应将新事务附加到块列表中。此外,这将更改您需要查找以验证块的哈希值。

  2. 由每个块,一个或多个所需的事务数决定。我要做的是收集非链式交易,将它们放入一个区块并将新区块附加到链条上。