Vin*_*are 3 bitcoin spring-boot microservices ethereum
我是去中心化应用程序的新手,在阅读了一些文章后,我对微服务和去中心化应用程序感到困惑。有人可以帮助我了解它们之间的区别。我知道可以使用 spring boot 和 docker 构建微服务。有没有其他技术可以构建它。我认为以太坊用于开发去中心化应用程序。有人可以帮助我理解其中的区别吗?
微服务应用程序仍然在您的基础设施上运行,您仍然可以控制其所有节点、状态和基础设施。因此,尽管是分布式的(即使基础设施可能不是您的,例如 3rd 方云),您仍然有权干预其所有方面。
去中心化应用程序的主要卖点是理论上没有人可以实际干预其基础设施,因为它不归单个实体所有。理论上,世界上的任何人(以及其最大的用户群,去中心化应用程序变得更有弹性)都可以成为基础设施中的节点,并且“当前有效状态”是基于节点之间的某种协议计算的(因此,除非您可以干预大多数不属于您的节点,您无法自行更改应用程序的状态)。
从某种意义上说,它们看起来很相似是对的,因为它们都是分布式应用程序。去中心化的只是更进一步,不被单一实体“拥有”和“控制”,成为匿名社区的产物。
编辑
因此,假设您/您的公司制作了一个非常酷的微服务应用程序,并将其托管在世界各地的一堆 3rd 方云上,以确保它非常冗余且始终可用。您改变主意(或者可能是政府法规强制这样做)可能会突然关闭应用程序或禁止某些用户使用它或编辑/审查当前在其上发布的内容。您拥有完全控制权,因为它是您的应用程序。尽管您的意图可能是好的,但您是一个责任,是生态系统中的单点故障。
现在,如果您的应用程序是去中心化的……没有特定的人/实体可以被追捕来强制执行这种行为。您需要寻找为应用程序提供基础设施并执行其商定的规则集的数千/数百万单个独立节点的所有者。那么你将如何禁止用户/审查内容/等?你(理论上)不能......除非你可以到达它的大多数节点,而且这已经被证明是相当困难的,甚至蛮力也几乎不可能实现。
微服务更像是软件架构。这个想法是,你有许多小型应用程序 - 微服务,每个应用程序只专注于解决一个目标,但做得非常好。
微服务的特定实例可以是运行用于管理用户的 HTTP 服务器的应用程序。它可以具有用于在数据库中添加、查看和删除用户的 HTTP 端点。然后,您可以将此类应用程序与数据库一起部署在某个服务器上。
经过相当程度的简化,我们可以说微服务与您在计算机上运行的 Web 浏览器没有太大不同。Web 浏览器和微服务之间的区别在于,微服务将在服务器上运行,公开某种网络接口,而浏览器在个人计算机上运行,并且不会公开网络接口供其他人交互。
最重要的是,单个微服务只是在服务器上运行的应用程序,您可以随时修改其代码,可以随时停止它,可以更改它正在使用的数据库中的数据。
去中心化应用程序部署到区块链上。区块链是计算机网络(以太坊主网有数万个节点),所有计算机都运行相同的程序。当您编写去中心化应用程序(就以太坊区块链而言,称为智能合约)并“部署它”时,会发生的情况是,您基本上将代码插入到该计算机网络中,并且每个计算机网络都可以使用它。
一旦应用程序的代码位于网络中,您就可以与其进行交互 - 通过将 JSON-RPC 请求发送到属于该区块链网络的服务器,您可以使用在去中心化应用程序中定义的接口。
然后需要一些时间才能网络接收到您的执行请求。如果一切顺利,您的请求最终会分发到网络并由连接到区块链的每台计算机执行。
这样做的后果是,如果网络中的某些计算机试图对结果撒谎,则网络的其余部分会注意到这种欺诈行为。
这里的底线是去中心化应用程序不是在一台计算机上执行,而是在许多(可能是数千)台计算机上执行,即使作为创建者,您也无法修改它的代码或数据(您只能在有限的程度上)
归档时间: |
|
查看次数: |
487 次 |
最近记录: |