首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >智能契约能否在检索过程中为现有事务生成动态数据?

智能契约能否在检索过程中为现有事务生成动态数据?
EN

Ethereum用户
提问于 2022-05-27 02:07:18
回答 2查看 66关注 0票数 0

我想将一个事务存储在ethereum区块链上,并将someText附在它上:

代码语言:javascript
复制
{
  from,
  to,
  value, 
  data: someText
}               

稍后,我希望检索该事务并阅读附在其中的文本。

但实际上,我不想检索someText,因为它最初存储在事务中。我想检索someText,并将someExtraText附加到它。

每次请求事务时,都应该动态地生成someExtraText并将其附加到someText中。它的价值不会固定。每次都会不一样。

在发送给我之前,生成someExtraText并将其附加到someText的逻辑不应该驻留在我的服务器上。它也应该驻留在区块链上。

我知道,对于如何将事务发送到块链以及如何使用web3.js检索它们,有一个清晰的API:

代码语言:javascript
复制
web3.eth.sendTransaction({
  from,
  to,
  value, 
  data: someText
})   

web3.eth.getTransaction(transactionHash)

但他们显然不会为我提供我想要的。

问题:我所描述的是我需要构建的自定义智能契约,还是我所描述的根本不可能实现的,即使是通过使用智能契约?

我理解智能契约的作用是生成事务,而我正在考虑的是智能契约,它将使用现有事务并在将数据发送回我之前附加到它。

如果有可能的话,而且我没有任何智能合同的经验,你能给我一些起点吗?关于如何构建智能契约,我知道有一些教程可供参考,但我知道如何开始构建这个特殊的智能契约。我要求的不是实际的代码,而是更高层次的解释,如果可能的话,这样我就可以在某种程度上可视化它的结构/逻辑,并使用它作为蓝图。我再一次明白,这可能根本不可能:)

请注意,尽管我的用例听起来可能很奇怪,但我不想过多地讨论可能会影响文章主要目标的细节。

我基本上是在寻找一种方法来检索我创建的事务,但是在检索的时候还会附加一些额外的动态信息。该信息显然不会存储在事务中,因为它们是不可变的。当我读到它并在下次请求事务时重新创建它时,它将是丢失的信息。

EN

回答 2

Ethereum用户

发布于 2022-05-27 05:21:40

您可以对智能契约进行编码。在高级别上,您首先编写一个具有两个功能的智能契约.以事务为输入的人。让我们把这个函数称为inputTransaction。您可以有另一个名为appendData的智能契约函数,它将一些数据附加到事务中,并发出包含事务和附加数据的智能契约事件。为了得到你想要做的事情,你应该做以下几件事:

  1. 首先,将您的自定义智能契约部署在区块链上(即Ethereum)
  2. 在智能契约中调用inputTransaction并解析事务(有关如何调用智能契约函数的web3文档)。
  3. 当您需要将某些内容附加到事务时,请调用appendData函数并异步获取该事务的接收(同样,请参阅web3文档,说明如何发送事务并异步等待它们的收据)。
  4. 收据将包含您可以检索和读取的事件。这将同时包含您的事务和附加的数据。
票数 1
EN

Ethereum用户

发布于 2022-05-27 06:32:29

在发送给我之前,不应该驻留在我的服务器上。

不是的。这不是区块链的工作方式。

请阅读更多关于智能合同为什么不与服务器通信的信息

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

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

复制
相关文章

相似问题

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