区块链的运行原理与演示

目录

前言

具体演示

1、在浏览器中输入区块链演示网址:

2、创建新区块

3、篡改区块信息使其无效

4、新增P2P 网络节点。

 5、节点连接。

6、区块信息同步

总结


前言

        区块链系统是由一系列分布在全球各地的分布式节点组成的。这些节点互不隶属,通过专门的网络协议进行连接,从而构成一种在对等者(Peer)之间分配任务和工作负载的分布式对等计算机网络,我们通常将其称为P2P(PeertoPeer)网络。P2P网络的相关知识,在此先不赘述。
        构成区块链的去中心化P2P网络中的第一个节点被初始化并生成创世区块以后,后续运行通常包括以下几个主要步骤。
(1)添加新节点(数据上链)。
(2)节点加入后同步最新的区块链数据。
(3)节点生成的区块向网络中其他节点进行广播,其他节点收到广播后开始判断是否已经收到过该区块,若收到就忽略,否则将验证其有效性,有效的区块会被收到广播的节点添加到自身节点的区块链中。
        下面通过一个区块链演示网站来直观地了解区块链具体是如何运行的。


具体演示

1、在浏览器中输入区块链演示网址:

Blockchain Demo - A visual demo of blockchain technologyicon-default.png?t=N7T8https://blockchaindemo.io/

介绍页面的元素

2、创建新区块

在操作页面底部的"DATA

文本框中输入“New Block 1”,并单击“ADD NEW BLOCK”按钮来添加一个新区块。同样,在下面在添加内容为“New Block 2”的新区块。该演示网站会自动为这两个新区块生成有效的哈希值,并将这两个新区块与之前的区块依次连接起来。(操作和结果如下图)

3、篡改区块信息使其无效

        由于当前区块的哈希值由区块的数据、父区块哈希值、区块索引、时间戳、随机数等一起生成,其中任何一个数据的改动皆会导致区块哈希值的变化,而该哈希值的变化又会导致区块无效,即当前区块哈希值可能不再以“000”作为开头。例如,将“BLOCK#1”区块的“DATA”内容修改为“Block Changed”,则对应的哈希值随之发生改变,区块哈希值的颜色也从绿色(代表有效)变成红色(代表无效),如图。


        由于后续区块用到了前序区块的哈希值,因此一个无效区块将导致后续所有区块无效,从而产生断链。该演示网站提供了区块修复功能。若要修复无效的区块,单击每个区块右下角的修复按钮,对每个区块再重新计算一遍哈希值即可,演示结果如图修复后的区块哈希值又会重新变成绿色,即恢复至有效状态。

4、新增P2P 网络节点。

        单击操作页面右上角的“Add Peer”按钮即可新增一个节点(节点名称自动生成), 此时该模拟区块链中将存在两个节点, 分别为“Satoshi”与“Peter”,如图所示。若要切换节点,只需单击相应节点即可。节点有3 种显示颜色,其中蓝色表示当前节点,绿色表示节点和当前节点相连,红色表示节点未和当前节点相连。红色节点下面有一个按钮用来进行连接,鼠标指针悬浮于该按钮上,则该按钮将显示为绿色,单击该按钮即可进行节点连接。(这个Peter是随机生成的名字)


 5、节点连接。

        单击节点“Peter”下的连接按钮进行连接后,可看到该节点颜色变成绿色,表示已经连接,并且节点下面多了一个按钮,即消息列表按钮,节点右上角的数字表示消息的个数,如图 所示。单击消息列表按钮,即可显示消息记录,如图 所示。消息列表中会显示每个连接、区块请求、区块发送等相关信息。

6、区块信息同步

节点之间会互相同步区块信息。点击“Peter”节点。可以看到该节点下也包含“Satoshi”节点的3个区块。


总结

        通过上述模拟生成区块链的过程,我们能够对区块链的运行原理和区块同步过程等有较为直观的认识。区块链的节点始终都将最长的链条作为正确的链,并持续延长和维护该链。当节点发现更长的链条并且自身链条不是最新链时,就会使用最长的链条来替换自身链条。当一个节点判断出自身区块链是最新的,再接收到新的区块信息时,节点将会把新的区块添加到自身链条最后。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/17766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mesa GL Dispatch分发分析与理解

Mesa GL Dispatch分发分析与理解 引言 这篇博客的核心是从OpenGL应用程序的典型api入手,分析gl api 调用到用户态驱动后端的过程,进而总结出一个典型的调用栈。理解了这个典型调用栈,对后续任何一个API的调用过程分析,都是a piec…

Java项目在linux上部署步骤

1、根据linux系统在网上下载对应的jdk1.8安装包,有32位和64位区别。 2、解压并配置jdk的环境 (1)解压安装包: tar xzvf jdk安装包 (2)修改环境变量: vim /etc/profile 最后加上: export JAVA_H…

文本匹配.grep与Select-String用法对比

Linux Shell与PowerShell上匹配字符串 grep与Select-String用法对比 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article…

家居厨房安全无小事:可燃气体报警器探头校准检测重要性解析

家居厨房作为日常生活中烹饪美食的重要场所,其安全问题不容忽视。 近年来,随着家庭用气设备的普及,煤气泄露事件时有发生,给人们的生命财产安全带来了严重威胁。 因此,安装可燃气体报警器探头,及时检测并…

Python Orange3库:数据挖掘与机器学习的终极利器

更多Python学习内容:ipengtao.com Orange3是一个开源的数据挖掘和机器学习库,提供了丰富的工具和算法来处理和分析数据。Orange3的图形用户界面使得非编程用户也能轻松进行数据分析,而其Python API则为编程用户提供了强大的灵活性。本文将详细…

TypeScript类型体操练习

历史小剧场 这个世界上,有两种人最痛苦,第一种是身居高位者,第二种是身居底层者,第一种人很少,第二种人很多。第一种人叫崇祯,第二种人叫百姓。 而最幸福的,就是中间那拨人,主要工作…

【NOIP2013普及组复赛】题2:表达式求值

题2:表达式求值 【题目描述】 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。 【输入文件】 输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符 “ ” “” “”和乘法运算符 “ ∗ ” “…

根据标签名递归读取xml字符串中element

工具类&#xff1a; /*** 根据标签名递归读取xml字符串中element* 例&#xff1a;* String xml * "<req>\n" * "<tag1></tag1>\n" * "<tag2>\n" * " <tag4></tag4>\n" * "</tag2>\n&…

go panic和recover

panic 能够改变程序的控制流&#xff0c;调用 panic 后会立刻停止执行当前函数的剩余代码&#xff0c;并在当前 goroutine 中递归执行调用方的 defer。recover 可以中止 panic 造成的程序崩溃。它是一个只能在 defer 中发挥作用的函数&#xff0c;在其他作用域中调用不会发挥作…

如何在线转换图片的格式?一键修改图片格式的方法

图片是日常生活和工作中的一种常用的内容展示类型&#xff0c;在使用图片的时候不同用途需要使用的图片格式也是不同的&#xff0c;比如我们手中有一张jpg格式图片&#xff0c;但是平台上传要求格式是png&#xff0c;那么怎样才能将jpg转png格式呢&#xff1f;下面将教大家图片…

模拟量4~20mA电流传感器接线方式

一、模拟量4~20mA电流传感器接线方式 无源双线制是常见的电流型传感器接线方式&#xff0c;它具有简单、经济的特点。其接线方式如下&#xff1a; 传感器的“”接到数据采集器的电源“”上&#xff0c; 传感器的“-”端子连接到数据采集器的“AI”端子上&#xff0c; 数据采集器…

无人机+EasyDSS互联网视频平台:构建秸秆焚烧监控的“天眼”系统

一、方案背景 在每年的夏收时节&#xff0c;秸秆禁烧成为各地政府面临的一项重要任务。随着夏收季节的结束&#xff0c;大量农作物秸秆的处理问题逐渐凸显。一方面农作物种植面积辽阔&#xff0c;禁烧区域面积较大&#xff0c;监管巡逻人员的数量有限&#xff0c;无法全面顾及…

使用 ASM 修改字段类型,解决闪退问题

问题 我的问题是什么&#xff1f; 在桥接类 UnityBridgeActivity 中处理不同 unity 版本调用 mUnityPlayer.destroy(); 闪退问题。 闪退日志如&#xff1a; 闪退日志说在 UnityBridgeActivity中找不到类型为 UnityPlayer 的属性 mUnityPlayer。 我们知道&#xff0c;Android…

【鸟叔的Linux私房菜】2-主机规划与磁盘分区

文章目录 2.1 Linux与硬件的搭配各硬件设备在Linux的文件名使用虚拟机学习 2.2 磁盘分区磁盘连接方式和设备文件名的关系MBR(MS-DOS)与GPT磁盘分区表MBR(MS-DOS)GPT磁盘分区表 启动流程的BIOS与UEFI启动检测程序BIOS搭配MBR/GPT的启动流程UEFI BIOS搭配 GPT启动的流程 Linux安装…

RGB 平均值统计

任务&#xff1a;有一一对应的图片多组如下&#xff0c;希望统计灰色部分原有grb平均值&#xff0c;彩色部分rgb平均值。 方法&#xff1a;由下图对各个像素分析&#xff0c;分为3类&#xff0c;并记录坐标&#xff0c;根据坐标统计上图的rgb平均值&#xff0c;结果放在一张Exc…

Linux完整版命令大全(十八)

quotacheck 功能说明&#xff1a;检查磁盘的使用空间与限制。语  法&#xff1a;quotacheck [-adgRuv][文件系统...]补充说明&#xff1a;执行quotacheck指令&#xff0c;扫描挂入系统的分区&#xff0c;并在各分区的文件系统根目录下产生quota.user和quota.group文件&#…

linux开发之设备树基本语法二

设备树特殊节点,对节点定义别名,chosen节点用来uboot给内核传参 上面的mmc0就是sdmmc0节点的别名 device_type属性 只对cpu节点和memory节点进行描述 自定义属性 这部分自定义,比如定义管脚标号,初始数值等 为什么我们可以在设备树上自己定义属性呢?设备树文件描述的是硬…

JD3-40/23漏电继电器 AC220V 50-500mA 0.1s 导轨安装

系列型号&#xff1a; JD3-40/13漏电继电器JD3-40/23漏电继电器JD3-40/33漏电继电器JD3-40/43漏电继电器 JD3-70/13漏电继电器JD3-70/23漏电继电器JD3-70/33漏电继电器JD3-70/43漏电继电器 JD3-100/23漏电继电器JD3-100/43漏电继电器JD3-100/33漏电继电器JD3-100/13漏电继电…

轻松入门Linux命令行(一)

1. 打开终端 在Linux系统中&#xff0c;我们可以通过终端&#xff08;Terminal&#xff09;来执行各种命令。不同的Linux发行版可能有不同的终端程序&#xff0c;但通常都可以在应用程序菜单中找到。打开终端后&#xff0c;我们就可以看到一个命令行提示符&#xff0c;等待我们…

260 基于matlab的工业乙醇发酵GUI仿真

基于matlab的工业乙醇发酵GUI仿真。首先对经典的流加半经验半理论模型进行动态和稳态仿真&#xff0c;考虑实际情况密&#xff0c;逐步将温度&#xff0c;气体排放等因素考虑到模型中去&#xff0c;进行综合性仿真。结合GUI技术&#xff0c;以动力学模型为核心&#xff0c;制作…