我正在尝试在这里学习“运行节点”教程:https://github.com/cosmos/cosmos-sdk/blob/master/docs/run-node/run-node.md
我似乎遇到了一些问题,因为genesis事务无法设置验证器,所以验证器设置为空,应用程序停止。我是不是遗漏了什么?
我正在运行script.sh,并在error.log中收到错误消息
simd version:goz-phase-1-1119-g8572a84eb
script.sh
#!/bin/bash
set -eu
PATH=build:$PATH
MONIKER=foobar
simd init $MONIKER --chain-id my-test-chain
simd keys add my_validator --keyring-backend test
# Put the generated address in a variable for later use.
MY_VALIDATOR_ADDRESS=$(simd keys show my_validator -a --keyring-backend test)
simd add-genesis-account $MY_VALIDATOR_ADDRESS 100000000stake
# Create a gentx.
simd gentx my_validator 100000stake --chain-id my-test-chain --keyring-backend test
# Add the gentx to the genesis file.
simd collect-gentxs
simd starterror.log
5:09PM INF starting ABCI with Tendermint
5:09PM INF Starting multiAppConn service impl={"Logger":{}} module=proxy
5:09PM INF Starting localClient service connection=query impl="marshaling error: json: unsupported type: abcicli.Callback" module=abci-client
5:09PM INF Starting localClient service connection=snapshot impl="marshaling error: json: unsupported type: abcicli.Callback" module=abci-client
5:09PM INF Starting localClient service connection=mempool impl="marshaling error: json: unsupported type: abcicli.Callback" module=abci-client
5:09PM INF Starting localClient service connection=consensus impl="marshaling error: json: unsupported type: abcicli.Callback" module=abci-client
5:09PM INF Starting EventBus service impl={"Logger":{}} module=events
5:09PM INF Starting PubSub service impl={"Logger":{}} module=pubsub
5:09PM INF Starting IndexerService service impl={"Logger":{}} module=txindex
5:09PM INF ABCI Handshake App Info hash= height=0 module=consensus protocol-version=0 software-version=
5:09PM INF ABCI Replay Blocks appHeight=0 module=consensus stateHeight=0 storeHeight=0
5:09PM INF asserting crisis invariants inv=0/11 module=x/crisis
5:09PM INF asserting crisis invariants inv=1/11 module=x/crisis
5:09PM INF asserting crisis invariants inv=2/11 module=x/crisis
5:09PM INF asserting crisis invariants inv=3/11 module=x/crisis
5:09PM INF asserting crisis invariants inv=4/11 module=x/crisis
5:09PM INF asserting crisis invariants inv=5/11 module=x/crisis
5:09PM INF asserting crisis invariants inv=6/11 module=x/crisis
5:09PM INF asserting crisis invariants inv=7/11 module=x/crisis
5:09PM INF asserting crisis invariants inv=8/11 module=x/crisis
5:09PM INF asserting crisis invariants inv=9/11 module=x/crisis
5:09PM INF asserting crisis invariants inv=10/11 module=x/crisis
5:09PM INF asserted all invariants duration=0.844065 height=0 module=x/crisis
5:09PM INF created new capability module=ibc name=ports/transfer
5:09PM INF port binded module=x/ibc/port port=transfer
5:09PM INF claimed capability capability=1 module=transfer name=ports/transfer
Error: error during handshake: error on replay: validator set is nil in genesis and still empty after InitChain
Usage:
simd start [flags]
Flags:
--abci string specify abci transport (socket | grpc) (default "socket")
... [other usage info]发布于 2021-01-27 19:31:23
我自己尝试了一下,发现了同样的错误,但通过增加100000000stake的simd gentx命令中的风险值,可以修复这个错误。它现在的工作方式如下:
#!/bin/bash
set -eu
PATH=build:$PATH
MONIKER=foobar
simd init $MONIKER --chain-id my-test-chain
simd keys add my_validator --keyring-backend test
# Put the generated address in a variable for later use.
MY_VALIDATOR_ADDRESS=$(simd keys show my_validator -a --keyring-backend test)
simd add-genesis-account $MY_VALIDATOR_ADDRESS 100000000stake
# Create a gentx.
simd gentx my_validator 100000000stake --chain-id my-test-chain --keyring-backend test
# Add the gentx to the genesis file.
simd collect-gentxs
# simd start你从哪里得到script.sh文件的?我没有在https://github.com/cosmos/cosmos-sdk/blob/master/docs/run-node/run-node.md内部看到它
发布于 2021-01-27 23:01:45
来自okwme的答案是正确的。但是,如果你想使用更多的账户,初始余额(使用simd add-genesis-account设置)也应该增加。在本教程中,稍后该帐户会向另一个帐户发送一些stake。但在上面的脚本中,$MY_VALIDATOR_ADDRESS中的全部金额都是委托的,因此不能发送任何内容。
https://stackoverflow.com/questions/65904925
复制相似问题