gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 20:23:56 25 4
gpt4 key购买 nike

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

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

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

非常感谢阅读什么或如何更深入地研究该主题的任何建议

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

感谢大家的积极回复,我想把问题缩小一点它指出区 block 链是分散的并且不为任何人所有,因此没有公共(public)服务器

所以让我困惑的是什么例如我有 DB 的副本,另一个人有相同的数据库但略有不同,如果我们都没有任何公共(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 会将这两笔交易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 同步块(synchronized block) B2 并更新其数据库中的状态,现在有 26 张票已预订,74 张是免费的。

  • 在同步块(synchronized block) B2 之前有 87 张票。

  • 在 T3 预订了 4 => 剩余 83 个座位

  • T4 预订 2 => 剩余 81

  • T4 预订 6 => 剩余 75

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

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com