0

I tried to generate genesis block (POA), and genesis.json don't contain these strings

{
    "sealEngine": "BasicAuthority",
    "options": {
        "authorities": [
            "0xfa0c706a1410c8785baa7498325cf7461b325583",
            "0x7766d151b2c63cb096f624daa091ccb27a2c693f"
        ]
    },

What i did wrong?

What would you like to do? (default = stats)
 1. Show network stats
 2. Configure new genesis
 3. Track new remote server
 4. Deploy network components
> 2

Which consensus engine to use? (default = clique)
 1. Ethash - proof-of-work
 2. Clique - proof-of-authority
> 2

How many seconds should blocks take? (default = 15)
> 2

Which accounts are allowed to seal? (mandatory at least one)
> 0x38e12f4d9713c4c4a86cafba370b43f46e3b4885
> 0x

Which accounts should be pre-funded? (advisable at least one)
> 0xcb367d317496d36b9f3a673b3ba006f4110d57ec
> 0x


Specify your chain/network ID if you want an explicit one (default = random)
> 123

Anything fun to embed into the genesis block? (max 32 bytes)
> TEST

What would you like to do? (default = stats)
 1. Show network stats
 2. Save existing genesis
 3. Track new remote server
 4. Deploy network components
> 2

And genesis.json is:

  "config": {
    "chainId": 123,
    "homesteadBlock": 1,
    "eip150Block": 2,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 3,
    "eip158Block": 3,
    "clique": {
      "period": 2,
      "epoch": 30000
    }
  },
  "nonce": "0x0",
  "timestamp": "0x59e8ce29",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "0x544553540000000000000000000000000000000000000000000000000000000038e12f4d9713c4c4a86cafba370b43f46e3b48850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x47b760",
  "difficulty": "0x1",
  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": {
    "0000000000000000000000000000000000000000": {
      "balance": "0x1"
    },
    "0000000000000000000000000000000000000001": {
      "balance": "0x1"
    },
    "0000000000000000000000000000000000000002": {
      "balance": "0x1"
    },

Why puppeth put some unknown addresses in genesis file..

  • you don't need the sealEngine to be in the genesis... also you should prefund the sealer node. – OWADVL Oct 26 '18 at 9:59
0

You mention sealEngine:BasicAuthority which is coming from here. But this wikipage is neither up-to date nor for Geth (which is what Puppeth use in the background) therefore the PoA consensus algorithm used is not the same.

Geth use "Clique" which repurpose some section like extraData to list authorities, see here.

Concerning the unknown addresses starting from 1, they are built-in contracts (ecrecover,sha256,ripemd160...) you can find more on that here.

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.