5

Dapp简介

 3 years ago
source link: https://lianqiujun.co/post/dapp-jian-jie/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

去中心化应用程序(dapp)是在分散式网络上构建的应用程序,它结合了智能合约和前端用户界面。请注意,在以太坊中,智能合约是公开可访问且透明的(例如开放的API),因此您的dapp甚至可以包含其他人编写的智能合约。

预备知识

在学习dapp之前,您应该了解区块链 基础知识 ,并了解以太坊网络及其去中心化方式。

DAPP的定义

dapp的后端代码在部署在点对点网络上运行。将其与在集中式服务器上运行后端代码的应用程序进行对比,两者是不同的。

dapp可以具有自己的前端代码和用户界面,可以调用任何后端语言(就像应用程序一样)编写的后台程序,同样可以调用部署在区块链上的智能合约。此外,它的前端可以托管在去中心存储(例如IPFS)上。

  • 去中心化的管理使他们独立,没有人可以控制他们。

  • 确定性的,即它们执行相同的功能,而不管它们执行的环境如何。

  • 图灵兼容,这意味着只要有必要的资源,dapp就可以执行任何操作。

  • 隔离,这意味着它们在称为以太坊虚拟机(EVM)的虚拟环境中执行,因此,如果某个智能合约碰巧有错误,则不会妨碍区块链网络的正常运行。

关于智能合约

要引入dapp,我们需要引入智能合约,即dapp的后端。有关详细的概述,请转到 智能合约 部分。

智能合约是部署在以太坊区块链上的代码,完全按照编程的逻辑运行。一旦将它们部署在网络上,就无法更改它们。Dapps可以是去中心化的,因为它们受合同中写入的逻辑(而不是个人或公司)的控制。这也意味着您需要非常仔细地设计合同并进行全面测试。

DAPP开发的好处

  • 零停机时间 – 一旦在应用程序核心和区块链上部署了智能合约,整个网络将始终能够为希望与合约进行交互的客户提供服务。因此,恶意行为者无法针对单个dapp发起拒绝服务攻击。

  • 隐私 – 您无需提供真实身份即可部署dapp或与dapp交互。

  • 抵制审查 – 网络上没有任何一个实体可以阻止用户提交交易,部署dapp或从区块链读取数据。

  • 完整的数据完整性 – 借助密码原语,存储在区块链上的数据是不变且无可争议的。恶意行为者无法伪造已公开的交易或其他数据。

  • 不可信的计算/可验证的行为 – 智能合约可以进行分析,并保证以可预测的方式执行,而无需信任中央机构。在传统模型中情况并非如此;例如,当我们使用在线银行系统时,我们必须相信金融机构不会滥用我们的财务数据,篡改记录或被黑。

DAPP开发的问题

  • 维护 – dapps难以维护,因为发布到区块链的代码和数据更难修改。开发人员一旦部署dapp(或dapp存储的基础数据)就很难进行更新-即使在旧版本中发现了错误或安全风险。

  • 性能开销 – 巨大的性能开销,扩展真的很困难。为了达到以太坊所追求的安全性,完整性,透明性和可靠性水平,每个节点都要运行并存储每个事务。最重要的是,工作量证明也需要时间。包络计算使开销大约为当前标准计算的1,000,000倍。

  • 网络拥塞 – 至少在当前模型中,一个dapp会使用过多的计算资源,将数据备份至整个网络。目前,该网络每秒只能处理大约10个事务。如果发送交易的速度快于此速度,则未经确认的交易池会迅速膨胀。

  • 用户体验 – 可能难以设计出用户友好的体验:普通最终用户可能会发现建立以真正安全的方式与区块链进行交互所必需的工具栈太困难了。

  • 集中化 – 无论如何,建立在以太坊基础层之上的用户友好型和开发人员友好型解决方案最终看起来都像集中式服务:例如,此类服务可能存储密钥或其他敏感信息服务器端,使用集中式服务于前端服务器,或在写入区块链之前在集中式服务器上运行重要的业务逻辑。这消除了区块链相对于传统模型的许多(如果不是全部)优势。

DAPP工具

  • Rimble UI- 适用于分散式应用程序的自适应组件和设计标准。

    https://rimble.consensys.design/

    GitHub

  • 一键式Dapp -FOSS工具,用于从ABI生成dapp前端。

https://oneclickdapp.com/

GitHub

  • Etherflow -Ethereum开发人员的FOSS工具,用于测试其节点以及编写和调试来自浏览器的RPC调用。

https://etherflow.quiknode.io/

GitHub


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK