fork - 当多个 block 同时添加到区 block 链时会发生什么?

标签 fork blockchain race-condition

据我所知,当两个同时形成的区 block 时,就会发生一种叫做“ fork ”的事情。正如我设法从谷歌搜索中收集到的那样,这意味着创建了两个独立的区 block 链。

维基百科将“ fork ”描述为“当区 block 链 fork 成两条潜在的前进路径时会发生什么”,它提到了几种不同类型的 fork 并解释说:

“当两个或多个矿工几乎同时找到一个区 block 时,就会发生意外 fork 。当添加后续区 block 并且其中一条链变得比替代链更长时, fork 就会解决。网络放弃不在最长链中的区 block (它们被称为孤立区 block )。”

Skipping all the different fork types (accidental, intentional, hard, soft,...), what actually happens in case of a "race condition"? Which block is added first? How is the problem resolved? If two chains are created, how are they later combined? Is one block simply abandoned?

最佳答案

Skipping all the different fork types (accidental, intentional, hard, soft,...), what actually happens in case of a "race condition"? Which block is added first? How is the problem resolved? If two chains are created, how are they later combined? Is one block simply abandoned?

矿工总是在切换链以尝试在最长的区 block 链上工作,因为这很可能是主链并会带来更高的返回。有时,就像你指出的那样,两条竞争链会 fork ,它们会一直这样,直到一条链变得更长,导致矿工切换到这条链,而被遗弃的链成为孤立 block 。

Example picture of forking

关于fork - 当多个 block 同时添加到区 block 链时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60356134/

相关文章:

blockchain - 如何自动将 ERC 20 代币发送给 ETH 的发送者(solidity)

c - 多线程 - 只有在所有线程都完成任务后才继续

makefile - 在构建具有共同依赖项的目标时,GNU make 是否会受到竞争条件的影响?

c++ - 更有效地使用 fork() 和写时复制内存共享

c - 我怎样才能捕获输出?

c - 简单的 fork 和管道

c - fork() 系统调用的工作原理

python - 导入错误: Cannot import name 'Asset' bigchaindb

blockchain - 使用 Public Corda v4.0 创建内部专用网络

http - 在超时处理程序中进入竞争条件