我正在使用nodejs应用程序通过智能合约和松露将数据添加到以太坊(geth)本地环境中。如果由于某种原因或其他原因发生任何事情,而我需要停止geth并在以后恢复它,则无法获取数据。复制:
ps -aux | grep geth
sudo kill -9 ProcessID
geth --datadir ./myDataDir --rpc --targetgaslimit 18446744073709551615 --networkid 1441 console 2>> myEth.log
miner.start()
personal.unlockAccount(personal.listAccounts[0], "Password", 0)
pm2 restart myApp
当我尝试使用在停止geth之前添加的数据的GET API时,NodeJS应用程序上显示错误:
0|myApp | 21-06 12:19:44.271: You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection:
0|myApp | Error: Invalid address passed to BankFactory.at(): 0x
这显然是在分配地址时发生冲突,因为它没有读取BankFactory的正确地址。合同地址通常是在我执行truffle deploy
时生成的,然后将合同复制到我的应用程序的目录中,但是在这种情况下,它们仍在我的Node App中,因此似乎删除或更改了区块链上的合同!
该如何解决?