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

Gha*_*ein 9 blockchain ethereum solidity smartcontracts go-ethereum

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

然而,在1-2-3天(随机)后,我无法检索通过我的GET apis添加的数据,而我仍然能够添加新数据,确认Geth正常运行并且没有中断.

我正在运行geth使用:

geth --datadir ./myDataDir --rpc --networkid 1441 console 2>> myEth.log
Run Code Online (Sandbox Code Playgroud)

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

eth.syncing显示false哪个网络已同步.

myDataDir文件夹的大小仍然在增加,所以逻辑上数据应该在某处,但它没有显示.

Afr*_*Afr 1

这不是私有区块链!

--networkid 1441
Run Code Online (Sandbox Code Playgroud)

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

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

 --nodiscovery
Run Code Online (Sandbox Code Playgroud)

或者只使用--dev预设。