正文
我将在本文尝试从Web开发人员的角度来解释以太坊。
如果你是一名web开发人员,你一定知道web程序(webapp)及其客户服务器架构是如何高水平运作的。
将网页应用程序托管在AWS(亚马逊网络服务)、Heroku(一个支持多种编程语言的云平台)或VPS(虚拟专用服务器)等主机供应商那里。所有客户端只与这一个中心应用进行交互。客户端可以是浏览器,该浏览器如有魔力,可以与数据库和/或缓存沟通交流,还可以读取/写入/更新数据库并为客户端提供服务。
大多数时间,该架构运作良好。然而,有时候,对于某些应用程序,如果所有人都可以公开、安全地访问数据库,而不需要依赖网页应用程序的所有者来获取数据,那将更加有益。
比如eBay。如果你是超级卖家,好评成百上千,而出于某些原因,eBay暂停了你的账户。这种情况就会非常糟糕,严重影响你的业务。如果有能力将所有好评和评级转移到另一家平台上(比如eBay的竞争对手),那就太好了。eBay确实作为买家与卖家间可信任的第三方来提供服务。但他们会从每笔交易中收取佣金。假如有办法从买家与卖家的交易过程中完全移除eBay,你省下佣金并可以访问自己的数据,会怎样呢?这便是去中心化应用登台的时候了。借助以太坊,构建Dapp(去中心化应用)变得十分方便。
这就是从较高的视角看以太坊Dapp的样子:
你是否注意到了,每个客户端(浏览器)只与自己的应用程序实例进行交互。并不存在所有客户端都与之相连的中央服务器。这意味着,任何使用dapp(去中心化应用)的人都需要在其计算机/手机等上运行区块链的完整副本。也就是说,在使用应用程序之前,你必须下载整个区块链,然后才可以开始使用。起初这听起来似乎有点滑稽,但这样做有其优势,人们不用再依赖一个明天就可能消失的中央服务器。
事实上,下载整个区块链并不需要占用很多硬盘或RAM(内存)。有几种变通方法/优化措施可以在保持应用程序去中心化的同时使交互变得快速简单。
现在,到底什么是区块链?它拥有: