Hi everybody.
It's been some days that I have been trying to hack around the ByzCoin source code, and regarding the ByzCoin paper, I have some questions about its implementation.
As it is stated in the paper, about every 10 minutes one party has to get chosen to be the next leader determined using PoW. The new leader, during the next 10 minutes, can insert some transaction blocks (micro blocks) into the ledger. However, I could not find any clue in the source code that shows the node performs any PoW. Additionally, there is nowhere that a new serverIdentity is added to the existing roster (in case of finding new leader by PoW), then how is this update rule applied if the protocol is the one explained in the paper?
In the paper, it has been mentioned that in byzcoin, despite Bitcoin-NG, there are separate chains for micro blocks and key blocks. However, in the source code, as long as I could figure out, there is only one chain containing both micro and key blocks. According to the paper, the micro blocks have to refer to their parent key blocks, but there is no such field in the skipblock structure. Could you please help me understand what the structure of the chain (or chains) is? And, if the two chains have been compacted in one chain, what happens to the structure mentioned in the paper?
Thanks for your time.