The steps to run the network are as follows:
1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash.
Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof-of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one.
New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one.
解读如下:
运行比特币网络要遵循如下规范:
1) 新的交易要广播给全部节点 2) 每个节点收集新的交易到一个区块中 3) 每个节点都为它的新区块寻找工作量证明 4) 如果一个节点找到了工作量证明,它就将此消息广播给所有节点 5) 只有这样的区块——所有交易都是合法的,并且不存在双花交易——才能被节点接受 6) 节点如果开始在某个区块上创建新的区块,则表示它接受这个区块。被接受的区块的哈希将作为新区块的前置哈希(previous hash)
Nodes always consider the longest chain to be the correct one and will keep working on extending it.
节点始终认为最长链是正确的并且将继续工作在上面增加它的长度。
If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first.
如果在某个区块之后两个节点广播不同的区块,不同节点先收到那个区块是不确定的。
In that case, they work on the first one they received, but save the other branch in case it becomes longer.
这种情况下,先收到的节点会被接受,但也会保存其他分支以备它成为最长链。
The tie will be broken when the next proof-of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one.
一旦下一个工作量证明被找到,一个分支变得更长,前述的僵局将被打破。那些工作在其他分支上的节点将会切换到较长的链上。
New transaction broadcasts do not necessarily need to reach all nodes.
新交易的广播不必到达所有节点。
As long as they reach many nodes, they will get into a block before long.
只要新的交易能到达很多节点,不久就会进入下一个区块。
Block broadcasts are also tolerant of dropped messages.
区块广播也需要能容易消息丢失。
If a node does not receive a block, it will request it when it receives the next block and realizes it missed one.
如果一个节点没有接受到某个区块,当它接受到这个区块后续的区块时,它会意识到,并且会去请求这个区块。