v1.8.5-RELEASE
Protocol-Change:
Added bundle validity rules - check that bundles confirm only tails and 2 bundles at most (#1786)
Check validity rules on tip-sel and check-consistency only (#1802)
Bundle validation changes
Bundles only approve tail transactions
To simplify transaction processing and tip selection, it is beneficial if bundles can only approve tail transactions. This allows for the construction of graph abstractions that simplify and improve tip selection and enable other scenarios.
Up until now, it was possible to construct bundles that approve non-tail transactions (outside of the official client libraries). That makes the above not possible as it makes it impossible to distinguish the actual tail of a bundle.
Bundles can at most approve two other transactions
This change changes the node software to only consider valid bundles where all transactions within the bundle approve, via their branch, the trunk transaction of the head transaction. Our client libraries are already building bundles using this logic, so there is no need to change anything if you have been using them to send transactions. This approach also has the following benefits:
- Allows nodes to use simpler logic to validate bundles.
- Addresses potential vulnerabilities in the node.