去中心化应用Dapp和web 应用架构对比

 

以太坊区块链最大的特定之一,开发者可以使用基于区块链的技术来开发去中心化的应用。而web app 架构和技术是很多区块链学习者熟悉的技术。本文尝试从去中心化应用的架构与开发,与web 应用技术进行比较,从而得出它们之间的异同。主要目的是让区块链的爱好者更形象具体地去理解以太坊区块链,智能合约,以及去中心化的应用。本文会先从架构开始进行对比,然后再从开发过程进行阐述。

架构

去中心化应用Dapp和web 应用架构对比_第1张图片

 

如上图所示,去中心化应用通过http rpc访问智能合约,发送交易,交易经矿工打包后确认后,记入区块链,并返回响应消息。而常见的web应用的架构与之非常的相似,UI发送http请求,请求的信息,经过web服务后,请求的信息记入数据库,web服务向客户端返回响应的消息。

 

开发过程

下面将比较这两种应用的开发过程。

 去中心化应用的开发过程

1.   根据业务场景编写智能合约,编写完成把合约发布到区块链上。

2.    编写Dapp的 UI界面,使用web3js,经过http rpc协议访问智能合约。

3.    Dapp发送的每一笔交易,导致合约状态变化,会自动永久记录到区块链上。

 

Web 应用开发过程

  1.     编写web 服务,发布web服务。

  2.      编写UI界面。

  3.    实现数据持久化。在Web服务里,人工开发实现数据持久化到数据库。

总结一下:

相同的是:

Dapp与web app整体架构非常的相似,从功能上将,我们甚至可以把智能合约看作是web 服务一样去访问。

如果把智能合约和web service 看作业务逻辑层,那么,UI层可以使用一样的web界面,经过http协议与业务逻辑层进行交互。并且经过业务层处理后,数据会被持久化,dapp记录到区块链上,web 应用把数据保存数据库,区块链的底层同样是数据库。

不同的是:

1. 界面逻辑,dapp实现了http rpcweb3js与智能合约进行数据交互;而web app 基于ajax库与web服务进行交互。          

2. 业务逻辑层:智能合约运行在evm上的,其与系统资源完全隔离的,也智能合约不能访问系统的文件,网络。而web 服务不但可以访问到文件,网络,甚至可以访问外部的服务。  

3.数据持久化:智能合约拥有独立的存储空间,内存和堆栈。合约变量状态自动地被记录区块链上被持久化。而web服务需要人工开发实现数据的持久化。

4.web 应用不具备区块链技术特性。智能合约一旦发布即不改更改。区块链数据不改篡改,不可伪造。分布式系统共识算法等特点。

你可能感兴趣的:(区块链,架构,ethereum,web,dapp)