Клика: Файл Бытия

Каковы обязательные параметры genesis.jsonфайла в PoA? и каковы их ожидаемые значения? напр. ценности

byzantiumBlock epi155Block DAOForkBlock EIP150Block EIP158Block epoch nonce mixhash

Когда я попытался изменить значение nonceи mixhashзатем запустил узел, он не запустился.

Ответы (1)

Используйте что-то вроде этого:

{
    "config": {
        "chainId": <yourChainId>,
        "homesteadBlock": 0,
        "eip150Block": 0,
        "eip155Block": 0,
        "eip158Block": 0,
        "byzantiumBlock": 0,
        "clique": {
            "period": <yourPeriodInSecs>,
            "epoch": <yourEpochInBlocks>
        }
    },
    "alloc": {
        "0000000000000000000000000000000000000001": { "balance": "1" },
        "0000000000000000000000000000000000000002": { "balance": "1" },
        "0000000000000000000000000000000000000003": { "balance": "1" },
        "0000000000000000000000000000000000000004": { "balance": "1" },
        "0000000000000000000000000000000000000005": { "balance": "1" },
        "0000000000000000000000000000000000000006": { "balance": "1" },
        "0000000000000000000000000000000000000007": { "balance": "1" },
        "0000000000000000000000000000000000000008": { "balance": "1" },
        "<yourPreallocAccount>": { "balance": "<yourPreallocAmount>" }
    },
    "coinbase": "0x0000000000000000000000000000000000000000",
    "difficulty": "1",
    "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000<yourInitialSigners>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "gasLimit": "<yourInitialGasLimit>",
    "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "nonce": "0",
    "timestamp": "<yourUnixTimeStamp>"
}
  • yourChainId: Просто используйте номер.
  • yourPeriodInSecs: Время блокировки в секундах. 5 или 10 — хорошие значения для начала.
  • yourEpochInBlocks: 30000 по умолчанию обычно достаточно.
  • yourPreallocAccount, yourPreallocAmount: Поскольку при майнинге монеты не создаются, все, что у вас есть, — это заранее выделенные суммы. Дайте счету несколько монет здесь. (Без префикса «0x».)
  • yourInitialSigners: вам нужен хотя бы один первоначальный подписывающий. Добавьте адрес своей учетной записи здесь.
  • yourInitialGasLimit: начальный лимит газа на блок. Зависит от того, что вы хотите сделать. (Для примера рассмотрим 21000 газа/перевод.)
  • yourUnixTimeStamp: количество секунд, прошедших с эпохи Unix (1970-01-01).

Ноты:

  • Другие элементы configне являются обязательными; то, как они установлены здесь, дает вам блокчейн, который работает как текущий Ethereum (за исключением Clique). Они контролируют поведение блокчейна. Вы узнаете больше о том, что они означают, выполнив поиск.
  • Другие учетные записи alloc— это предопределенные контракты, которые инициализируются этим. Не обязательно, но рекомендуется.
  • Насколько я знаю, все остальные элементы блока генезиса должны быть такими, как здесь.
А как насчет nonceи mixHashценности? Если я пытаюсь изменить их, я всегда получаю сообщение об ошибке: `ОШИБКА [06-22|03:34:21] Не удалось подготовить заголовок для майнинга err="голосовать одноразовый номер не 0x00..0 или 0xff..f" `
Я не помню, о чем mixHashидет речь, но это nonceзначение используется для голосования властей и всегда должно быть одним из двух значений, как говорится в сообщении об ошибке. В блоке генезиса имеет смысл только 0.