我已经完成了iroha的配置并启动了iroha守护程序。我使用以下命令创建了一个新帐户,
iroha-cli --new_account --account_name user1@test
我能够与iroha-cli进行交互,但是即使我无法获取帐户信息,也无法创建任何交易或查询。
Choose what to do:
1. New transaction (tx)
2. New query (qry)
3. New transaction status request (st)
> : 2
Choose query:
1. Get all permissions related to role (get_role_perm)
2. Get Transactions by transactions' hashes (get_tx)
3. Get information about asset (get_ast_info)
4. Get Account's Transactions (get_acc_tx)
5. Get Account's Asset Transactions (get_acc_ast_tx)
6. Get all current roles in the system (get_roles)
7. Get Account's Signatories (get_acc_sign)
8. Get Account's Assets (get_acc_ast)
9. Get Account Information (get_acc)
0. Back (b)
> : 9
Requested account Id: user1@test
Query is formed. Choose what to do:
1. Send to Iroha peer (send)
2. Save as json file (save)
0. Back (b)
> : 1
Peer address (0.0.0.0):
Peer port (50051):
[2019-02-04 09:00:34.748141999][th:185][error] QueryResponseHandler Query is stateful invalid
--------------------
我在创世块中添加了帐户公共ID,然后重新启动了守护程序,但仍然出现相同的错误,请任何人向我建议正确的方法,
答案 0 :(得分:1)
我找到了解决方法...
重新启动iroha守护程序时,出现以下警告。
[2019-02-21 04:54:25.009069450][th:108][warning] MAIN Passed genesis block will be ignored without --overwrite_ledger flag. Restoring existing state.
这意味着如果您编辑了创世块,则必须在启动守护程序时启用--overwrite_ledger标志,否则它将忽略当前创世块并从上一个创世块中读取数据。
以下是添加新帐户的另一种方法
iroha-cli --new_account --account_name user1 @ test
现在,您的新帐户已添加,您可以使用该帐户执行交易。
您可以采用第一种方法,也可以采用第二种方法,但是第二种方法是添加新帐户的更好解决方案,因为不需要覆盖分类帐。
希望对其他人有帮助。.
答案 1 :(得分:0)
请确保您在创世块中正确使用了公钥(它必须是十六进制密钥)。有状态错误通常是由于关键问题而发生的。
如果一切正常,可以请您分享创始区块和公钥吗?
答案 2 :(得分:0)
@sara感谢您的回复, 我验证了创世块中的公钥,它是正确的。
以下是我的创始密码
library(stringi)
stri_extract_last_regex(tt$V1, "(?<=\\().*?(?=\\))")
#[1] "2013" "2016" "1975" "1990"