以太坊智能合约如何在移动客户端上运行

问题描述 投票:0回答:1

我想在服务器上部署智能合约,并使用移动客户端与其进行交互。我不熟悉它是如何工作的,但经过一些研究后,我发现了类似下面的内容:enter image description here

如果我们通过移动客户端中的Web服务比较通信,那么智能合约中几乎所有内容都是相同的,因为系统的分散性质是没有数据库或部署服务。是对的吗?我们可以使用像web3这样的库来连接移动客户端到智能合约,这些库基本上可以与Json RPC或websockets一起使用。

但是如果我不想使用像web3这样的库将每个移动客户端连接到智能合约呢?相反,如果我想拥有一个HTTP服务器然后它会连接到如下所示的智能合约怎么办? enter image description here

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

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

请指导我以上的问题。谢谢。

blockchain ethereum solidity web3 web3-java
1个回答
1
投票

相反,如果我想拥有一个HTTP服务器然后它会连接到如下所示的智能合约怎么办?

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

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

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

我们如何估算这些费用?

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

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

© www.soinside.com 2019 - 2024. All rights reserved.