2

DPoS is a system in which a fixed number of elected entities (called block producers or witnesses) are selected to create blocks in a round-robin order.

If we have a BP 18th suddenly down, which block number does BP 19th create? (I assume block number in BP 17th is 1000)

0

This is how it's supposed to work:

Bp 18 will continue to miss blocks on their scheduled blocks until 24 hours have passed in which they will be removed from rotation.

The next BP (bp 19) will build on top of what they know to be the block of highest height.

From the whitepaper.

The EOS.IO software enables blocks to be produced exactly every 0.5 second and exactly one producer is authorized to produce a block at any given point in time. If the block is not produced at the scheduled time, then the block for that time slot is skipped. When one or more blocks are skipped, there is a 0.5 or more second gap in the blockchain.

...

If a producer misses a block and has not produced any block within the last 24 hours they are removed from consideration until they notify the blockchain of their intention to start producing blocks again. This ensures the network operates smoothly by minimizing the number of blocks missed by not scheduling producers who are proven to be unreliable.


This is how it actually works:

enter image description here

| improve this answer | |
  • Thank @Nat, I read but still not clear how to BP 19 know that block highest height, I assume , BP 19th has currently block num is 997, so it will be increase 1001 or 998? p/s: I will read all paper to understand clearly. Thank you very much – user2644 Dec 18 '18 at 1:50
  • They know because they have p2p connections to one another and are actively listening for new blocks. eosnodes.privex.io/?config=1 You can see the p2p connection setting in the config.ini – Nat Dec 18 '18 at 2:04
  • Any time, nice hat – Nat Dec 18 '18 at 2:19
  • You mean, nice your hat?? :). @Nat, do you have any document or reference for this : how EOS has 12 blocks per producer. Many thanks – user2644 Dec 18 '18 at 7:54
  • github.com/EOSIO/eos/blob/master/libraries/chain/include/eosio/… The number of sequential blocks produced by a single producer const static int producer_repetitions = 12; – Nat Dec 18 '18 at 11:08

Your Answer

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