Skip to content
This repository has been archived by the owner on Nov 6, 2020. It is now read-only.

Tendermint: no blocks generated #8157

Closed
bgrieder opened this issue Mar 19, 2018 · 6 comments
Closed

Tendermint: no blocks generated #8157

bgrieder opened this issue Mar 19, 2018 · 6 comments
Labels
F2-bug 🐞 The client fails to follow expected behavior. M4-core ⛓ Core client code / Rust. P5-sometimesoon 🌲 Issue is worth doing soon.
Milestone

Comments

@bgrieder
Copy link

bgrieder commented Mar 19, 2018

I'm running:

  • Which Parity version?: v1.9.4-beta-6f21a32-20180228/x86_64-macos/rustc1.24.0
  • Which operating system?: MacOS
  • How installed?: via installer binaries
  • Are you fully synchronized?: yes
  • Which network are you connected to?: custom
  • Did you try to restart the node?: yes

This setup of 3 validator nodes work fine with Authority Round (blocks are generated) but does not work with Tendermint (validators see each other but no blocks are generated). The general guidelines of https://wiki.parity.io/Demo-PoA-tutorial.html have been followed.

From the working set-up for Aura, the engine entry of genesis.json was replaced:

Original (Aura)

"engine": {
    "authorityRound": {
        "params": {
            "stepDuration": "3",
            "validators": {
                "list": [
                    "0x527c6d143a090e9c1c18ae31bb05c717ca94e915",
                    "0x0072873e3b02747171e033470f94f5b8fd1ed053",
                    "0x005c381e1971b7eff421f2b8553fc542ad78097f"
                ]
            }
        }
    }
},
"genesis": {
    "seal": {
        "authorityRound": {
            "step": "0x0",
            "signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
        }
    },
    "difficulty": "0x20000",
    "gasLimit": "0x5B8D80"
},

Tendermint

    "engine": {
        "tendermint": {
            "params": {
                "validators": {
                    "list": [
                        "0x527c6d143a090e9c1c18ae31bb05c717ca94e915",
                        "0x0072873e3b02747171e033470f94f5b8fd1ed053",
                        "0x005c381e1971b7eff421f2b8553fc542ad78097f"
                    ]
                }
            }
        }
    },
    "genesis": {
        "seal": {
            "tendermint": {
                "round": "0x0",
                "proposal": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "precommits": [
                    "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
                ]
            }
        },
        "difficulty": "0x20000",
        "gasLimit": "0x5B8D80"
    },
@rphmeier rphmeier added F2-bug 🐞 The client fails to follow expected behavior. M4-core ⛓ Core client code / Rust. labels Mar 20, 2018
@5chdn 5chdn added this to the 1.11 milestone Mar 28, 2018
@5chdn 5chdn added the P5-sometimesoon 🌲 Issue is worth doing soon. label Mar 28, 2018
@ordian ordian self-assigned this Apr 5, 2018
@ordian
Copy link
Collaborator

ordian commented Apr 5, 2018

I was able to reproduce the issue here with the panic at the end:

Thread 'IO Worker #1' panicked at 'Invalid header.: RlpIsTooShort'

Trying to dig deeper.

@roynalnaruto
Copy link

@bgrieder Hi, I am trying to do a similar setup (using docker containers ref). Even for me, the blocks are not being mined. Have you found the reason? My tendermint-config file looks like :

{
  "name": "parity-tendermint",
  "engine": {
    "tendermint": {
      "params": {
        "validators": {
          "list": [
            "0x00Bd138aBD70e2F00903268F3Db08f2D25677C9e",
            "0x00Aa39d30F0D20FF03a22cCfc30B7EfbFca597C2",
            "0x002e28950558fbede1a9675cb113f0bd20912019",
	    "0x48f76dac1eb79528ec927ce7d429aef512a21a7c"
          ]
        }
      }
    }
  },
  "params": {
    "maximumExtraDataSize": "0x20",
    "minGasLimit": "0x1388",
    "networkID": "0x2323",
    "gasLimitBoundDivisor": "0x400"
  },
  "genesis": {
    "seal": {
      "tendermint": {
        "round": "0x0",
        "proposal": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
	"precommits": [
	  "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
	]
      }
    },
    "difficulty": "0x20000",
    "gasLimit": "0x2fefd8"
  },
  "accounts": {
    ...
  }
}

I am getting this log in the still running authority/validator:

2018-04-20 03:27:00 UTC    6/25 peers      8 KiB chain   15 KiB db  0 bytes queue   10 KiB sync  RPC:  0 conn,  0 req/s,   0 µs
2018-04-20 03:27:30 UTC    6/25 peers      8 KiB chain   15 KiB db  0 bytes queue   10 KiB sync  RPC:  0 conn,  0 req/s,   0 µs
2018-04-20 03:27:42 UTC Stage 4 block verification failed for #1 (a672…fbea)
Error: Engine(NotAuthorized(66ae460c87cca597b3b8fee210b07cad7b9a448d))

Also, one container failed and stopped due to this error:

====================

stack backtrace:
   0:     0x55c747d8bb1c - <no info>
   1:     0x55c747d8b1c2 - <no info>
   2:     0x55c747286725 - <no info>

Thread 'IO Worker #1' panicked at 'Invalid header.: RlpIsTooShort', /checkout/src/libcore/result.rs:916

What is wrong?

@ordian
Copy link
Collaborator

ordian commented Apr 20, 2018

@roynalnaruto the panic was fixed in #8367 (not yet in stable), however the parity's tendermint engine is still not ready for production use.

The error you're getting (Engine(NotAuthorized(...))) is different though, make sure you have engine_signer in your node config (see demo poa tutorial).

@roynalnaruto
Copy link

roynalnaruto commented Apr 23, 2018

@ordian I had used --engine-signer while launching the docker container. What is the id in the brackets of the above error 66ae460c87cca597b3b8fee210b07cad7b9a448d? Because, that is not the public address of any of the 4 validators that I am using. Below is the docker-compose.yml I am using:

version: '2.1'
services:
  authority0:
    image: parity/parity:${PARITY_VERSION}
    command:
      --config /parity/config/authority.toml
      --engine-signer 0x00bd138abd70e2f00903268f3db08f2d25677c9e
    volumes:
      - ./parity/config:/parity/config:ro
      - authority0:/root/.local/share/io.parity.ethereum/
      - ./parity/authorities/authority0.json:/root/.local/share/io.parity.ethereum/keys/${NETWORK_NAME}/authority.json:ro
      - ./parity/keys:/root/.local/share/io.parity.ethereum/keys/${NETWORK_NAME}
      - ./parity/authorities/authority0.pwd:/parity/authority.pwd:ro
      - ./parity/node0.network.key:/root/.local/share/io.parity.ethereum/network/key:ro
    ports:
      - 8545:8545
    networks:
      app_net:
        ipv4_address: 172.16.0.10


  authority1:
    image: parity/parity:${PARITY_VERSION}
    command:
      --config /parity/config/authority.toml
      --engine-signer 0x00aa39d30f0d20ff03a22ccfc30b7efbfca597c2
    volumes:
      - ./parity/config:/parity/config:ro
      - authority1:/root/.local/share/io.parity.ethereum/
      - ./parity/authorities/authority1.json:/root/.local/share/io.parity.ethereum/keys/${NETWORK_NAME}/authority.json:ro
      - ./parity/authorities/authority1.pwd:/parity/authority.pwd:ro
      - ./parity/node1.network.key:/root/.local/share/io.parity.ethereum/network/key:ro
    networks:
      app_net:
        ipv4_address: 172.16.0.11

...

volumes:
  authority0:
  authority1:
networks:
  app_net:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 172.16.0.1/24
        gateway: 172.16.0.1

I have mentioned only 2 of the authorities, rest of the yaml file follows the same pattern

And this is the authority.toml

[parity]
chain = "/parity/config/tendermintchain.json"

[rpc]
interface = "0.0.0.0"
cors = ["all"]
hosts = ["all"]
apis = ["web3", "eth", "net", "parity", "traces", "rpc", "personal", "parity_accounts", "signer", "parity_set"]

[network]
bootnodes = [
  "enode://147573f46fe9f5cc38fbe070089a31390baec5dd2827c8f2ef168833e4d0254fbee3969a02c5b9910ea5d5b23d86a6ed5eabcda17cc12007b7d9178b6c697aa5@172.16.0.10:30303",
  "enode://1412ee9b9e23700e4a67a8fe3d8d02e10376b6e1cb748eaaf8aa60d4652b27872a8e1ad65bb31046438a5d3c1b71b00ec3ce0b4b42ac71464b28026a3d0b53af@172.16.0.11:30303",
  "enode://9076c143a487aa163437a86f7d009f257f405c50bb2316800b9c9cc40e5a38fef5b414a47636ec38fdabc8a1872b563effa8574a7f8f85dc6bde465c368f1bf5@172.16.0.12:30303",
  "enode://4954ebbfa5ca9d105943b122caa1c6f6a73fbd193572601c2101ae0fcfabe6548f7f81ecb0c24c7de3d211a7a29c7b73721d523142b47df038e9dd2e1de8006c@172.16.0.13:30303"
]

[account]
password = ["/parity/authority.pwd"]

[mining]
reseal_on_txs = "none"

Is there something else wrong?

@5chdn 5chdn modified the milestones: 1.11, 1.12 Apr 24, 2018
@stevenroose
Copy link

I bumped into this. Anyone solved it??

@folsen
Copy link
Contributor

folsen commented May 21, 2018

Closing this in favor of #8664

@folsen folsen closed this as completed May 21, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
F2-bug 🐞 The client fails to follow expected behavior. M4-core ⛓ Core client code / Rust. P5-sometimesoon 🌲 Issue is worth doing soon.
Projects
None yet
Development

No branches or pull requests

7 participants