1
  • Private blockchain
  • PoA validation algorithm

Using geth attach MY-GETH-CLIENT, I want to check the sealer of a block as well as its reward.


Using eth.getBlock(BLOCK-NUMBER), the miner field is sometimes equal to 0x00...0:

    > eth.getBlock('216567')
    {
      difficulty: 2,
      extraData: "0xd883010907846765746888676f312e31332e34856c696e757800000000000000a5d63126675c1b8f9811e995dd8cb5276486a64b06ad590a542c74aea142b68a64abc2f5bbd1ba3b10adfa8200ce678961b22c724f4eca81ba1bb770942c7d6e01",
      gasLimit: 8000000,
      gasUsed: 0,
      hash: "0xed19228537c738101308a08811c4232ca72176efa55a498f7286ef915be854f0",
      logsBloom: "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",      
      miner: "0x9a9ee44782accc4b5e893c0e7d16473ce19b79d6",
      mixHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
      nonce: "0xffffffffffffffff",
      number: 216567,
      parentHash: "0x1f80f98bfa571053745d99146f2665a2a69004e8134cc750ba94b17bd2fd5639",
      receiptsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
      sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
      size: 609,
      stateRoot: "0xe2236887f5f873fd7e4a12ba8e6bbf10ab6b2c70adcba3488bb6e9c9e89b1151",
      timestamp: 1577436727,
      totalDifficulty: 433020,
      transactions: [],
      transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
      uncles: []
    }
    > eth.getBlock('216568')
    {
     properties,   
      miner: "0x0000000000000000000000000000000000000000",
Some more properties
    }

Checking the balance of the address 0x9a9ee44782accc4b5e893c0e7d16473ce19b79d6 returns 0:

> eth.getBalance('0x9a9ee44782accc4b5e893c0e7d16473ce19b79d6')
0

I've read here that the sealer address should be in the extra data, but which part is it in the following extradata (from block 216567 above) ?

extraData: "0xd883010907846765746888676f312e31332e34856c696e757800000000000000a5d63126675c1b8f9811e995dd8cb5276486a64b06ad590a542c74aea142b68a64abc2f5bbd1ba3b10adfa8200ce678961b22c724f4eca81ba1bb770942c7d6e01",

How can I get, in PoA, the sealer of a block and how can I know the block reward ?

PS: I have access to the following modules in geth: admin:1.0 clique:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

| improve this question | | | | |
1

PoA networks do not natively have rewards baked into the consensus. There are instances where these are created with smart contracts that make system calls (see Energy Web Chain and POS_DAO) , but if you run clique natively there will be no block rewards.

References:

| improve this answer | | | | |
  • Finally an explicit answer about this. Thanks. Then the quantity of ether in the network is finite, right ? The network is condemned to no longer be functional after an amount of time (can be very very long, but still at the very end ...) – Florian Castelain Dec 28 '19 at 10:08
  • For clique? Or with the reward model? The security model is not premised on block incentives so they aren’t native. The block chain can continue to function for as long as you need it too. Incentives are not built into the consensus layer and if you need to add them, they have to be done at the application /smart contract level. Hope it makes sense – Samuel Dare Dec 28 '19 at 10:11
  • I'll come back when I've read the sources you gave me ;) – Florian Castelain Dec 28 '19 at 10:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.