database - 去中心化数据库如何运作?

标签 database blockchain

从技术角度来看,去中心化数据库如何工作。

总的来说,我知道所有用户都有自己的数据副本,并且以某种方式保持同步。

但是这个同步逻辑完全不清楚客户端是否发送http请求或者发生了什么?

任何关于阅读什么或如何深入研究该主题的建议都将受到高度赞赏

更新===================

谢谢大家的好回复,我想让问题更窄一些 它指出区 block 链是去中心化的并且不属于任何人,因此没有公共(public)服务器

所以让我困惑的是 例如我有数据库的副本,另一个人有相同的数据库,但略有不同,如果我们都没有任何公共(public) IP,我们如何同步?

在我看来,如果至少有人拥有公共(public) IP,那么它就还没有完全去中心化

最佳答案

逻辑:交易状态计算

去中心化系统/数据存储的工作原理是计算状态,其中状态是您想要从数据库使用的实际数据。

假设,您通过进行 2 个插入/更新查询对数据库进行了修改,系统实际上会获取这 2 个查询并将它们作为事务存储在数据库中,并且这些事务将跨节点(网络中的其他计算机)同步它是去中心化的)。另一个节点将根据同步的事务再次计算状态并将其更新到数据库。


让我们尝试通过一个例子来理解这一点:

考虑一个电影票务系统。同一剧院将在多个供应商网站中列出。

  • 假设电影院有 100 个座位(有 100 个座位)。
  • 假设有 2 个供应商。 BookMyShow 和 TicketNew。

下面是从时间 t1 到 t9 期间网络上发生的交易列表。

Block sample

  • 交易 (T1) - 在时间 (t1),有人在 BookMyShow 上购买了 10 张门票。
  • 交易 (T2) - 在时间 t2,其他人在 BookMyShow 上又购买了 3 张门票。

在 BookMyShow 数据库中,状态将最初为 100 张未预订的门票

这 2 笔交易(T1 和 T2)之后状态将是 => 剩余 87 个席位,已预订 13 个席位。 (因此,BookMyShow 的数据库将有此信息。)

现在 BookMyShow 会将这 2 个交易T1 和 T2 添加到所谓的区 block 中(这通常是交易列表和一些其他参数), B1,并将其发布到网络上。另一个供应商 TicketNew 会将这个 block B1 同步到他的机器上,现在就知道这些交易发生了。现在,TicketNew 供应商的机器将通过了解交易开始计算票务系统的状态

  • 最初 100 张门票。
  • T1 预订了 10 个 => 剩余 90 个座位
  • T2 已预订 3 个 => 剩余 87 个

更新到TicketNew的数据库=>剩余87个座位,已预订13个座位

类似地,T3、...T6 交易发生在 TicketNew 供应商网站上的时间 t3、...t6。这些交易将被 TicketNew 添加到另一个区 block B2 中并推送到网络。 BookMyShow 同步区 block B2 并更新其数据库中的状态,目前已预订 26 张门票,其中 74 张免费。

  • 同步区 block B2 之前有 87 张票。

  • T3 航站楼已预订 4 个 => 剩余 83 个座位

  • T4 已预订 2 个 => 剩余 81 个

  • T4 已预订 6 个 => 剩余 75 个

  • T4 已预订 1 个 => 剩余 74 个

  • 更新至 BookMyShow 数据库 => 剩余 74 个席位,已预订 26 个席位

关于database - 去中心化数据库如何运作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48641416/

相关文章:

java - 区 block 链技术如何验证工作证明

java - 锯齿状无效批处理或签名

database - 将多个 (csv) 文件导入 Access 数据库的任何方式

database - TOAD for DB2 的免费替代品

mysql - 社交应用程序的数据库设计和优化注意事项

字符串连接是否牢固?

javascript - 收到错误 : Expected a Resource or Concept have checked older posts too but it's not helping me out with my code

blockchain - 如何加速私有(private)链中的 Geth 交易?

php - 数据库 : Save users and admins in the same table (pros/cons)?

javascript - 使用 AJAX 从数据库获取 JSON 数据时遇到问题