0

我想在服务器上部署一个智能合约并使用移动客户端与之交互。我不熟悉它是如何工作的,但经过一些研究,我发现如下: 在此处输入图像描述

如果我们比较移动客户端中通过 Web 服务进行的通信,那么在智能合约中几乎所有的东西都是一样的,因为系统的去中心化特性,没有数据库或部署服务。那正确吗?我们可以使用 web3 之类的库将移动客户端连接到智能合约,这些库基本上可以与 Json RPC 或 websockets 一起使用。

但是,如果我不想使用 web3 之类的库将每个移动客户端连接到智能合约怎么办?相反,如果我想要一个 HTTP 服务器,然后它会像下面这样连接到智能合约怎么办? 在此处输入图像描述

那可能吗?如果是,那我该怎么做?

我的第二个问题是关于部署的。在集中式服务器场景中,我会将数据库部署在 AWS 等服务上。我可以估算部署成本。我知道我们必须在以太坊主网上部署智能合约,这将花费一些以太币。但后来我发现我的用户必须为每次计算付费。如果我想承担所有费用怎么办?我们如何估算这些成本?

请指导我解决上述问题。谢谢。

4

1 回答 1

1

相反,如果我想要一个 HTTP 服务器,然后它会像下面这样连接到智能合约怎么办?

你当然可以这样做,有些人可能会认为通过在 DApp 和区块链之间放置一个 Web 服务器来增加一层集中化,但我不同意。如果你想这样做,你的 DApp 只需在你的网络服务器上调用一个 REST API,作为回报,它将利用web3.js (node.js)、web3j (Java)、Nethereum (C#/.NET) 或任何其他风格的Web3 直接与区块链交互。

如果我想承担所有费用怎么办?

您将只能承担部署代表您而非任何潜在最终用户的智能合约的成本。

我们如何估算这些成本?

estimateGas您可以通过 web3 的方法估算合约部署或合约交互的 gas 成本。请理解,此成本很大程度上取决于您编写的 Solidity 智能合约代码的结构。请注意,这当然也只是一个估计,因为用户总是可以花费更多的以太币来更快地确认他们的交易,或者智能合约中的数据状态可能会随着时间的推移而改变,需要更高的 gas 成本(即迭代不断增长的数组)。有关以太坊主网内 gas 成本的更多信息,您可以查看ETH Gas Station

作为旁注,由于我不知道您对区块链技术的特定用例,因此权衡使用以太坊主网或启动您自己的私有以太坊区块链是否有意义可能会有所帮助。使用后者,您将完全避免花费任何以太币与区块链网络进行交互,但您可能会有额外的开销。

于 2019-01-07T13:34:42.130 回答