连接断开时缓存数据
Caching data if connection is down
我有一个服务器,我正在中继我想对智能合约执行的每个操作,但假设服务器无法连接到智能合约(连接已断开)。我将如何缓存此类操作并在连接建立后执行它们。
我不太了解智能合约和区块链,但听起来您需要某种持久性数据存储。就像关系数据库一样。也许您可以使用 node-postgres and some kind of task scheduler, such as node-cron 之类的东西来经常查询和执行缓存的操作。
正如我所说,我对智能合约几乎一无所知,所以这种缓存可能与区块链等的去中心化原则相矛盾。
编辑:
如果容量足够低,您可以简单地使用 Map
或 Object
缓存 in-memory,然后仍然可能使用某种任务调度实用程序。
与智能合约(SC)的交互有两种类型:
- 调用更新状态(写入数据)
- 调用查看函数(读取数据)
为了写入数据,我们需要:
- SC地址
- 方法名称
- 数据选项
- 参数
- 发件人
所以我们可以组织成一个JS对象
{
'address': 0x..,
'method': 'transfer',
'dataOption': {
'from': '0x...',
'value': 100 (wei)
},
'params': ['param1', 'param2', ...]
}
然后您可以根据用例来确定我们应该在哪里使用它:
- 可以使用以下方式存储在服务器上:SQL、MongoDB、json 文件...
- 可以存储在 front-end 中,使用:存储
我有一个服务器,我正在中继我想对智能合约执行的每个操作,但假设服务器无法连接到智能合约(连接已断开)。我将如何缓存此类操作并在连接建立后执行它们。
我不太了解智能合约和区块链,但听起来您需要某种持久性数据存储。就像关系数据库一样。也许您可以使用 node-postgres and some kind of task scheduler, such as node-cron 之类的东西来经常查询和执行缓存的操作。
正如我所说,我对智能合约几乎一无所知,所以这种缓存可能与区块链等的去中心化原则相矛盾。
编辑:
如果容量足够低,您可以简单地使用 Map
或 Object
缓存 in-memory,然后仍然可能使用某种任务调度实用程序。
与智能合约(SC)的交互有两种类型:
- 调用更新状态(写入数据)
- 调用查看函数(读取数据)
为了写入数据,我们需要:
- SC地址
- 方法名称
- 数据选项
- 参数
- 发件人
所以我们可以组织成一个JS对象
{
'address': 0x..,
'method': 'transfer',
'dataOption': {
'from': '0x...',
'value': 100 (wei)
},
'params': ['param1', 'param2', ...]
}
然后您可以根据用例来确定我们应该在哪里使用它:
- 可以使用以下方式存储在服务器上:SQL、MongoDB、json 文件...
- 可以存储在 front-end 中,使用:存储