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

前提

在学习dapp之前,您应该了解区块链的基础知识,并了解QKI网络。

Dapp的定义

Dapp的后端代码在分散的对等网络上运行。与此相反,该应用程序的后端代码在集中式服务器上运行。

Dapp可以具有可以调用其后端的任何语言(就像应用程序一样)编写的前端代码和用户界面。此外,它的前端可以托管在分散存储(例如IPFS)上

  • Decentralized,意味着它们是独立的,没有人可以将它们作为一个整体来控制。
  • Deterministic,即它们执行相同的功能,而不管它们执行的环境如何。
  • Turing complete这意味着只要有必需的资源,Dapp就可以执行任何操作。
  • Isolated这意味着它们在称为以太坊虚拟机的虚拟环境中执行,因此,如果智能合约碰巧有错误,则不会妨碍区块链网络的正常运行。

关于智能合约

要引入Dapp,我们需要引入智能合约-Dapp的后端,因为缺少更好的条款。有关详细的概述,请转到我们关于智能合约的部分。

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

DAPP开发的优势

  • 零停机时间–一旦在应用程序核心和区块链上部署了智能合约,整个网络将始终能够为希望与合约进行交互的客户提供服务。因此,恶意行为者无法针对单个Dapp发起拒绝服务攻击。
  • 隐私–您无需提供真实世界的身份即可部署Dapp或与Dapp进行交互。
  • 抵制审查–网​​络上没有任何一个实体可以阻止用户提交交易,部署Dapp或从区块链读取数据。
  • 完整的数据完整性–借助密码原语,存储在区块链上的数据是不变且无可争辩的。恶意行为者无法伪造已公开的交易或其他数据。
  • 不可信的计算/可验证的行为–可以分析智能合约,并确保它们以可预测的方式执行,而无需信任中央机构。在传统模型中情况并非如此;例如,当我们使用在线银行系统时,我们必须相信金融机构不会滥用我们的财务数据,篡改记录或被黑。

DAPP开发的含义

  • 维护– Dapps可能更难以维护,因为发布到区块链的代码和数据更难修改。开发人员一旦部署后就很难对其Dapp(或Dapp存储的基础数据)进行更新-即使在旧版本中发现了错误或安全风险。
  • 性能开销–巨大的性能开销,扩展真的很困难。为了达到以太坊所追求的安全性,完整性,透明性和可靠性水平,每个节点都要运行并存储每个事务。最重要的是,工作量证明也需要时间。包络计算使开销大约为当前标准计算的1,000,000x。
  • 网络拥塞–至少在当前模型中,如果一个Dapp使用过多的计算资源,则会备份整个网络。当前,该网络每秒只能处理大约10-15笔交易。如果发送交易的速度快于此速度,则未经确认的交易池会迅速膨胀。
  • 用户体验–可能难以设计出用户友好的体验:普通最终用户可能会发现建立以真正安全的方式与区块链进行交互所必需的工具栈太困难了。
  • 集中化–无论如何,建立在以太坊基础层之上的用户友好型和开发人员友好型解决方案最终看起来都像集中式服务:例如,此类服务可能存储密钥或其他敏感信息服务器端,使用集中式服务于前端服务器,或在写入区块链之前在集中式服务器上运行重要的业务逻辑。这消除了区块链相对于传统模型的许多(如果不是全部)优势。

DAPP工具

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

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

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

订阅我们的新闻
获取最新的文章
更多内容
您想提升区块链认知吗?
让我们保持联系