I'm running:
- Which Parity version?: 1.7.7
- Which operating system?: Linux
- How installed?: docker
- Are you fully synchronized?: yes
- Which network are you connected to?: private
- Did you try to restart the node?: yes
I'm trying to update my network to 1.10. To perform such a conversion I updated docker image one one machine and changed chains.json:

_I merely moved gasLimitBoundDivisor to the new location_
When I start the node it outputs following:
authority1_1 | Loading config file from /parity/config/authority.toml
authority1_1 | 2018-07-16 10:34:05 UTC Parity browser interface is deprecated. It's going to be removed in the next version, use standalone Parity UI instead.
authority1_1 | 2018-07-16 10:34:05 UTC Standalone Parity UI: https://github.com/Parity-JS/shell/releases
authority1_1 | 2018-07-16 10:34:05 UTC Starting Parity/v1.10.9-stable-23a9eef-20180707/x86_64-linux-gnu/rustc1.27.0
authority1_1 | 2018-07-16 10:34:05 UTC Keys path /root/.local/share/io.parity.ethereum/keys/MyApp
authority1_1 | 2018-07-16 10:34:05 UTC DB path /root/.local/share/io.parity.ethereum/chains/MyApp/db/8b02f6358e5c34ac
authority1_1 | 2018-07-16 10:34:05 UTC Path to dapps /root/.local/share/io.parity.ethereum/dapps
authority1_1 | 2018-07-16 10:34:05 UTC State DB configuration: fast
authority1_1 | 2018-07-16 10:34:05 UTC Operating mode: active
authority1_1 | 2018-07-16 10:34:06 UTC Configured for MyApp using AuthorityRound engine
And it fails to reconnect to the network.
I don't see any tutorials with step-by-step explanation of how to migrate existing network to new parity versions (they say that I have to migrate because older versions are unsupported so I can't stick with them) so they probably should be there. Any suggestions for how to fix it would be appreciated.
Why did you change the chains.json? The new docker should have the right one. Is there any other error that could help us understand what happened (launching with -l debug for instance)?
@Tbaut i have changed chains.json because some fields was moved from the original location as per https://github.com/paritytech/parity/pull/6134 . With original json I get
Spec json is invalid: missing field
gasLimitBoundDivisorat line 23 column 4`
Sorry, I don't get this part
The new docker should have the right one.
I'm running private network. I then wanted to move to the new parity version. I updated chain.json format (without changing any actual value in config) but it didn't work.
Got it, so in your first post should have the following not to be misleading:
Which network are you connected to?:
ethereumprivate
What were the outputs of the logs?
Got it, so in your first post should have the following not to be misleading:
It wasn't on the possible option list. It's probably worth adding it into issue template.
What were the outputs of the logs?
authority1_1 | Loading config file from /parity/config/authority.toml
authority1_1 | 2018-07-16 10:34:05 UTC Parity browser interface is deprecated. It's going to be removed in the next version, use standalone Parity UI instead.
authority1_1 | 2018-07-16 10:34:05 UTC Standalone Parity UI: https://github.com/Parity-JS/shell/releases
authority1_1 | 2018-07-16 10:34:05 UTC Starting Parity/v1.10.9-stable-23a9eef-20180707/x86_64-linux-gnu/rustc1.27.0
authority1_1 | 2018-07-16 10:34:05 UTC Keys path /root/.local/share/io.parity.ethereum/keys/MyApp
authority1_1 | 2018-07-16 10:34:05 UTC DB path /root/.local/share/io.parity.ethereum/chains/MyApp/db/8b02f6358e5c34ac
authority1_1 | 2018-07-16 10:34:05 UTC Path to dapps /root/.local/share/io.parity.ethereum/dapps
authority1_1 | 2018-07-16 10:34:05 UTC State DB configuration: fast
authority1_1 | 2018-07-16 10:34:05 UTC Operating mode: active
authority1_1 | 2018-07-16 10:34:06 UTC Configured for MyApp using AuthorityRound engine
That's all the logs.
Please launch it with -l debug and paste the logs here.
Here they are:
authority1_1 | Loading config file from /parity/config/authority.toml
authority1_1 | 2018-07-17 20:17:12 UTC main WARN parity::run Parity browser interface is deprecated. It's going to be removed in the next version, use standalone Parity UI instead.
authority1_1 | 2018-07-17 20:17:12 UTC main WARN parity::run Standalone Parity UI: https://github.com/Parity-JS/shell/releases
authority1_1 | 2018-07-17 20:17:12 UTC main INFO parity::run Starting Parity/v1.10.9-stable-23a9eef-20180707/x86_64-linux-gnu/rustc1.27.0
authority1_1 | 2018-07-17 20:17:12 UTC main INFO parity::run Keys path /root/.local/share/io.parity.ethereum/keys/MyApp
authority1_1 | 2018-07-17 20:17:12 UTC main INFO parity::run DB path /root/.local/share/io.parity.ethereum/chains/MyApp/db/8b02f6358e5c34ac
authority1_1 | 2018-07-17 20:17:12 UTC main INFO parity::run Path to dapps /root/.local/share/io.parity.ethereum/dapps
authority1_1 | 2018-07-17 20:17:12 UTC main INFO parity::run State DB configuration: fast
authority1_1 | 2018-07-17 20:17:12 UTC main INFO parity::run Operating mode: active
authority1_1 | 2018-07-17 20:17:12 UTC main DEBUG ethcore::account_provider Error initializing hardware wallets: Other error
authority1_1 | 2018-07-17 20:17:12 UTC main DEBUG miner minimal_gas_price: recalibrating...
authority1_1 | 2018-07-17 20:17:12 UTC main DEBUG miner minimal_gas_price: Got gas price! 0
authority1_1 | 2018-07-17 20:17:12 UTC fetch DEBUG fetch processing requests ...
authority1_1 | 2018-07-17 20:17:12 UTC fetch DEBUG tokio_core::reactor loop poll - Duration { secs: 0, nanos: 8493 }
authority1_1 | 2018-07-17 20:17:12 UTC fetch DEBUG tokio_core::reactor loop time - Instant { tv_sec: 20685619, tv_nsec: 775532081 }
authority1_1 | 2018-07-17 20:17:12 UTC fetch DEBUG tokio_core::reactor consuming notification queue
authority1_1 | 2018-07-17 20:17:12 UTC fetch DEBUG tokio_core::reactor loop process - 1 events, Duration { secs: 0, nanos: 102330 }
authority1_1 | 2018-07-17 20:17:12 UTC fetch DEBUG tokio_core::reactor loop poll - Duration { secs: 0, nanos: 3480 }
authority1_1 | 2018-07-17 20:17:12 UTC fetch DEBUG tokio_core::reactor loop time - Instant { tv_sec: 20685619, tv_nsec: 775651484 }
authority1_1 | 2018-07-17 20:17:12 UTC fetch DEBUG tokio_core::reactor loop process - 0 events, Duration { secs: 0, nanos: 27572 }
authority1_1 | 2018-07-17 20:17:12 UTC main DEBUG poa Setting Engine signer to 00aa…97c2
authority1_1 | 2018-07-17 20:17:12 UTC main INFO ethcore::service Configured for MyApp using AuthorityRound engine
No log entries after last line
I suspect that it somehow has different genesis so it just create a new network instead of reconnecting to existing one. Just a guess though.
P.S. all connections are rejected:
$ telnet localhost 8545
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
Hmm it doesn't give much more info, can you tell what differences you have between your genesis and the one from Kovan for instance: https://github.com/paritytech/parity-ethereum/blob/master/ethcore/res/ethereum/kovan.json
This is complete chain.json for currently running 1.7.7 node:
{
"name": "MyApp",
"engine": {
"authorityRound": {
"params": {
"gasLimitBoundDivisor": "0x400",
"stepDuration": "1",
"validators": {
"list": [
"0x00Bd138aBD70e2F00903268F3Db08f2D25677C9e",
"0x00Aa39d30F0D20FF03a22cCfc30B7EfbFca597C2",
"0x002e28950558fbede1a9675cb113f0bd20912019"
]
},
"validateScoreTransition": 5305300,
"validateStepTransition": 100000000
}
}
},
"params": {
"maximumExtraDataSize": "0x20",
"minGasLimit": "0x1388",
"networkID": "0x2323"
},
"genesis": {
"seal": {
"authorityRound": {
"step": "0x0",
"signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
},
"difficulty": "0x20000",
"gasLimit": "0x5B8D80"
},
"accounts": {
"0x0000000000000000000000000000000000000001": {
"balance": "1",
"builtin": {
"name": "ecrecover",
"pricing": {
"linear": {
"base": 3000,
"word": 0
}
}
}
},
"00fc2789a44a3355dbb455227bac5f223580ddbb": {
"balance": "10000000000000000000000000000"
}
}
}
And here is the fixed json for 1.10.9:
{
"name": "MyApp",
"engine": {
"authorityRound": {
"params": {
"stepDuration": "1",
"validators": {
"list": [
"0x00Bd138aBD70e2F00903268F3Db08f2D25677C9e",
"0x00Aa39d30F0D20FF03a22cCfc30B7EfbFca597C2",
"0x002e28950558fbede1a9675cb113f0bd20912019"
]
},
"validateScoreTransition": 5305300,
"validateStepTransition": 100000000
}
}
},
"params": {
"gasLimitBoundDivisor": "0x400",
"maximumExtraDataSize": "0x20",
"minGasLimit": "0x1388",
"networkID": "0x2323"
},
"genesis": {
"seal": {
"authorityRound": {
"step": "0x0",
"signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
},
"difficulty": "0x20000",
"gasLimit": "0x5B8D80"
},
"accounts": {
"0x0000000000000000000000000000000000000001": {
"balance": "1",
"builtin": {
"name": "ecrecover",
"pricing": {
"linear": {
"base": 3000,
"word": 0
}
}
}
},
"00fc2789a44a3355dbb455227bac5f223580ddbb": {
"balance": "10000000000000000000000000000"
}
}
}
can you tell what differences you have between your genesis and the one from Kovan? :)
Sorry, I don't understand the question and why are you talking about Kovan. As far as I know it's a pwasm-enabled network, and I'm talking about simple private ethereum network.
I have shown entire configuration for the old and new versions.
And yes, I don't know how to check genesis of anything or compare it anyhow.
As explained on the chat, Kovan is very similar to your private chain. It's PoA based and the genesis should look the same. Jumping from 1.7 to 1.10 is pretty big though.
Are all of your Authorities running on 1.7 and you tried upgrading 1 is that right?
A could you try with 1.8 and gradually update all the authorities?
Hmm, I probably could. However, I'm not sure if it worth. It's probably easier to me to just create a new network and migrate data. My boss is very upset that network is not working for a week so unfortunately I probably don't have time to try this way.
this is ethbot output for my nodes (thanks to @NikVolf ):
-- authority0
block #0: Block { hash: Some(0x4e37c005ad5ff550a09c82ba8b791a877453261d8b02f6358e5c34ac21c3c6ae), parent_hash: 0x0000000000000000000000000000000000000000000000000000000000000000, uncles_hash: 0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347, author: 0x0000000000000000000000000000000000000000, state_root: 0x98a5d9f84063340ba4aa2038bc7edb7158299190bf52f60277bfe1daa90eec1a, transactions_root: 0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421, receipts_root: 0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421, number: Some(0x0), gas_used: 0x0, gas_limit: 0x5b8d80, extra_data: Bytes([]), logs_bloom: 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, timestamp: 0x0, difficulty: 0x20000, total_difficulty: 0x20000, seal_fields: [Bytes([128]), Bytes([184, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])], uncles: [], transactions: [], size: Some(0x215) }
-- authority2
block #0: Block { hash: Some(0x4e37c005ad5ff550a09c82ba8b791a877453261d8b02f6358e5c34ac21c3c6ae), parent_hash: 0x0000000000000000000000000000000000000000000000000000000000000000, uncles_hash: 0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347, author: 0x0000000000000000000000000000000000000000, state_root: 0x98a5d9f84063340ba4aa2038bc7edb7158299190bf52f60277bfe1daa90eec1a, transactions_root: 0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421, receipts_root: 0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421, number: Some(0x0), gas_used: 0x0, gas_limit: 0x5b8d80, extra_data: Bytes([]), logs_bloom: 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, timestamp: 0x0, difficulty: 0x20000, total_difficulty: 0x20000, seal_fields: [Bytes([128]), Bytes([184, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])], uncles: [], transactions: [], size: Some(0x215) }
So it seems that I didn't change genesis or something.
I appreciate you feedback, I will try to try 1.8 and 1.9 versions, but if you have any new suggestions please share them.
Thank you for replying.
I tried to drop the db and resync it from scratch, but it doesn't work
$ docker logs dockerparity_authority1_1 -f
Loading config file from /parity/config/authority.toml
2018-07-23 12:55:20 UTC Parity browser interface is deprecated. It's going to be removed in the next version, use standalone Parity UI instead.
2018-07-23 12:55:20 UTC Standalone Parity UI: https://github.com/Parity-JS/shell/releases
2018-07-23 12:55:20 UTC Starting Parity/v1.10.9-stable-23a9eef-20180707/x86_64-linux-gnu/rustc1.27.0
2018-07-23 12:55:20 UTC Keys path /root/.local/share/io.parity.ethereum/keys/MyApp
2018-07-23 12:55:20 UTC DB path /root/.local/share/io.parity.ethereum/chains/MyApp/db/8b02f6358e5c34ac
2018-07-23 12:55:20 UTC Path to dapps /root/.local/share/io.parity.ethereum/dapps
2018-07-23 12:55:20 UTC State DB configuration: fast
2018-07-23 12:55:20 UTC Operating mode: active
2018-07-23 12:55:21 UTC Configured for MyApp using AuthorityRound engine
Open: http://0.0.0.0:8180/#/auth?token=asDd-eqIW-DNm4-r3Vd
to authorize your browser.
Or use the generated token:
asDd-eqIW-DNm4-r3Vd
2018-07-23 12:55:26 UTC Public node URL: enode://1412ee9b9e23700e4a67a8fe3d8d02e10376b6e1cb748eaaf8aa60d4652b27872a8e1ad65bb31046438a5d3c1b71b00ec3ce0b4b42ac71464b28026a3d0b53af@172.19.0.3:30303
2018-07-23 12:55:31 UTC Syncing #0 4e37…c6ae 0 blk/s 0 tx/s 0 Mgas/s 0+ 0 Qed #0 3/25 peers 8 KiB chain 7 KiB db 0 bytes queue 6 MiB sync RPC: 0 conn, 2 req/s, 145 µs
2018-07-23 12:55:37 UTC Stage 3 block verification failed for #944 (b822…641f)
Error: Block(TooManyUncles(OutOfBounds { min: None, max: Some(0), found: 2 }))
2018-07-23 12:55:41 UTC Syncing #943 6fd6…5a77 94 blk/s 0 tx/s 0 Mgas/s 0+ 0 Qed #940 2/25 peers 526 KiB chain 378 KiB db 0 bytes queue 10 KiB sync RPC: 0 conn, 3 req/s, 200 µs
2018-07-23 12:55:46 UTC Syncing #943 6fd6…5a77 0 blk/s 0 tx/s 0 Mgas/s 0+ 0 Qed #940 2/25 peers 1 MiB chain 378 KiB db 0 bytes queue 10 KiB sync RPC: 0 conn, 3 req/s, 158 µs
2018-07-23 12:56:16 UTC 0/25 peers 1 MiB chain 378 KiB db 0 bytes queue 10 KiB sync RPC: 0 conn, 4 req/s, 136 µs
2018-07-23 12:56:21 UTC Syncing #943 6fd6…5a77 0 blk/s 0 tx/s 0 Mgas/s 0+ 0 Qed #940 1/25 peers 1 MiB chain 378 KiB db 0 bytes queue 10 KiB sync RPC: 0 conn, 2 req/s, 142 µs
2018-07-23 12:56:51 UTC Syncing #943 6fd6…5a77 0 blk/s 0 tx/s 0 Mgas/s 0+ 0 Qed #940 1/25 peers 1 MiB chain 378 KiB db 0 bytes queue 11 KiB sync RPC: 0 conn, 4 req/s, 129 µs
2018-07-23 12:57:21 UTC 0/25 peers 1 MiB chain 378 KiB db 0 bytes queue 11 KiB sync RPC: 0 conn, 4 req/s, 94 µs
2018-07-23 12:57:46 UTC Syncing #944 3f58…133c 0 blk/s 0 tx/s 0 Mgas/s 0+ 0 Qed #940 1/25 peers 1 MiB chain 378 KiB db 0 bytes queue 11 KiB sync RPC: 0 conn, 3 req/s, 108 µs
However, if I connect to the same network via 1.7.7 it starts syncing successfully.
v1.10 is now End of Life (EoL). I'd advise to go for 1.11 already.
Same questions as before :
Are all of your Authorities running on 1.7 and you tried upgrading 1 is that right?
A could you try with 1.8 and gradually update all the authorities?
Are all of your Authorities running on 1.7 and you tried upgrading 1 is that right?
I tried 1.9 with same result. I didn't try 1.8 and I don't recall why exactly: probably I just forgot it. But there is chances that if it didn't work with 1.9 and 1.10 then it won't work with 1.8 too. I'l try to try it if I get access to the test server, but I don't truly believe in success :)
A could you try with 1.8 and gradually update all the authorities?
I find it too risky. They say that one node may have higher version and still sync, and afaik it doesn't matter what version is running on the node you are syncing with because these blocks are already generated and updating version doesn't change a bit. Please, correct me if I'm wrong.
I believe this can be caused by maximumUncleCount which was probably introduced after 1.7.7 and defaults to 0. @Pzixel can you try setting maximumUncleCountTransition in your chain spec to a future block number and retrying with that? You should update the chainspecs of all validators before this block number is reached, but if you just want to try set a really large block number.
@andresilva great idea. Gonna try it out, BRB with resuls.
It didn't work to me:
"name": "MyApp",
"engine": {
"authorityRound": {
"params": {
"stepDuration": "1",
"validators": {
"list": [
"0x00Bd138aBD70e2F00903268F3Db08f2D25677C9e",
"0x00Aa39d30F0D20FF03a22cCfc30B7EfbFca597C2",
"0x002e28950558fbede1a9675cb113f0bd20912019"
]
},
"validateScoreTransition": 53053000,
"validateStepTransition": 100000000
}
}
},
"params": {
"gasLimitBoundDivisor": "0x400",
"maximumExtraDataSize": "0x20",
"minGasLimit": "0x1388",
"networkID": "0x2323",
"maximumUncleCountTransition": "50000000"
},
If I run it on existing database it doesn't sync.
If I run it without database (to sync it from scratch ) is starts syncing but stopps at block 943 (just for reference) without any known reason.
@Pzixel maximumUncleCountTransition should go inside authorityRound params.
"name": "MyApp",
"engine": {
"authorityRound": {
"params": {
"stepDuration": "1",
"validators": {
"list": [
"0x00Bd138aBD70e2F00903268F3Db08f2D25677C9e",
"0x00Aa39d30F0D20FF03a22cCfc30B7EfbFca597C2",
"0x002e28950558fbede1a9675cb113f0bd20912019"
]
},
"validateScoreTransition": 53053000,
"validateStepTransition": 100000000,
"maximumUncleCountTransition": "50000000"
}
}
},
"params": {
"gasLimitBoundDivisor": "0x400",
"maximumExtraDataSize": "0x20",
"minGasLimit": "0x1388",
"networkID": "0x2323"
},
Wow. I read this spec ( https://wiki.parity.io/Chain-specification ) and I was sure that it goes into params as optional... It's not very clear from the spec. Thank you, I will try this one too.
This is indeed not very clear from the chain spec. The Aura dedicated page is clearer IMO: https://wiki.parity.io/Pluggable-Consensus.html#aura
@Pzixel were you able to get it to work?
@andresilva I planned to answer tomorrow if network syncs successfully (it takes an ethernity to sync 50gb chain. I'm not sure why warp doesn't work though). ATM it looks like the latest config do the thing. I will be able to confirm it tomorrow, I guess.
Well, it synced 5400000 blocks from total 6200000 and stopped. I'm not sure what's wrong here though. I have a local auditor node with same parameters and it's fully synced. They share the same json and other parameters, except one of them is an authority node.
Could you try to fetch logs from the authority node that is failing to sync? Logs at trace level for the sync and engine module (-lengine=trace,sync=trace) would be more helpful (even though it will generate a lot of logs).
I didn't notice the exact moment, but in the end it managed to finish synchronization. Don't know origins of such a stuck though.