soft fork and hard fork

2023-11-15

https://bitcoin.stackexchange.com/questions/30817/what-is-a-soft-fork/

https://blog.csdn.net/chabuduoxiansheng1/article/details/79740018

What is a Project Fork?

fork in software development refers to the event of an independent project spinning off from a software project. Such forks sometimes occur in the opensource sphere, when there are irreconcilable plans/goals within a project's community, then often leading to a split in the community and two distinct projects thereafter. In practice this takes form in the sourcecode being copied and henceforth being developed in a different direction independently by the forkers. For example in this conventional sense of fork, Litecoin is a fork of Bitcoin: Litecoin started as a copy of Bitcoin's code-base, but developed into an independent project (although still closely related).

Softfork and Hardfork in Bitcoin terminology

The terms softfork and hardfork in Bitcoin describe compatibility breaking changes in the Bitcoin protocol: Should the community be irreconcilably divided about such an issue, the old version and the new version of Bitcoin could emerge as distinct projects thereafter. While both versions of the Bitcoin protocol are in use, the differences in acceptance may cause a lasting blockchain-fork, i.e. two distinct longest chains which are both considered valid by part of the network.

Softforks are forward compatible

Softforks restrict block acceptance rules in comparison to earlier versions.

New valid blocks are a subset of old valid blocks

The new rules allow a subset of the previous valid blocks, therefore all blocks considered valid by the newer version are also valid in the old version. If at least 51% of the mining power shifts to the new version, the system self-corrects:
Blocks created by old versions of Bitcoin Core that are invalid under the new paradigm might commence a short-term "old-only blockchain-fork", but eventually, they would be overtaken by the chain fork created under the new paradigm, as the hashing power working on the old paradigm would be smaller ("only old versions") than on the new paradigm ("accepted by all versions").

However, if less than 51% of the hashing power switches to the new version, the blockchain-fork will not mend automatically as the chain created under the old rules has more hashing power and is incompatible to the new rules. This can either be remedied by the adopters of the softfork giving up their chain, or more hashing power switching to the softfork chain. The latter would cause the softfork chain to eventually overtake and reorganize the other chaintip.

Hardforks are not forward compatible

Hardforks extend set of valid blocks

Hardforks ease block acceptance rules making previously invalid blocks valid in the new version. Obviously, this is not forward compatible as older versions will not accept the new blocks, causing the users of the old paradigm to remain on their own blockchain-fork indefinitely. To implement a hardfork, without a blockchain-fork, all users must switch to the new protocol consensually.

HF != blockchain-forks

Lately, I've seen "hardfork" being used interchangeably with "chain split". They refer to different things. A chain split is the state of the network when mining is based on more than one chaintip at the same time. This can happen for various reasons, including hardforks, softforks, buggy node software, and simply two miners discovering a block at the same height.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

soft fork and hard fork 的相关文章

  • 怎样用Java求水仙花数和水仙花数的数量

    首先我们了解一下水仙花数的定义 一个各个位上的数字三次方之和等于他本身的三位数 因此 为了求水仙花数 我们的程序会有以下几个需求 1 首先表示出所有的三位数 用循环表示 这里用for循环示例 2 然后表示出其个位 十位 百位 3 当这个三位
  • Elasticsearch知识点

    目录 1 什么是Elasticsearch 2 Elasticsearch的特点 3 Elasticsearch基础概念 4 Elasticsearch基本数据类型 看这里 5 Elasticsearch基本检索类型 5 1 检索和过滤 5
  • python编译javascript_Js2Py - 把js代码翻译成python代码。也让你可以在python环境里运行js代码。...

    Pure Python JavaScript Translator Interpreter Everything is done in 100 pure Python so it s extremely easy to install an
  • top 命令解释和案例

    文章目录 Top结果 Task分析 CPU分析 内存分析 Top结果 在Linux系统中 top命令用于实时监控系统的性能和进程活动 当你在终端运行top命令时 会显示一个实时的进程列表和系统性能指标 top结果的详细描述如下 第一行 显示
  • Elasticsearch的配置及常见错误

    1 下载Elasticsearch到d盘 在elasticsearch yml中配置两项内容 其中cluster name对应springboot项目中application properties里elasticsearch配置的 elas
  • Java 日期 不同月按周分组

    日期按月 按周次分组 今天接到需求 要求按月份分开周次 12月31号和新一年的1月1号拆开两个组 2020 12 第五周 2020 12 28 2020 12 31 2021 01 第一周 2021 01 01 2021 01 03 咋一看
  • 设计模式——反射

    本文说明 在学习 Java EE互联网轻量级框架整合开发 此书时 里面提到了几种设计模式 我在学习这几种设计模式时写了笔记 放上来让大家共同学习 如果有错误 望指出 本章由两部分组成 1 基本概念 关键代码讲解 2 完整例子 基本概念 关键
  • vue3-实战-04-管理后台表单校验-layout-菜单组件封装

    目录 1 自定义校验规则 2 layout组件静态页面搭建 3 logo组件封装 4 左侧菜单静态组件搭建 4 1 动态获取菜单数据 4 2 封装菜单动态展示组件 4 3 配置菜单名称 隐藏 图标属性 4 4 菜单刷新定位当前菜单 5 内容
  • python大数据毕业设计题目100例

    文章目录 0 前言 1 python 算法类 毕设选题 2 python 数据挖掘 毕设选题 3 python 大数据处理 云计算 区块链 毕设选题 4 python 网络安全 毕设选题 5 python 游戏设计 动画设计类 毕设选题 适
  • mysql求两个表的不同记录

    问题是 现在有两个表 一个是记录昨天的记录 一个是记录今天的记录 如何求 1 新增的记录 今天有 昨天没有的记录 2 减少的记录 今天没有 昨天有的记录 求解该类问题 需要用到sql的连接查询 为了简单起见 使用user1表和user2表来
  • 更新linux内核方法

    背景 买了块网件的A6210无线网卡 用的是mt7612u芯片 插到deepin下不能识别 ubuntu 18 04下同样不能识别 查过内核版本号 用的都是4 15的内核 去Github查了Linux内核仓库 确认4 15内核里没有mt76
  • PHP网上花店管理系统 毕业设计源码21170

    目 录 摘要 1 绪论 1 1研究背景 1 2项目背景 1 3 Thinkphp框架介绍 1 4论文结构与章节安排 2 网上花店管理系统系统分析 2 1 可行性分析 2 2 系统流程分析 2 2 1数据增加流程 2 2 2数据修改流程 2
  • C++ STL编程轻松入门基础

    来源 天极网 作为C 标准不可缺少的一部分 STL应该是渗透在C 程序的角角落落里的 STL不是实验室里的宠儿 也不是程序员桌上的摆设 她的激动人心并非昙花一现 本教程旨在传播和普及STL的基础知识 若能借此机会为STL的推广做些力所能及的
  • 【华为OD机试真题2023B卷 JAVA&JS】解压报文

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 解压报文 知识点栈 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 为了提升数据传输的效率 会对传输的报文进行压缩处理 输入一个压缩后的报文 请返回它解压后的原始报文
  • 讯飞版大模型来了,现场发布四大行业应用成果

    文章目录 人工智能福利文章 前言 SparkDesk讯飞星火认知大模型简介 语言理解 知识问答 逻辑推理 数学题解答 代码理解与编写 亲自体验 写在最后 创作者 全栈弄潮儿 个人主页 全栈弄潮儿的个人主页 个人社区 欢迎你的加入 全栈弄潮儿
  • 梯度下降的作用及分类

    一 介绍 梯度下降法是一个最优化算法 通常也称 最速下降法 常用于机器学习和人工智能中递归性逼近最小偏差模型 梯度下降的方向就是用负梯度方向为搜索方向 沿着梯度下降的方向求解极小值 在训练过程中 每次的正向传播都会得到输出值和真实值的损失值
  • keras使用callbacks后报错:tensorflow.python.framework.errors_impl.NotFoundError: Failed to create a direct

    参考 https stackoverflow com questions 59439124 keras tuner search function throws failed to create a newwriteablefile err
  • Maven引入本地jar包的方法分享

    转自 maven中如何包含本地jar包呢 有时候我们的jar包来源于maven仓库 有时候来源于本地仓库 有时候来源于本地文件 来源于仓库的文件 我们只需输入相应的坐标即可 那么jar包来源于本地文件 如何处理呢 下文笔者讲述maven中包
  • 二十三种设计模式第二十一篇--解释器模式

    解释器模式 Interpreter Pattern 是一种行为设计模式 它用于定义一种语言的语法结构和解释器 使得可以解释并执行特定的语法规则 该模式可以将复杂的语言表达式分解为更小的语法单元 并定义其解释过程 解释器模式的核心组成部分包括
  • NameError: global name ‘***‘ is not defined

    错误示范 class Solution object def fib self n type n int rtype int while n gt 0 if n 1 or n 2 return 1 else return fib n 1 f

随机推荐

  • 手把手带你实现Linux内核编译步骤及配置

    linux 系统体系结构 linux kernel体系结构 arm有7种工作模式 x86也实现了4个不同级别RING0 RING3 RING0级别最高 这样linux用户代码运行在RING3下 内核运行在RING0 这样系统本身就得到了 充
  • linux中把一个文件的内容复制到(或覆盖)另一个文件的末尾

    转载自 https blog csdn net u013991521 article details 80528647 问题描述 比如11的文件内容是 hello 22的文件内容是 world 将22的文件内容复制到11文件的末尾 11文件
  • python类的属性和实例的属性有什么区别

    在 Python 中 类属性和实例属性是两种不同类型的属性 它们在用途和作用域上有所不同 下面是关于它们的区别的详细解释 定义位置 类属性 定义在类的主体中 但在任何类方法之外 实例属性 通常在 init 方法或其他类方法中使用 self
  • 自动化测试工具软测界的不二之选,还不快速来了解

    目录 引言 前言 一 龙测AI TestOps云平台使用教程 1 如何登录龙测AI TestOps云平台 登录方法 登录方法 2 龙测AI TestOps云平台界面布局 3 龙测AI TestOps云平台菜单功能 创建项目 应用管理 设备管
  • 若依框架针对不同用户使用不同样式判断

    在开发中 有时候会针对不同用户使用不同样式 如果使用权限判断符的话会出现 请设置权限的问题 这样我们可以导入若依框架原本的权限判断函数 import checkPermi checkRole from utils permission 权限
  • Hibernate4与hibernate3主要区别与版本不一致导致的错误

    Hibernate版本改动 Hibernate4的改动较大只有spring3 1以上版本能够支持 Spring3 1取消了HibernateTemplate 因为Hibernate4的事务管理已经很好了 不用Spring再扩展了 这里简单介
  • 为何大量网站不能抓取?爬虫突破封禁的6种常见方法

    转载自 https www cnblogs com junrong624 p 5533655 html 在互联网上进行自动数据采集 抓取 这件事和互联网存在的时间差不多一样长 今天大众好像更倾向于用 网络数据采集 有时会把网络数据采集程序称
  • FileZilla - The free FTP solution

    FileZilla The free FTP solution https filezilla project org index php https www filezilla cn 1 Overview The FileZilla Cl
  • JavaScript重写Symbol(Symbol.iterator)实现迭代器(2)

    重写数组for of底层用的迭代器 for of 底层用Symbol Symbol iterator 迭代器 arr 底层用Symbol Symbol iterator 迭代器 示例图 代码 h1 对象遍历重写iterator接口2 h1
  • python中class用法实例

    python中class用法实例 https blog csdn net u010551600 article details 79126911 该程序的作用是找到studet txt文件中 GPA最高的那名同学 并打印出他的信息 程序运行
  • 【机器学习】神经网络介绍【转】

    深度学习 神经网络介绍 1 神经元 2 激活函数 3 感知机与多层网络 4 误差反向传播 参考 周志华 机器学习 神经网络是由具有适应性的简单单元组成的广泛并行互连的网络 它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应 Koho
  • micropython驱动ST7789v 2.4寸液晶显示中文

    一 ST7789v介绍 ST7789v是小尺寸液晶中常用的驱动芯片 作者手里的是网上买的一块2 4寸液晶模组 接口 为SPI接口 网上能找到这个芯片的micropython驱动 这不是本文的重点 本文的重点是如何利用这个驱动 并使用字库的方
  • 记录禁用联想笔记本电脑的触摸板

    触摸板在笔记本打字的时候很容易误操作 于是要关闭 我的这台Lenovo 关闭触摸板方法很直观很简单 键盘最上面一排Fxx的按钮中 F6键上就画着触摸板的小图标 按下F6 就关闭 再按一次 就开启 可能有些电脑不是 只是记录我使用的这台的情况
  • 快速理解事件委托?

    捕获和冒泡允许我们实现一种被称为 事件委托 的强大的事件处理模式 如果我们有许多以类似方式处理的元素 那么就不必为每个元素分配一个处理程序 而是将单个处理程序放在它们的共同祖先上 示例代码
  • 图像&视频编辑工具箱MMEditing使用示例:图像抠图(matting)

    MMEditing的介绍及安装参考 https blog csdn net fengbingchun article details 126331541 这里给出图像抠图的测试代码 论文 Indices Matter Learning to
  • Android Layout设计

    public View onCreateView LayoutInflater inflater ViewGroup container Bundle savedInstanceState Now that CrimeListFragmen
  • 浅谈 one-stage 与 two-stage 目标检测方法

    由于目前实习及找工作的原因 博客更新的频率下降 而在面试过程中也发现 虽然论文是看过了 包括也有输出一些论文笔记 但是很多时候无法形成自己对该领域的一个概括性的认知 无法粗中有细 细中有粗 主要还是基本功不扎实 反应了自己在日常学习中的学习
  • 快速排序(qsort)

    快速排序 排序方法有很多种 选择排序 冒泡排序 归并排序 快速排序等 看名字都知道快速排序是目前公认的一种比较好的排序算法 快速排序的核心思想是二分法 在此 我以升序为例 首先 我们需要选取一个基准数temp 再通过循环比较 将比基准数小的
  • mysql安装版的下载与安装(windows)

    https blog csdn net heting717 article details 73497005 这是安装版 挺方便的
  • soft fork and hard fork

    https bitcoin stackexchange com questions 30817 what is a soft fork https blog csdn net chabuduoxiansheng1 article detai