IROHA новая учетная запись создана, но не может получить информацию об учетной записи администратора - PullRequest
0 голосов
/ 04 февраля 2019

Я выполнил настройку 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
    --------------------

Я добавил общедоступный идентификатор учетной записи в блок genesis и перезапустил демон, но все еще получаю ту же ошибку. Пожалуйста, кто-нибудь предложит мне правильный подход, спасибо заранее.

Ответы [ 3 ]

0 голосов
/ 12 февраля 2019

@ sara Спасибо за ваш ответ, я проверил открытый ключ в блоке генезиса, и он правильный.

Ниже приведен мой код блока генезиса

{
   "block_v1":{
     "payload":{
        "transactions":[
           {
              "payload":{
                 "reducedPayload":{
                    "commands":[
                       {
                          "addPeer":{
                             "peer":{
                                "address":"127.0.0.1:10001",
                                "peerKey":"bddd58404d1315e0eb27902c5d7c8eb0602c16238f005773df406bc191308929"
                             }
                          }
                       },
                       {
                          "createRole":{
                             "roleName":"admin",
                             "permissions":[
                                "can_add_peer",
                                "can_add_signatory",
                                "can_create_account",
                                "can_create_domain",
                                "can_get_all_acc_ast",
                                "can_get_all_acc_ast_txs",
                                "can_get_all_acc_detail",
                                "can_get_all_acc_txs",
                                "can_get_all_accounts",
                                "can_get_all_signatories",
                                "can_get_all_txs",
                                "can_get_blocks",
                                "can_get_roles",
                                "can_read_assets",
                                "can_remove_signatory",
                                "can_set_quorum"
                             ]
                          }
                       },
                       {
                          "createRole":{
                             "roleName":"user",
                             "permissions":[
                                "can_add_signatory",
                                "can_get_my_acc_ast",
                                "can_get_my_acc_ast_txs",
                                "can_get_my_acc_detail",
                                "can_get_my_acc_txs",
                                "can_get_my_account",
                                "can_get_my_signatories",
                                "can_get_my_txs",
                                "can_grant_can_add_my_signatory",
                                "can_grant_can_remove_my_signatory",
                                "can_grant_can_set_my_account_detail",
                                "can_grant_can_set_my_quorum",
                                "can_grant_can_transfer_my_assets",
                                "can_receive",
                                "can_remove_signatory",
                                "can_set_quorum",
                                "can_transfer"
                             ]
                          }
                       },
                       {
                          "createRole":{
                             "roleName":"money_creator",
                             "permissions":[
                                "can_add_asset_qty",
                                "can_create_asset",
                                "can_receive",
                                "can_transfer"
                             ]
                          }
                       },
                       {
                          "createDomain":{
                             "domainId":"test",
                             "defaultRole":"user"
                          }
                       },
                       {
                          "createAsset":{
                             "assetName":"coin",
                             "domainId":"test",
                             "precision":2
                          }
                       },
                       {
                          "createAccount":{
                             "accountName":"admin",
                             "domainId":"test",
                             "publicKey":"313a07e6384776ed95447710d15e59148473ccfc052a681317a72a69f2a49910"
                          }
                       },
                       {
                          "createAccount":{
                             "accountName":"test",
                             "domainId":"test",
                             "publicKey":"716fe505f69f18511a1b083915aa9ff73ef36e6688199f3959750db38b8f4bfc"
                          }
                       },
                       {
                          "createAccount":{
                             "accountName":"user1",
                             "domainId":"test",
                             "publicKey":"5a0ff31cebd82ebccb7952b5066c65748a72cfd31c05b95cd421b34eb747378c"
                          }
                       },
                       {
                          "appendRole":{
                             "accountId":"admin@test",
                             "roleName":"admin"
                          }
                       },
                       {
                          "appendRole":{
                             "accountId":"admin@test",
                             "roleName":"money_creator"
                          }
                       }
                    ],
                    "quorum":1
                 }
              }
           }
        ],
        "txNumber":1,
        "height":"1",
        "prevBlockHash":"0000000000000000000000000000000000000000000000000000000000000000"
     }
   }
}
0 голосов
/ 21 февраля 2019

У меня есть решение ...

при перезапуске демона 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.

, что означает, что если вы редактировали блок genesis, то вы должны включить --overwrite_ledger флаг во время запуска демона, иначе он проигнорирует текущий блок генеза и прочитает данные из предыдущего.

Ниже приведен другой подход для добавления новой учетной записи

  1. после создания новой учетной записи с помощью следующей команды она сгенерирует пару ключей

iroha-cli --new_account --account_name user1 @ test

войдите как учетная запись администратора в iroha-cli выберите Новая транзакция выберите Создать учетную запись Введите имя учетной записи, идентификатор домена и открытый ключ, созданные в первомstep

Теперь ваша новая учетная запись добавлена, и вы можете выполнять транзакции с этой учетной записью.

Вы можете следовать либо первому подходу, либо второму, но второй подход - лучшее решение длядобавьте новую учетную запись, потому что нет необходимости перезаписывать регистр.

Я надеюсь, что это поможет другим ..!

0 голосов
/ 11 февраля 2019

Пожалуйста, убедитесь, что вы правильно использовали открытый ключ в блоке genesis (это должен быть шестнадцатеричный ключ).Ошибка состояния обычно возникает из-за ключевых проблем.

Если все в порядке, не могли бы вы поделиться блоком генеза и открытым ключом?

...