I set up a private clique POA chain with 3 nodes, all of them are sealers.

I launch two nodes only, the blocks can be signed by the two nodes.

when I call clique.getSignersAtHash('block hash value'), the result also include the third signer, It's rather strange because the third node is not working.

How can I get correct signer address of each block? Thanks.

1 Answer 1


The function getSignersAtHash returns the list of authorized signers at that block.

Each block is signed by a single validator.

To obtain the signer for a block you can use the clique.getSnapshot

For block 256 you have to call clique.getSnapshot("0x100"), it only allows to pass the block number as hexadecimal string

> clique.getSnapshot("0x100")
  hash: "0xa70e4b860bd835ab69072776771641f906115bedb21cea7f58a22f3780156fc7",
  number: 256,
  recents: {
    255: "0x39438f6bc519c6f8f48339330cda8d4a85daf0e7",
    256: "0x7d7efa1f0d3bdb33e33b425cd5c9e421f323a644"
  signers: {
    0x39438f6bc519c6f8f48339330cda8d4a85daf0e7: {},
    0x7d7efa1f0d3bdb33e33b425cd5c9e421f323a644: {},
    0x8c9d613d8877c58125ef57f885c7dc3cbc82b8a1: {}
  tally: {},
  votes: []

In recent you have the signer of each block.

  • Got it.I checked the JSON RPC website(github.com/ethereum/wiki/wiki/JSON-RPC), there is no information about clique api description.So where can I find the description about cliuqe sub-function?Thanks for your help.
    – user53451
    Jun 9, 2019 at 7:35
  • By the way, I found the latest geth version built from source code supports v6 leveldb database,while the latest version binary version supports v3 version, so what's the solution to update geth version in term of database version. I can not found related discussion about it.thanks.
    – user53451
    Jun 9, 2019 at 8:06
  • I found no documentation of clique beyond source code or comments on github. For other doubts it is better to create a new question.
    – Ismael
    Jun 9, 2019 at 14:54
  • I have created the question before,the link is ethereum.stackexchange.com/questions/71172/….
    – user53451
    Jun 11, 2019 at 2:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.