我在docker上安装了ST 1.1.2,但结果不一致。有时可以很好地生成创世纪图块,我可以提交新的批次/图块。另一方面,有时由于“失败的”共识数据,devmode处理器不处理创世块。
我在多个具有相同随机行为的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共识过程在初次尝试时始终接受创世块,我需要做什么?
答案 0 :(得分: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 genesis
,sawadm genesis
,sawtooth-validator
)?