Ошибка seth-rpc "Псевдоним не найден в каталоге ключей", даже если псевдоним создан в seth-cli-go

Я пытаюсь разблокировать мой созданный псевдоним (созданный с помощью seth-cli-go) в контейнере seth-rpc. Я использую следующую команду в seth-rpc:

docker exec -it seth-rpc bash
seth-rpc --connect tcp://validator:4004 --bind 0.0.0.0:3030 --unlock myalias

При выполнении вышеупомянутой команды я получаю следующую ошибку: "Псевдоним не найден в каталоге ключей"

Создание учетной записи в seth-cli-go:

docker exec -it seth-cli-go bash
openssl ecparam -genkey -name secp256k1 | openssl ec -out key-file.pem -aes128
seth account import key-file.pem myalias
seth account create --nonce=0 --wait myalias
Account created
Transaction Receipt:  {
  "TransactionID": "bfc03a624baf4ac0f7c983057ae8ce7306190f47029f891e92f8b268b6009b9a3982d0c56dc9ebc45f40d9dc058bb36c76e816398f1046ac95ce48b9bc546aab",
  "Address": "29b71fd0c3100d9595cd9daefa9850e16feb2831"
}

Может кто-то указать, что я делаю не так?

1 ответ

Я нашел решение этой проблемы. В файле docker-compose.yaml добавьте "- sawtooth:/root/.sawtooth" в разделе "volume" seth-cli-go. Это гарантирует, что псевдонимы, созданные в контейнере-установщике seth-cli-go, также видны для контейнера seth-rpc. С этим мы можем разблокировать псевдоним из seth-rpc. Но после разблокировки, если я пытаюсь отправить транзакцию с использованием "eth_sendTransaction", отображается внутренняя ошибка: "Аккаунт с адресом не найден".

$ seth-rpc --unlock myalias --connect tcp://validator:4004 --bind 0.0.0.0:3030
02c0b4c855d0e54a7f6dc5635e2aab0714387ba88b678fe2cc264ce0917fab83b6 unlocked: 373ec8d9b7d1814aa4d081ab4241bf618d73f384

$ curl -d '{"jsonrpc": "2.0", "method": "eth_sendTransaction", "id": 2, "params": [{"from": "0x373ec8d9b7d1814aa4d081ab4241bf618d73f384", "data": "0x608060405234801561001057600080fd5b50610271806100206000396000f3fe608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631ab06ee514610067578063812600df146100ac5780639507d39a146100e7578063c20efb9014610136575b600080fd5b34801561007357600080fd5b506100aa6004803603604081101561008a57600080fd5b810190808035906020019092919080359060200190929190505050610171565b005b3480156100b857600080fd5b506100e5600480360360208110156100cf57600080fd5b81019080803590602001909291905050506101cb565b005b3480156100f357600080fd5b506101206004803603602081101561010a57600080fd5b81019080803590602001909291905050506101fa565b6040518082815260200191505060405180910390f35b34801561014257600080fd5b5061016f6004803603602081101561015957600080fd5b8101908080359060200190929190505050610216565b005b80600080848152602001908152602001600020819055507f545b620a3000f6303b158b321f06b4e95e28a27d70aecac8c6bdac4f48a9f6b38282604051808381526020018281526020019250505060405180910390a15050565b600160008083815260200190815260200160002054016000808381526020019081526020016000208190555050565b6000806000838152602001908152602001600020549050919050565b60016000808381526020019081526020016000205403600080838152602001908152602001600020819055505056fea165627a7a723058203b4d5a111ec2d08b1e7c24d98b5021878a6bb192cc2c5a309663b6bf9db18a2d0029"}]}' -H "Content-Type: application/json" localhost:3030
{"jsonrpc":"2.0","error":{"code":-32603,"message":"Internal error"},"id":2}

Другое дело, что сообщение об ошибке не регистрируется в терминале, где я связываю валидатор (порт 4004) с seth-rpc(порт 3030). Но ошибка регистрируется в терминале валидатора sawtooth. Есть идеи, почему это происходит?

Это было исправлено в исходном коде Sawtooth Seth с PR # 49 https://github.com/hyperledger/sawtooth-seth/pull/49/files Integrated 2018-07-10. Поэтому последние версии Сета не должны иметь этой проблемы.

Другие вопросы по тегам