Closed andrecronje closed 4 years ago
This is related to issue #8
At this point lachesis node does not look into transactions inside transactions block body. If we add special type of transactions for dynamic node addition/removal we would need to filter every transaction on the chain to find these special ones related to node addition/removal. This will directly impact performance of the chain in terms of tps, our primary goal in development at the moment.
Thus I see two approaches to implement dynamic addition/removal for nodes:
Add 1-byte prefix for every transaction entering the block chain, say byte 0x00 would indicate application layer transactions and bytes 0x01-0xFF would indicate special/internal lachesis transactions. That approach would allow us to fast filter special transactions out of application layer ones for the price of 1 byte per every transaction in the blockchain plus operations implementing transactions filtering (please note, lachesis nodes currently operate with transactions blocks as the minimal chunk of data passing between nodes).
Add separate poset store for internal transactions. That approach would require allocation of additional memory and hard drive storage for this store (as basically two lachesises would be run on every node), and thus would lead to increased hardware requirements to the nodes.
I welcome input from other developers on this dilemma and views on this issue from other perspectives.
Separate poset store for internal transactions. I have a semi implementation almost ready, will share tomorrow.
outdated
Allow new nodes to join the network randomly (and leave) while maintaining the participants table.