当前位置: 首页 > news >正文

基础知识补充篇:关于数据不可修改

前言

到这里笔者要讲解的基础知识就差不多完成了,到下一章节笔者将带领大家实战一个DAPP。其实如果你完整的读完了前面的所有内容就会发现笔者并没有讲解专业的区块链知识,几乎都是在讲解传统开发到web3(DAPP)开发这一过渡的联系和相似的内在逻辑。

然而其实区块链相关的技术也远不止这么多,要想真正去了解什么是区块链,你还有很长的路要走。笔者只是从一个自己多年开发的角度来带你入门。

而本篇将要讲解的一个内容是关于区块链数据不可修改这一原则。

什么是区块链数据的不可修改?

在前面我说区块链数据库和传统数据库最大不同之处在于:传统的数据库是自己托管的,掌管者可以无数次修改,但是区块链数据不行。(可查看:传统开发者视角:智能合约与区块链数据库探秘)

为什么呢?

这其实可以扯到区块链的“分布式账本”,这就相当于每个人手里都有一个账本,而且账本上记录了完整的所有数据,你就算篡改了自己的账本,也是没有意义的。

当然还有就是一旦你调用智能合约的写方法之后,你那条数据就永久的记录上去了,是不能撤回、不能在那条数据记录上再进行修改的。

这其实就是笔者所说的不可篡改:不能在原数据记录上再修改,如果你业务逻辑中需要对原数据进行修改,也不是在原数据记录上改,而是从新提交一条数据进行追加。

总得来说就是:区块链数据库是只增不删的,所有记录都将存在,而所谓的修改只是应用层面展示最新的记录。

这和传统的数据是不一样的,就拿游戏来说,很多人觉得手里的英雄出场的时候很强,后面被官方暗改了数值。我们可以假设这些数值是存成了mysql中的一条记录,那么我作为官方我可以直接修改这条记录,官方不公开mysql日志是没法知道这东西到底有没有改动过的。但是区块链数据库中,这条关于英雄数值的记录则是不可篡改的,如果官方要改动这一数值他只能再次写入新数据进行修改,同时要全网广播且修改的记录还是存在。

所以,如果你是初学者你在担心我前面所说的“不可修改”这一概念,大可不必担心。笔者所说的数据不可修改是指不能在原操作记录上修改:假设你在2025年04月05日13:15插入了一个王二的数据,那么你将不能直接修改2025年04月05日13:15时王二这条数据,而如果你要修改数据——从底层逻辑层面上来说是追加了一条数据,而从业务层面上来说是展示最新记录。

http://www.dtcms.com/a/113513.html

相关文章:

  • 功能测试和性能测试的区别有哪些?
  • 使用Geotools中的原始方法来操作PostGIS空间数据库
  • java高并发------守护线程Daemon Thread
  • Redis数据结构之ZSet
  • P3654 First Step (ファーストステップ)
  • Linux:(五种IO模型)
  • 基于SSM的高校宿舍水电管理系统
  • 0201线性回归-机器学习-人工智能
  • 开篇 - 配置Unlua+VsCode的智能提示、调试以及学习方法
  • 【LeetCode 热题100】23:合并 K 个升序链表(详细解析)(Go语言版)
  • 《UNIX网络编程卷1:套接字联网API》第7章:套接字选项深度解析
  • 如何理解分类(Category)?Kotlin 扩展是何方神圣?C/C++编译器的C/C++扩展
  • 关于 Spring自定义缓存管理器 的详细说明,包含两种实现方式的对比和代码示例,并附表格总结
  • 复古未来主义屏幕辉光像素化显示器反乌托邦效果PS(PSD)设计模板样机 Analog Retro-Futuristic Monitor Effect
  • 多线程代码案例 - 2
  • 高速电路 PCB 设计要点二
  • 【代码模板】如何用FILE操作符打开文件?fopen、fclose
  • KUKA机器人软件WorkVisual更改语言方法
  • Springboot定时任务开发
  • Java 大视界 -- Java 大数据在智能医疗远程护理与患者健康管理中的应用与前景(175)
  • 游戏引擎学习第205天
  • infinityfree最新免费建站详细教程_无需备案_5G空间_无限流量_免费域名_免费SSL
  • [巴黎高师课程] 同步反应式系统(2024-2025)第三课 - Kind 2: 基于SMT的Lustre模型检查器
  • 快速解决 Java 服务 CPU 过高问题指南
  • Tomcat的部署
  • 泡棉压缩对显示模组漏光的定位分析及论述
  • C 语言函数四(递归)
  • Node.js核心模块及Api详解
  • 【Block总结】PlainUSR的局部注意力,即插即用|ACCV2024
  • Synopsys:设计对象