Цепочка POA на транзакции паритетного майнинга даже при отсутствии консенсуса

Привет, я использую цепочку POA на паритетных началах с 3 валидаторами. Все 3 валидатора являются запечатывающими блоками, которые я проверил, получив детали блока. Теперь проблема в том, что, когда 2 валидатора выходят из строя, третий все еще продолжает запечатывать, чего не должно происходить в соответствии с алгоритмом Aura.

Ожидается - блоки не следует майнить из-за отсутствия консенсуса

Актуально - блоки все еще добываются

Тот же сценарий работает с geth (т.е. блоки не запечатываются).

PFB мои варианты cli

parity --no-discovery --mode=active --network-id=187 --chain=$home/genesis.json --base-path=$home/node_un --db-path=$home/node_un/db --ipc-path=$home/node_un/parity.ipc --ipc-apis=all --jsonrpc-apis=all --jsonrpc-port=8541 --ws-apis=all --ws-port=8551 --port=30301 --force-sealing=true --reseal-on-txs=all --jsonrpc-hosts=all --jsonrpc-interface={ip_addr} --ws-interface=all --ws-hosts=all --ws-origins=all --ws-max-connections=10000 --engine-signer={signer_address} --password={passwd_file} --gas-floor-target=100000000 --gas-cap=100000000 --tx-queue-mem-limit=1024 --tx-queue-size=20480000 --tx-queue-per-sender=100000 --reseal-max-period=2000 --reserved-peers {enode_txt} --reserved-only

PFB мой файл генезиса

{
"name": "187",
"engine": {
    "authorityRound": {
        "params": {
            "stepDuration": "2",
            "validators" : {
                "multi": {
                "0": {
                "list": [
                    "addr1",
        "addr2"
                ]
                },
            "136300": {
            "list": [
                      "addr1",
                      "addr2"
                ]
                },
             "136455": {
             "list": [
                      "addr1",
                      "addr2",
                      "addr3"
                      ]
             }
            }

            }
        }
    }
},
"params": {
    "gasLimitBoundDivisor": "0x400",
    "maximumExtraDataSize": "0x20",
    "minGasLimit": "0x1388",
    "networkID" : "0xBB",
    "eip155Transition": 0,
    "validateChainIdTransition": 0,
    "eip140Transition": 0,
    "eip211Transition": 0,
    "eip214Transition": 0,
    "eip658Transition": 0
},
"genesis": {
    "seal": {
        "authorityRound": {
            "step": "0x0",
            "signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
        }
    },
    "difficulty": "0x1",
    "gasLimit": "0x55D4A80"
},
"accounts": {
    "0x0000000000000000000000000000000000000001": { "balance": "1", "builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } } },
    "0x0000000000000000000000000000000000000002": { "balance": "1", "builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } } },
    "0x0000000000000000000000000000000000000003": { "balance": "1", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } },
    "0x0000000000000000000000000000000000000004": { "balance": "1", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } },
    "addr": { "balance": "800000000000000000000000000" }
}

}

Пожалуйста, дайте мне знать, где я ошибаюсь

Версия с четностью - v2.0.7


person user3422981    schedule 16.10.2018    source источник


Ответы (1)


(Одно из) Различие между движками Aura (Parity) и Clique (Geth) заключается в том, что Geth не позволяет одному органу власти запечатывать блоки, когда другие узлы не работают.

Однако Parity Aura позволяет предотвратить остановку цепочки. Итак, поведение вашей сети, которое вы испытываете, является ожидаемым.

person Afr    schedule 11.01.2019