发布网友 发布时间:2022-04-24 05:26
共4个回答
热心网友 时间:2023-09-15 19:55
比特币中一个区块的容量就是1M(兆字节)吧。而一笔交易是250到500字节之间。
按照这种算法,那么一个区块大约包含的4 194.3(笔)交易。
比特币中一个区块确认的时间是10分钟,那么一个区块每秒能处理的7个交易,可能有时候连7笔都达不到。
这样会造成一什么后果呢?
这就像一条不够宽的街道,忽然来了很多辆车。车太多,而街道的宽度有限,那么势必就会造成堵车。
在比特币区块上面的交易也是如此,前面一笔交易还没处理好,后面却有一堆排着队等待确认的交易。
如果排队等待确认的交易太多,势必就会撑爆区块。
就像一个只能承载12人的电梯,你装20个人是启动不了的。如果硬要塞两百个人进去,估计电梯要瘫痪了。
区块只有那么大,那现在怎么办呢。
去找中本聪升级区块,扩大区块容量,不就可以了。
但中本聪失踪啦,这办法根本行不通。
从2014年开始,比特币的社群把扩容这件事提上了议事日程。
我们知道比特币网络是一个去中心化的网络。在这个世界里,没有一个中心化的机构来运转,凡事是要靠社区去协商才能才能达成一致的。
比特币扩容方案很多,在历史上也经历了很多迭代。
每一个团队都提出了自己不同的扩容方案。
但是,因没有第二个中本聪能统一这些扩容方案,所以比特币者不得不分叉了。
比特币的分叉分为硬分叉和软分叉。
硬分叉是:指比特币的区块格式或交易格式发生改变时,未升级的节点拒绝验证已经升级的节点生产出的区块。
已经升级的节点可以验证未升级节点生产出的区块,大家各自延续自己认为正确的链,所以分成两条链。
什么是软分叉呢?
软分叉是指比特币交易的数据结构发生改变时,
未升级的节点可以验证已经升级的节点生产出的区块,
而且已经升级的节点也可以验证未升级的节点生产出的区块。
热心网友 时间:2023-09-15 19:56
在区块链和比特币等数字货币的讨论中,我们经常听到 “分叉” 这个词,那么到底什么是分叉呢?分叉又会有什么影响呢?
区块链
在说分叉之前,先普及一点区块链的小知识,这样更容易帮助我们理解分叉是什么(如果你对区块链一点概念也没有,欢迎翻阅我以前的文章,都是些通俗的话语帮你了解什么是区块链)。
区块链,顾名思义,就是由区块组成的链条,当然这种链条只是一个形象比喻,说白了就是数据区块有序地连接起来。在比特币中,区块中存放的是比特币的交易记录,区块的大小和交易记录所占用的空间决定了一个区块能存放多少交易记录。这些交易记录被打包到区块中,然后区块一个个相连就构成了区块链。
为什么要分叉
我们知道,比特币软件像其他软件一样,需要定期更新和修改,以便让他更好。所以新的版本就会出现,但是由于不是所有人都即使下载了新版本,所以有个矿工就运行了旧版本,有的则运行了新版本,那么一旦新旧版本不兼容的话,区块链就会分叉。因为因版本的区块和旧版本的区块可能存在差异,所以他们不能被连接到同一个区块链上,所以就会出现两条链,甚至多条链,这就是分叉。
软分叉
软分叉指的是,当新共识规则发布后,没有升级的节点会因为不知道新共识规则下,而生产不合法的区块,就会产生临时性分叉。这种分叉会随着节点的升级而逐渐修复。
硬分叉
硬分叉指的是,区块链发生永久性分歧,在新共识规则发布后,部分没有升级的节点无法验证已经升级的节点生产的区块,通常硬叉就会发生。所以,在数字货币领域,硬分叉往往导致新的币种出现。例如以太坊的硬分叉就导致了 ETH的出现。
热心网友 时间:2023-09-15 19:56
“分叉”这个词最经常出现的场所是github这个代码托管平台,是多个程序员共同管理和协同开发项目的一种办法。
为了便于理解,我先举一个类比。
你在一家公司的一个部门,比如研发部,部门一共5个同事,其中一个部门经理。现在部门要向公司提交下个月的办公用品采购计划。部门经理先用wrod文档写了一份采购申请单,并且在申请单上填上了自己计划要买的东西。然后经理将文件上传到部门的共享文档上。
同事A将文档复制了一份,然后在后面添加了自己想要采购的东西,然后上传到共享文档申请经理审批。同事B、C、D也分别复制了一份,分别添加了自己想要买的东东,并且申请审批。
部门经理审批了A的采购计划,认为合理,他就将A的需求合并到自己的那份申请单后面。审批了B的计划,他认为不合理,他就拒绝了B的需求,直接丢弃了B的计划单。然后继续审批C和D的。要么合并,要么丢弃。
然后B很生气,认为这不合理,他就越过部门经理,直接向公司提交了一份采购申请单.
如果把以上这个例子中的“采购申请单”,换成一个“程序开发项目”,上述过程就是一个典型的“立项”、“分支”、“请求”、“合并”、“分叉”的过程。
部门经理立了一个项,要写一份采购申请单,他写好自己的部分之后,将文档上传到共享云,形成一个主代码仓库.
然后ABCD四位同事分别对这份文档进行“branch”(中文译成分支),在分支上加上自己想要的特性,然后向主代码提交申请,叫“pull request”,中文叫“请求”。申请将自己的修改部分合并到主代码库里。
然后经理这个主开发者会审批这个“pull request”,如果合格了,他就会将这部分代码合并到主代码库,这个过程叫“merge”,中文译成“合并”。
如果主开发者认为这个“pull request”不合理,他就会拒绝,英文叫“Close”。但如果提这个“pull request”的人觉得他是对的,他可以出去,不和这个经理玩了,自己立个项,取个别的名字,然后自己合并代码。这样就形成了一个“fork”,中文译成分叉。
以上是所有参与者都是有开发权限的流程,但如果是一个项目组外的人,看到了这个项目,并且想提交一份特性的代码“pull request”,那他就得先对这个主代码仓库进行“fork”,然后再提交“pull request”。这个没有开发权限的人叫没有提交代码权,提交代码权英文叫commit权限。
这就是开源软件管理的过程。开源软件的代码更新,和漏洞修复都是使用这一套流程。
比特币就是一套开源软件,一开始有只有一个代码仓库,是中本聪建立的,叫Bitcoin,后来有很多人"fork"了Bitcoin,并提交了“pull requests”,有些人干脆自己“fork”并出去,形成新的分叉。
现在比特币这套开源软件有非常多的分叉,最著名的就是bitcoin core、bitcoin unlimited、bitcoin classic、bitcoin XT、Bcoin……
这里只是比较浅显的叙述了下概念,更多干货,推荐你看下面这篇文章。
《关于比特币分叉,你想知道的都在这里!》
热心网友 时间:2023-09-15 19:57
这期节目我们继续说一些区块链的基础知识,了解一下区块链的运行逻辑,主链与分叉,剖析一下什么是区块,又如何组成链。