几天后,私有以太坊区块链上的数据丢失/消失

Posted

技术标签:

【中文标题】几天后,私有以太坊区块链上的数据丢失/消失【英文标题】:Data on Private Ethereum blockchain lost/disappears after couple of days 【发布时间】:2018-11-03 11:31:11 【问题描述】:

我正在 Azure 上的虚拟机上部署私有以太坊区块链 (geth)。在区块链上部署我的 Solidity 合约并启动我的 NodeJS 应用程序后,我可以通过 nodejs Loopback 应用程序的 web apis 正常添加数据,一切正常,我可以使用 GET apis 查看添加的数据。

但是,在 1-2-3 天(随机)之后,我无法检索通过我的 GET api 添加的数据,但我仍然能够添加新数据,以确认 Geth 运行良好并且没有被中断.

我正在运行 geth 使用:

geth --datadir ./myDataDir --rpc --networkid 1441 console 2>> myEth.log

myEth.log 没有显示任何错误,nodejs 日志也很干净。

eth.syncing 显示false,表示网络已同步。

myDataDir 文件夹的大小仍在增加,因此逻辑上数据应该在某处,但没有显示。

【问题讨论】:

某些必需的登录是否可能在 1-3 天后过期? 不,绝对不是@David,没有这样的登录过程可以与之交谈,如果有的话,它从一开始就已经在工作并且没有到期日期。 嗯,您是否错过了包含的到期参数?我不这么认为,但我不知道区块链,所以我不知道独特的细节。替代方案:也许您发送删除命令而不识别它? 我也不这么认为,因为有时数据会在区块链中保存一周或更长时间。肯定跟交易成本和以太坊配置有关,恐怕是1.8.6版本的bug!我正在联系 consensys 支持,看看他们是否可以提供帮助! 是的,听起来像一个错误 【参考方案1】:

这不是私有区块链!

--networkid 1441

这仅表示您与运行 ID 为 1441 的网络的客户端进行通信。这可能不太可能,但如果其他人运行 ID 为 1441 的网络,此节点将很好地连接到您的节点。并且如果具有相同 ID 的其他网络具有更长(更“重”)的链,这会覆盖您的本地链。

为避免这种情况,请尝试使用更随机的网络 ID,可能是 7-9 位数字,并禁用发现

 --nodiscovery

或者只使用--dev 预设。

【讨论】:

以上是关于几天后,私有以太坊区块链上的数据丢失/消失的主要内容,如果未能解决你的问题,请参考以下文章

第一行代码:以太坊-创建自己的私有区块链

区块链以太坊环境搭建(详细篇)

以太坊合并后下跌22%,我们分析链上的数据看看是否能找到答

ERC20 代币余额如何存储在以太坊区块链上

以太坊虚拟机 EVMEVMC interpreter

使用 web3 和 go-ethereum 在私有以太坊区块链上打开和进行交易时未捕获(承诺)错误