CPChain / chain

Mirror of https://bitbucket.org/cpchain/chain
GNU General Public License v3.0
51 stars 10 forks source link

Ideas and suggestions about impeached blocks and RPT #90

Closed alex031029 closed 4 years ago

alex031029 commented 5 years ago

Hi there,

This is CPChain team. As you may know, the impeachment is designed to assure the liveness of the chain even though the proposer meets some problems. However, an impeached block carries 0 transactions. Therefore, a larger number of impeached block means a smaller throughput in terms of transactions.

In current implementation, impeached blocks have little impact on the RPT value. It motivates us to consider whether to include impeachment in RPT calculation. Here, I am gathering information about ideas and suggestions from the community. I appreciate any feedback and reply here. And I list a bunch of questions below.

**1. Do you hope a punishment on RPT value for impeached blocks?

  1. To what degree do you think is acceptable about the punishment of impeached block on RPT value?
  2. Do you want a threshold for this punishment? In other word, only users with the number of impeached blocks within a time window (like a day) higher than the threshold will get punished. If Yes, what is the threshold you suggest?
  3. Which is a better way of punishment in your mind, a percentage deduction (like 10% off for each impeached block) or absolute value deduction (like 200 points off for each impeached block)?
  4. Any other advice.**

Thanks again for your kind support and feedback.

L0ut commented 5 years ago
  1. Yes, punishment for impeached blocks is necessary to guarantee the throughput. A node with lots of impeached blocks should be forced to take action to change its situation.

  2. If a node has lots of impeached blocks, the RPT should deminish to a point where the node isn't selected as a proposer anymore.

  3. Yes a threshold of 3 impeached blocks over a certain fimeframe because they sometimes seem to appear at random in 1 proposers round.

  4. 10% off per impeached block seems to would be the fairest way to calculate it.

  5. No other suggestions for now

hvredevoort commented 5 years ago
  1. Do you hope a punishment on RPT value for impeached blocks? Yes, I'd support taking into account impeached blocks

  2. To what degree do you think is acceptable about the punishment of impeached block on RPT value? Stop sealing blocks until no impeached blocks show during a certain time period (1 hour, 4 hours, 1 day?)

  3. Do you want a threshold for this punishment? In other word, only users with the number of impeached blocks within a time window (like a day) higher than the threshold will get punished. If Yes, what is the threshold you suggest?

I usually got impeached blocks during stopping of RNode (with 0.4.6) so the occasional impeached block should not really have an impact. More than 9 per day

  1. Which is a better way of punishment in your mind, a percentage deduction (like 10% off for each impeached block) or absolute value deduction (like 200 points off for each impeached block)?

Stop sealing until resolved

  1. Any other advice.

Start counting on implementation (because older addresses have had some experimentation or problems like in my case)