几天后,私有以太坊区块链上的数据丢失/消失
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
预设。
【讨论】:
以上是关于几天后,私有以太坊区块链上的数据丢失/消失的主要内容,如果未能解决你的问题,请参考以下文章