区块链的运行原理与演示

news2025/1/11 0:06:13

目录

前言

具体演示

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.coloradmin.cn/o/1709161.html

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

相关文章

目标检测基础初步学习

目标检测(Object Detection) 目标检测任务说明 在动手学习深度学习中对目标检测任务有如下的描述。 图像分类任务中,我们假设图像中只有一个主要物体对象,我们只关注如何识别其类别。 然而,很多时候图像里有多个我们…

中心入侵渗透

问题1. windows登录的明文密码,存储过程是怎么样的?密文存在哪个文件下?该文件是否可以打开,并且查看到密文? 回答: Windows登录的明文密码的存储过程是: 当用户尝试登录Windows时&#xff0…

MM模块六(收货)

接到供应商收到的货以后,进行一个收货的动作 收货:MIGO 1.消耗物料的采购订单 数量是供应商的数量 消耗物料的采购订单,收进来的货物直接进入消耗,不会增加库存,所以这里没有库存地点进行选择 点击过账 收货后在采购…

ubuntu 配置用户登录失败尝试次数限制

前言: 通过修改pam配置来达到限制密码尝试次数! 1:修改 /etc/pam.d/login 配置(这里只是终端登录配置,如果还需要配置SSH远程登录限制,只配置下面的 /etc/pam.d/pam.d/common-auth 即可) vim…

go-zero 实战(1)

环境准备 go 版本 go version go1.22.2 linux/amd64 goctl 安装 goctl(官方建议读 go control)是 go-zero微服务框架下的代码生成工具。使用 goctl 可以显著提升开发效率,让开发人员将时间重点放在业务开发上,其功能有&#xff1a…

【东山派Vision K510开发板试用笔记】WiFi配网问题

目录 概述 WiFi配网的修改 悬而未决的问题 概述 最近试用了百问网提供的东山派Vision开发板,DongshanPI-Vision开发板是百问网针对AI应用开发设计出来的一个RSIC-V架构的AI开发板,主要用于学习使用嘉楠的K510芯片进行Linux项目开发和嵌入式AI应用开发…

手撕C语言题典——返回倒数第 k 个节点(面试题)

前言 依旧力扣,这道题之前有做过类似的题,今天给一个新的思路去做,应对面试时候遇到的奇奇怪怪的问题 面试题 02.02. 返回倒数第 k 个节点 - 力扣(LeetCode)https://leetcode.cn/problems/kth-node-from-end-of-list-…

英特尔LLM技术挑战记录

英特尔技术介绍: Flash Attention Flash Attention 是一种高效的注意力机制实现,旨在优化大规模 Transformer 模型中的自注意力计算。在深度学习和自然语言处理领域,自注意力是 Transformer 架构的核心组件,用于模型中不同输入元…

PMP报考条件怎么查询?如何判定自己是否符合条件?

PMP报考条件在PMI官网上就可以查询,PMP报考条件只需要符合项目管理培训经历和项目管理经验两个方面的要求即可,大家可以对照下方的规定判断自己是否符合PMP报名条件 PMP报考条件 以下是PMI(中国)官网对于PMP报名条件的规定&…

3D点云焊缝提取 平面交线 投影

文章目录 1. 效果2. 思路3. 源码 1. 效果 2. 思路 计算点云法向量;计算点云位姿Pose;翻转Pose中的Z轴方向,使其一致;通过Pose的Z轴对点云进行方向过滤;对点云聚类;根据目标点云的高度提取目标点云;提取两块…

Unity Dotween 定位点的制作

目录 前言 一、动画预览 二、动画拆分 三、素材准备 四、曲线 OutCirc详解 五、速度分类详解 六、代码 七、组件和设置 八、作者的话 前言 我答应我的粉丝接下来更新Dotween系列,但是我一直没想好,从哪里开始讲。 Dotween的安装我就跳过了&…

Java基础之 API 字符串

文章目录 API字符串String概述创建对象 java的内存模型java的常用方法(比较)练习 API 概念: APl(Application ProgrammingInterface): 应用程序编程接口 简单理解: API就是别人已经写好的东西,我们不需要自己编写,直接使用即可。 Java API: 指的就是J…

三层交换机基本配置,动态路由链接

<Huawei>system-view //进入系统视图[Huawei]undo info-center enable //关日志[Huawei]vlan batch 2 3 //创建vlan2与3[Huawei]display vlan //检查[Huawei]interface GigabitEthernet 0/0/2 //进2口[Huawei-GigabitEthernet0/0/2]port link-type access //配置…

【STM32嵌入式系统设计与开发---传感器拓展】——1_2_蓝牙主从模块_AT配置(HC-05)

一、主机蓝牙设置 # 1、重置模块 ATORGL # 2、设置名字&#xff0c;自己随便设置 ATNAMEMaster # 3、设置连接密码&#xff0c;要和从机一样&#xff0c;密码好像可以不加双引号 ATPSWD"1234" # 4、设置为主机 ROLE 1 为主机 ROLE 0为从机 ATROLE1 # 5、设置波特…

04 FreeRTOS 队列(queue)

1、队列的特性 队列可以理解为一个传送带&#xff0c;一个流水线。 队列可以包含若干个数据&#xff1a;队列中有若干项&#xff0c;这被称为"长度"(length) 每个数据大小固定 创建队列时就要指定长度、数据大小 数据的操作采用先进先出的方法(FIFO&#xff0c;First…

Python OCR 文字检测使用模型:读光-文字检测-DBNet行检测模型-中英-通用领域

介绍 什么是OCR&#xff1f; OCR是“Optical Character Recognition”的缩写&#xff0c;中文意为“光学字符识别”。它是一种技术&#xff0c;可以识别和转换打印在纸张或图像上的文字和字符为机器可处理的格式&#xff0c;如计算机文本文件。通过使用OCR技术&#xff0c;可…

【Python安全攻防】【网络安全】一、常见被动信息搜集手段

一、IP查询 原理&#xff1a;通过目标URL查询目标的IP地址。 所需库&#xff1a;socket Python代码示例&#xff1a; import socketip socket.gethostbyname(www.163.com) print(ip)上述代码中&#xff0c;使用gethostbyname函数。该函数位于Python内置的socket库中&#xf…

xss-labs之level9、level10

一、level9 1、测试分析 尝试了之前的payload&#xff0c;发现都不行&#xff0c;看源码发现多了个strpos函数&#xff0c; strpos() 是一个在 PHP 中用于查找子串首次出现位置的函数。它接受两个参数&#xff1a;要搜索的字符串&#xff08;主字符串&#xff09;和要查找的子…

5.28OpenMV入门

10分钟快速上手 OpenMV中文入门教程 使用的元件 先安装好&#xff0c;上述链接上手 IDE显示颜色阈值&#xff0c;同时也配有示例文件&#xff0c;如下图打开&#xff0c;helloworld 你好&#xff0c;世界&#xff01; OpenMV中文入门教程&#xff0c;在官方也有每一个的详细…

公司如何监控到电脑端微信聊天记录的?

在当今职场环境中&#xff0c;确保信息交流的安全性和合规性成为了企业管理中的重要议题。 特别是在使用像微信这样的即时通讯工具进行工作沟通时&#xff0c;合理监控员工的电脑端微信聊天记录成为了一些企业的管理需求。 但值得注意的是&#xff0c;此类监控必须建立在合法…