使用区块链实现的网络服务是怎样的架构,比起传统服务器/数据库架构有何优
2018-05-09 11:37 浏览: 次虽然现在区块链火热,但是我仍然对区块链的使用抱有疑问。
首先的疑问是,区块链的程序是运行在服务提供商的数据中心,还是运行在客户端?
如果程序运行在客户端,因为区块链需要不停的去生成新的block(“挖矿”)来存储不断产生的数据,CPU会一直处于满负荷运转的状态。在现代这个手机第一世界上,相信没有用户愿意让自己的手机CPU一直满负荷运转导致一块能用2年的手机电池只能用2个月同时手机一直保持烫手山芋的状态。
如果程序运行在服务提供商的数据中心,是否使用区块链对用户是一种透明状态,用户只是通过调用服务商的restful api来读写数据的话,这样就丧失了区块链的分散性/安全性特性。因为政府仍然可以通过关停整个服务商的数据中心来中断服务。从安全性上开说,hack一个调用restful api的手机app难度明显要小于hack 区块链本身。
另外,传统的web服务只需可以承受负荷的服务器就足够,而cpu夜只有在有用户请求的时候才会忙。
而运行在数据中心内的区块链程序,则需要不停的挖矿,CPU会一直处于满负荷状态,甚至可能采取专门的挖矿用服务器,导致电力大量消耗。
我对此感到疑问。使用区块链的服务相比传统web服务优势在哪里?
区块链架构与传统网络服务架构的区别
与传统网络服务架构最大的不同不是技术上的,而是数据的所有权问题,一般来讲传统网络服务架构一定是有数据库存储的,而数据库通常是由该服务的提供商管理的,即数据是由服务商所有。
那么你来考虑,你今天发布的美食照片,在哪里消费了多少钱,这个数据不应当完全是服务商所有,这是你自己的数据,他们提供了服务,就理所当然的占有了你的数据,甚至可以毫无底线地出卖你的数据。
如果服务商想利用你的(隐私)数据产生商业价值,应该获得你的授权,不是吗?——这个就会回到我们最近研究的区块链数字身份系统。(咳咳...扯远了)
回到架构上来说,正因为思路不同,所以不能以传统的网络服务架构眼光来看区块链,彻底放弃原有的架构:高并发,负载均衡,缓存命中之类。
区块链不是为高并发而生的,而是为用户/应用而生的,一个低成本的可信互联网。
下面回答问题,(/ □ \):
#1 区块链的程序是运行在服务提供商的数据中心,还是运行在客户端?
客户端。
由于是P2P网络,每个节点既是数据提供者,也是接收者。
#2. CPU会一直处于满负荷运转的状态 。
这不部分是由共识算法决定的,在成熟的区块链架构下,CPU占用是不高的,主要是在处理消息包,以及加解密等非计算密集的功能。因为共识都交给GPU或者计算能力更强大的设备去做了。
#3 如果程序运行在服务提供商的数据中心,是否使用区块链对用户是一种透明状态,用户只是通过调用服务商的restful api来读写数据的话,这样就丧失了区块链的分散性/安全性特性。
对个人用户是,对企业用户否。
你看,如果你了解传统网络服务架构,区块链也一样:分而治之。
有什么是不能拆分的,太粗就拆模块拆功能,拆粗了继续拆,拆细了做事务,事务做完提交广播,一样一样的。
解答一下主要疑问:程序运行在哪里,挖矿如何进行。
以下介绍以公有链(如比特币)为探讨目标。
第一,程序运行在客户端。
有多种类型的客户端,包括全节点客户端、轻节点客户端、挖矿客户端等。全节点客户端保存区块链完整账本一份,提供转账功能,提供solo挖矿功能。轻节点客户端不存储完整账本,用梅克尔树校验账本。挖矿客户端一般只挖矿,要连接矿池。我们用户运行全、轻节点客户端。没有服务器或中心数据库这个角色,节点间都是平等的。一些网站帮助我们托管完整账本(体积太大而个人电脑不宜存放),但它们也不是所谓服务器,如果它们的账本文件出错也要被其他节点拒绝。
第二,挖矿和用户可以分离。
我们运行全、轻节点客户端,都不需要挖矿,只需转账(或参与智能合约)操作,将操作广播到节点网络中,专门的矿工会打包这些消息,生成区块,作为一般用户,我们接收这些区块,继续更新账本文件。
综上,区块链网络不需要中心服务器,节点之间是平等的,一般用户不需承担挖矿工作,甚至不需存储完整账本。
继续讨论:使用区块链而不是传统web服务的原因在哪里?当一个体系可能需要历史不可篡改、匿名性、消除信任中介等特性时,才有必要转换到区块链上。这些特性是由一致性验证、共有账本、点对点广播网络、工作量或权益证明等机制联合建立起来的。可以说,是因为对一个可由人治的中心化数据服务无法充足信任的时候,我们会提出转移到区块链的需求。诚然,由于PoW等设计,要支付运算成本;由于区块有更新速度、大小的限制,性能有所限制。但是,区块链带来的信任价值会远超这些受制于技术现况、且将因技术发展而进一步降低的支出。
天下数据IDC提供香港服务器、美国服务器等全球海外服务器租用托管,是区域链、直销、流媒体、外贸、游戏等服务器解决方案首选品牌。天下数据已为多家企业提供区块链服务器租用托管解决方案,为他们的区块链安全提供支持!具体详询在线客服!
【免责声明】:部分内容、图片来源于互联网,如有侵权请联系删除,QQ:228866015