0

我用 docker 安装了 ST 1.1.2,但结果不一致。有时创世块生成得很好,我可以提交新的批次/块。另一方面,有时开发模式处理器由于“失败”的共识数据而不会处理创世块。

我在几个 AWS Ubuntu 16.04 实例上运行了这个,具有相同的随机行为。我还使用 Ubuntu 本地安装了 1.1.2,但遇到了同样的问题,只是始终如一。

sudo docker-compose -f sawtooth-default.yaml up
devmode_engine_rust: | Received message: BlockNew(Block(block_num: 0 ...*
devmode_engine_rust: | Checking consensus data: Block(block_num: 0 ...*
devmode_engine_rust: | Failed consensus check: Block(block_num: 0 ...*
devmode_engine_rust: | Failing block [86, ...*
sudo docker-compose -f sawtooth-defualt.yaml down
sudo docker-compose -f sawtooth-defualt.yaml up

我希望创世块每次都得到验证,而不是大约 50% 的时间发生,即使我没有改变我启动 docker 容器的方式。为了让 devmode 共识过程在第一次尝试时始终接受创世块,我需要做什么?

4

1 回答 1

0

这似乎是一个时间问题。共识容器中是否存在对验证器容器的依赖。例如,

devmode-engine:
    image: hyperledger/sawtooth-devmode-engine-rust:1.1
    ports:
      - '5050:5050'
    container_name: sawtooth-devmode-engine-rust-default
    depends_on:
      - validator
    entrypoint: devmode-engine-rust --connect tcp://validator:5050

(来自 https://github.com/danintel/sawtooth-cookiejar/blob/master/docker-compose.yaml

此外,验证器容器是否在启动前运行所有初始化命令(sawadm、、、、sawtooth keygen)?sawset genesissawadm genesissawtooth-validator

于 2019-01-23T20:51:59.287 回答