我想将一个事务存储在ethereum区块链上,并将someText附在它上:
{
from,
to,
value,
data: someText
} 稍后,我希望检索该事务并阅读附在其中的文本。
但实际上,我不想检索someText,因为它最初存储在事务中。我想检索someText,并将someExtraText附加到它。
每次请求事务时,都应该动态地生成someExtraText并将其附加到someText中。它的价值不会固定。每次都会不一样。
在发送给我之前,生成someExtraText并将其附加到someText的逻辑不应该驻留在我的服务器上。它也应该驻留在区块链上。
我知道,对于如何将事务发送到块链以及如何使用web3.js检索它们,有一个清晰的API:
web3.eth.sendTransaction({
from,
to,
value,
data: someText
})
web3.eth.getTransaction(transactionHash)但他们显然不会为我提供我想要的。
问题:我所描述的是我需要构建的自定义智能契约,还是我所描述的根本不可能实现的,即使是通过使用智能契约?
我理解智能契约的作用是生成事务,而我正在考虑的是智能契约,它将使用现有事务并在将数据发送回我之前附加到它。
如果有可能的话,而且我没有任何智能合同的经验,你能给我一些起点吗?关于如何构建智能契约,我知道有一些教程可供参考,但我知道如何开始构建这个特殊的智能契约。我要求的不是实际的代码,而是更高层次的解释,如果可能的话,这样我就可以在某种程度上可视化它的结构/逻辑,并使用它作为蓝图。我再一次明白,这可能根本不可能:)
请注意,尽管我的用例听起来可能很奇怪,但我不想过多地讨论可能会影响文章主要目标的细节。
我基本上是在寻找一种方法来检索我创建的事务,但是在检索的时候还会附加一些额外的动态信息。该信息显然不会存储在事务中,因为它们是不可变的。当我读到它并在下次请求事务时重新创建它时,它将是丢失的信息。
发布于 2022-05-27 05:21:40
您可以对智能契约进行编码。在高级别上,您首先编写一个具有两个功能的智能契约.以事务为输入的人。让我们把这个函数称为inputTransaction。您可以有另一个名为appendData的智能契约函数,它将一些数据附加到事务中,并发出包含事务和附加数据的智能契约事件。为了得到你想要做的事情,你应该做以下几件事:
inputTransaction并解析事务(有关如何调用智能契约函数的web3文档)。appendData函数并异步获取该事务的接收(同样,请参阅web3文档,说明如何发送事务并异步等待它们的收据)。发布于 2022-05-27 06:32:29
https://ethereum.stackexchange.com/questions/129058
复制相似问题