I am considering to set the blocktime to zero (clique.period:0) in a permissioned private blockchain with known but untrusted nodes. The reason to do this is

  • having a minimum transaction process time
  • sparing disk space
  • having a minimum time to synchronize new nodes due to less blocks

I have some questions about this:

  1. Is this setup then more or less like hyperledger fabric behaves concerning transactions and blocks?
  2. What are the security concerns around this approach in the given use case (permissioned/known nodes)?
  3. Is this approach the correct one to reach my three goals (see above)?

AFAIK Fabric is using PBFT. In PBFT you have a voting mechanism which leads to 100% TX finality after the block has been signed by at least 2/3 of validators. This is not the case for clique, which means chain reorgs can happen. An equivalent for PBFT's 2/3 voting in clique would be when at least 2/3 of signers build upon a block containing the TX. In this case it can not be reverted anymore as long as not more than 1/3 of signers are corrupt/fraudulent. So if you're constantly mining, the point where TX has 100% finality will be reached faster. If you only mine as transactions are coming in, it could take hours/days/weeks/months for the sender to be sure that it can not be reverted anymore. The exact time will depend on how fast the transactions are published and how many signers you have in the network.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.