From 94da1a30dcd1c0592740001bb9339b7e6bbbc37b Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sun, 15 Aug 2021 20:27:16 +0100 Subject: [PATCH] When merging two states, validate that the transaction signature we are using for the "before" layer matches the "previous transaction signature" that is baked into the "after" layer. This defends against a missing or out-of-order transaction. If this ever fails validation, we may need to rethink the way we are requesting transactions. But in theory this shouldn't happen, given that the "last reference" field of a transaction ensures that out-of-order transactions are invalid already. --- .../arbitrary/ArbitraryDataBuilder.java | 3 ++- .../arbitrary/ArbitraryDataCombiner.java | 24 ++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/qortal/arbitrary/ArbitraryDataBuilder.java b/src/main/java/org/qortal/arbitrary/ArbitraryDataBuilder.java index 7ef29d03..f8c95596 100644 --- a/src/main/java/org/qortal/arbitrary/ArbitraryDataBuilder.java +++ b/src/main/java/org/qortal/arbitrary/ArbitraryDataBuilder.java @@ -154,7 +154,8 @@ public class ArbitraryDataBuilder { for (int i=1; i