0基础学习区块链技术——链之间数据同步样例

2024-06-05 07:12

本文主要是介绍0基础学习区块链技术——链之间数据同步样例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们可以在https://blockchaindemo.io/体验这个过程。

创建区块

默认第一个链叫Satoshi(中本聪)。链上第一个区块叫“创世区块”——Genesis Block。后面我们会看到创建的第二条链第一个区块也是如此。
在这里插入图片描述
在这里插入图片描述

新增链

在这里插入图片描述
新创建的链叫Debby。默认上面有一个创世区块。
在这里插入图片描述
然后我们让这个链和其他链(Satoshi)连接。
在这里插入图片描述
在这里插入图片描述
如上图,Satoshi链是标蓝的,即当前链。Debby上的数字7,表示Satoshi链上发生了7次行为。
在这里插入图片描述
我们看下这7条消息。
在这里插入图片描述
这是Satoshi链的视角。

  • 连接到Debby链。
  • 向Debby要它的最后一个区块。
  • Debby向我要我的最后一个区块。
  • 我向Debby发送我的最后一个区块。
  • Debby把它最后一个区块发给我了。
  • 判断出Debby的最后一个区块的索引并没有我大,所以我什么都不要做。因为之前我们在Satoshi上创建了一个区块,所以有两个区块。而Debby是新创建的链,它上面只有一个创世区块。Debby最后一个区块的索引是0,Satoshi最后一个区块的索引是1。
  • Debby把它最后一个区块发给我了。
  • 判断出Debby的最后一个区块的索引并没有我大,所以我什么都不要做。

我们再切换到Debby视角来看
在这里插入图片描述
可以看到Debby已经同步了Satoshi的链上所有区块了。
在这里插入图片描述

  • Satoshi和我连接上了。
  • 向Satoshi要它的最后一个区块。
  • Satoshi将它最后一个区块发给我了。
  • Satoshi最后一个区块的Pre hash和我最后一个区块的Hash一致,于是我们将该区块添加到我这条链上。
  • Satoshi向我要我的最后一个区块。
  • 向Satoshi发送我的最后一个区块。
  • 向Satoshi发送我的最后一个区块。

区块链直接替换

在上面的例子中,Debby收到的Satoshi最后一个区块,这个区块的Pre Hash正好是Debby最后一个区块的Hash。这样Debby就直接把这个区块加入自己的链上。
如果链上区块差距比较多,那是怎么做的呢?我们可以继续做实验。
我们在Debby链上新增一个区块
在这里插入图片描述
我们看下Debby链上的行为,主要集中在新增区块后的行为
在这里插入图片描述

  • 向Satoshi发送我的最后一个区块。
  • Satoshi给我发送了它的最后一个区块。
  • 判断出Satoshi最后一个区块索引并不比我大,所以我什么都不用做。这个是正确的,因为我们第二次新增的区块是在Debby上,所以它的最后一个区块不可能比Satoshi最后一个区块的索引小。

我们再切换到Satoshi视角,可以看到它已经同步了Debby链上数据
在这里插入图片描述
Satoshi视角看在Debby上新增一个区块后的行为
在这里插入图片描述

  • Debby向我发送了它的最后一个区块。
  • 判断出Debby的最后一个区块索引的Pre Hash和我的最后一个区块的Hash一致,我就将这个区块直接加入我的链上。
  • 向Debby发送我的最后一个区块。

上面的情况都是在链不一致时,由于只是差一个区块,于是就在当前链上直接追加这个区块。
我们再新建一个新链,它和老链Satoshi和Debby差两个区块。
新建的区块链叫Tony。我们让它和Satoshi同步数据。
在这里插入图片描述
在这里插入图片描述

  • Satoshi和我连接上了。
  • 我向Satoshi要它的最后一个区块。(已经领先2个区块了)
  • Satoshi将它的最后一个区块发送给我。
  • 我向Satoshi要它的全部区块。
  • Satoshi将它的所有区块发送给我。
  • 判断出Satoshi的区块链比我的长,我直接用它的全部区块链来替换我的区块链
  • Satoshi找我要我的最后一个区块。
  • 我向Satoshi发送我的最后一个区块。
  • 我向Satoshi发送我的最后一个区块。

我们再切换到Satoshi的视角,看它和Tony的数据同步
在这里插入图片描述
在这里插入图片描述

  • 我连接到Tony。
  • 我找Tony要它的最后一个区块。
  • Tony找我要我的最后一个区块。
  • Tony找我要我的全部区块链。
  • 我向Tony发送我的完整的区块链。
  • 我向Tony发送我的最后一个区块。
  • Tony把它的最后一个区块发送给我了。
  • 判断出Tony的最后一个区块的索引没有我的大,所以我什么都不用做。
  • Tony把它的最后一个区块发送给我了。
  • 判断出Tony的最后一个区块的索引没有我的大,所以我什么都不用做。

这篇关于0基础学习区块链技术——链之间数据同步样例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1032405

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化: