lightchain
lightchain copied to clipboard
Ensure all networks use the same tendermint protocol and p2p version
As discussed here: https://github.com/lightstreams-network/lightchain/pull/85#discussion_r260175326
After researching over Tendermint protocol version involves I found two areas of investigation:
P2P Protocol Version Every update on the version of the p2p protocol is affecting the communication between peers. There was still not cases on the incompatibility between different peer versions, although that does not mean in the future there might not be the case.
In the flip side, from the experience on the past updates, we found issues affecting the communications between Lightchain <> Tendermint, for instance in the way peers are being authenticated or the way validators are being updated.
Block Protocol Version Block version updates are not tight to any relevant change over the block structure, but in the future, they might do.
In the case of the block protocol we need to ensure that the peers connected to a blockchain uses the same block version than the blockchain used on the first genenis block. After an extense diving into the Tendermint code I sitll didn't find how we could upgrade block protocol version on a running blockchain, and that feature it will necesary to allow modification over the block structured defined on the first block of the chain.
During the latest Tendermint update https://github.com/lightstreams-network/lightchain/issues/161 protocol version and block version were not upgraded. Postponing this issue till an update is made on either of both version in order to validate the changes required