首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DAPPS -智能合同中应包含的内容范围

DAPPS -智能合同中应包含的内容范围
EN

Ethereum用户
提问于 2017-06-11 07:09:54
回答 1查看 1.1K关注 0票数 9

随着我越来越多地了解如何开发Dapps,我很难理解什么需要存储在智能契约中(通过我们的数据库等等)。

让我们以一个简单的赌博网站为例。我想象创建一个博彩网站的Dapp的方式如下,如果我错了,请纠正我。

使用的技术: Rails (后端),React (前端),Solidity(智能契约)

( 1)我会将下列资料储存在我的资料库内:

  • 用户(姓名、电子邮件等)
  • 可用赌注清单
  • 用户投注列表

2)创建用户后,我将创建一个新的Ethereum,其密码与他的凭据相同,并将他钱包的公共地址存储在数据库中。

3)我将储存在智能合同中:

  • 用户ID (来自数据库)
  • 打赌的ID (从数据库)
  • 金额押注
  • 投注结果/状态
  • 用户电子钱包地址
  • 我的网站电子钱包地址
  • 以及根据下注结果执行交易的代码(win :将他的奖金转移给用户钱包,lose :将他的博彩金额转移到我的网站钱包)

因此,智能合同将只包含与投注交易相关的信息(打赌结果、投注金额),而数据库将包含其余信息。要检索用户的投注历史记录,我将从数据库中检索列表,并从智能契约中检索结果(通过打赌和用户的ID链接)。

我是否完全误解了Dapps/智能合同的概念?请指教,谢谢!!

EN

回答 1

Ethereum用户

回答已采纳

发布于 2017-06-11 17:56:43

首先,很高兴你对DApps有了更多的了解,看到社区的发展总是很棒的。但是,您确实对DApps的设计方式有一些误解,所以我将尝试为您指明一个有用的方向。

使用的技术: Rails (后端),React (前端),Solidity(智能契约)

正如回答中指出的那样:

DApp的后端代码运行在分散的对等网络上。

按照定义,DApps没有典型的后端,就像RoR那样。这意味着,为了使应用程序被称为DApp,智能契约应该包含所有后端逻辑。前端可以是任何JavaScript,实际上,还有为您提供API以与智能契约后端通信的web3 3库

这是一种完全不同的模式,我在头上绕了很长一段时间就有问题了。一些经典的技术有分散的选择,比如IPFS蜂群用于存储或托管您的DApp网站,“用户”应该绑定到块链地址,您可以使用PouchDB等等。DApp应该是完全开放的和自主的。

如果您希望构建投注DApp,您真的不需要将用户信息存储在数据库中--您可以对前端进行编程,例如,通过合同进行交互,该合同将所有投注的%发送到您的控制范围内,并在提供良好服务的DApp用户的同时拥有良好的业务模式。但如果你想每次押注于区块链,交易成本有时会被证明过高。然而,这并不意味着你不能有混合应用程序-真正的DApps在他们目前的状态确实有一些限制。

在处理柠檬电子邮件时,我们必须权衡现有技术(例如SMTP服务器)的一些好处以及分散应用程序的好处--因此我们决定创建适合每个人的DApp。我们使用存储我们交互的元数据,IPFS作为我们的存储。如果你愿意,你可以在这里阅读更多关于我们的架构的内容。

另加如下:

https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide/

https://ethereum.org/dao

https://www.packtpub.com/big-data-and-business-intelligence/mastering-blockchain

票数 6
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/17691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档