iost-official / go-iost

Official Go implementation of the IOST blockchain
https://developers.iost.io/
GNU Lesser General Public License v3.0
564 stars 112 forks source link

feat: Remove forceUnregister method. #1146

Closed octalmage closed 3 years ago

octalmage commented 4 years ago

It seems like this method is unnecessary and hurts the decentralization of the network. IOST could replace the top nodes today with a few iwallet commands, and that seems like too much power on a public blockchain.

Nodes can still deregister then be deactivated after opting in, and nodes that go offline should be removed from the rotation.

jerkyrs commented 4 years ago

Should consider other "enterprise" features exist in IOST public chain, they are good to have for consortium chain and for initial security bootstrapping of public chain but need route to full decentralized permissionless where no single entity can modify public chain.

octalmage commented 4 years ago

@lispc any response?

jerkyrs commented 4 years ago

Suggest one raises a governance vote, slashing should negate the need for approve. Addition and removal should be handled by protocol exclusively. Relatively it is not difficult to change this but security of the network is the main interest of foundation. Many other protocols have been run for longer under foundation control like Cardano, comparatively IOST could be considered younger protocol.

We are in favour of full decentralisation and associated removal of approve/forceregister

lispc commented 3 years ago

it is not a tech problem it is a governance problem.
I think github is not the right place for this. Just close it.

octalmage commented 3 years ago

Where is the right place for this? This needs to be merged or IOST is 100% centralized.

octalmage commented 3 years ago

@lispc

jerkyrs commented 3 years ago

approve/force unregister should be removed and rely on slashing of validator which is currently 24 hours if you do not produce blocks in round. There has been a number of nodes routinely slashed due to missing blocks maybe not upgraded or not online, point being is protocol already handles this and hopefully in future we have more nodes rotating and should handle it without extra functionality like this.

Maybe Self bond and percentage slashing(maybe 10% of 2.1 million) could be implemented to ensure liveliness after 3x current jail implementation row, this would encourage operator to logout producer and maintain node properly.