Open
Description
Currently, we only add vote-graph nodes for blocks which have been voted upon. Because of this, in the GHOST operation, we sometimes need to find a "merge point" under the following circumstances
- We have a node which fulfills a condition (i.e. supermajority)
- The node's children don't fulfill the condition
- We need to find the highest descendent block of the node (possibly the node block itself) which fulfills the condition.
If we had nodes for fork blocks as well as voted-on blocks, the "merge" point operation (potentially expensive) would become unnecessary. The downside is that the add_vote
operation may introduce up to two nodes to the graph, doubling the number of nodes and cost of search operations in the worst case.