Checksum 为什么本地RSK节点显示“0”;无效地址“;对于我的智能合约,即使我可以在块资源管理器中看到它?

Checksum 为什么本地RSK节点显示“0”;无效地址“;对于我的智能合约,即使我可以在块资源管理器中看到它?,checksum,rsk,Checksum,Rsk,我用下面的命令运行RSKj, 要连接到RSK Testnet: java-cp rskj-core-2.2.0-PAPYRUS-all.jar-Drpc.providers.web.cors=*co.rsk.Start--testnet 但是,当我查询地址时, 我得到以下错误: 无效地址 校验和对当前网络无效:RSK Testnet(31) (该地址是一个智能合约,不管它值多少钱) 我已验证RSK块资源管理器中是否存在此地址。 那么是什么导致了这种情况呢?如果您连接到RSK测试网本地运行的R

我用下面的命令运行RSKj, 要连接到RSK Testnet:

java-cp rskj-core-2.2.0-PAPYRUS-all.jar-Drpc.providers.web.cors=*co.rsk.Start--testnet
但是,当我查询地址时, 我得到以下错误:

无效地址
校验和对当前网络无效:RSK Testnet(31)
(该地址是一个智能合约,不管它值多少钱) 我已验证RSK块资源管理器中是否存在此地址。
那么是什么导致了这种情况呢?

如果您连接到RSK测试网本地运行的RSKj,并且地址不存在; 但是相同的地址确实存在于RSK公共节点上; 然后,您应该检查本地节点是否完全同步。 为此:

(1) 找出公共节点上的块编号:

curl\
-X柱\
-H“内容类型:应用程序/json”\
--数据“{“jsonrpc”:“2.0”,“方法”:“eth_blockNumber”,“参数”:[],“id”:1}”\
https://public-node.testnet.rsk.co/
这将产生一个大值
0x1bfe36
,即
1834550

{“jsonrpc”:“2.0”,“id”:1,“result”:“0x1bfe36”}
(2) 找出本地节点上的块编号:

curl\
-X柱\
-H“内容类型:应用程序/json”\
--数据“{“jsonrpc”:“2.0”,“方法”:“eth_blockNumber”,“参数”:[],“id”:1}”\
http://localhost:4444/
如果您对当地的RSKj有了新的开始, 而且运行时间不长, 你可能会在结果中得到一个小数字, 例如
0x3fff
,即
16383

{“jsonrpc”:“2.0”,“id”:1,“result”:“0x3fff”}
(3) 比较这两个值 如果这些命令在彼此短时间内运行, 它们应该具有相同的值, 这意味着您的本地节点是完全同步的。 然而,正如上面的例子所示, 本地节点的块编号的值小于公共节点。 这意味着它尚未完全同步。 如果在此特定地址部署了智能合约 在这个数字之后, 您将得到上述错误, 因为那个地址什么都不存在。 解决方案是等待本地节点启动 与网络的其余部分(包括公共节点)完全同步; 在再次运行查询之前