A quick explanation: global block ordering in Kaspa is started by searching for a k-cluster (=computing a GhostDAG): a set of al

31 Oct 2024, 21:53
A quick explanation: global block ordering in Kaspa is started by searching for a k-cluster (=computing a GhostDAG): a set of all blocks in Kaspa's history such that from each one you can draw a link arrow (either direct or indirect, via parents and their parent, or children and their children) to almost each one, in the past or the future; and there are never more than k blocks in the cluster for any given one in it that you cannot reach from that given one. For the purposes of reliable and secure pruning of outdated data, exactly the same k-cluster must be separately built for all blocks whose difficulty is 2+ times higher than the threshold difficulty at the time of each such block's appearance; another one for 4+ times higher diff blocks, one more for 8+ times higher, and so on, potentially up to blocks with 2^255 times higher difficulty than the given threshold at that time. This is called a higher-level Ghostdag entries computing. Previously, this operation was performed for each newly found block, although it was not directly necessary at each moment but it was easier to implement. Now, thanks to @coderofstuff, these calculations are performed only when necessary: ​​for example, before performing a pruning. This is another in a long series of optimizations that will allow a Kaspa node to be run on inexpensive hardware, and will allow Kaspa to remain a truly decentralized L1 solution even after the transition to 10 blocks per second unlike many widely hyped "cryptocurrencies" that, in their undoubtedly quite fast operation, still rely on a narrow circle of extremely powerful, tightly coupled servers that are unaffordable to the vast majority of the world's population. Cont'd: