Talk:Transaction Construction Algorithm (voting pools)

From Open Transactions
Revision as of 08:32, 3 October 2014 by Larshesel (talk | contribs) (Output list initialization - what to do with removed outputs)
Jump to navigation Jump to search

Larshesel (talk) 14:57, 26 September 2014 (UTC)

In the preparation step it is mentioned that we create a withdrawal status object which is referenced throughout the algorithm.

We add the roundID to this object, but it does not seem to be used anywhere. Is it needed at all?

Justusranvier (talk) 15:41, 26 September 2014 (UTC)

It's needed to match up withdrawalstatus objects with siglist objects.

Larshesel (talk) 08:58, 29 September 2014 (UTC)

In the output list initialization procedure we may return an empty output list if the smallest output is bigger than the sum of the inputs. What should happen if we return an empty output list? The next step (transaction initialization) seems to assume that it is not empty.

As there are no longer any ouputs we cannot make a transaction. I don't seem to find any error code that reflects this situation.

Justusranvier (talk) 12:49, 29 September 2014 (UTC)

Transaction Initialization does not depend on the size of the output list. If the transaction skeleton ends up not being used, then Finalize Transaction will discard it (first step).

Easiest way to see what happens is to just follow the steps with an empty output list and you'll find all the checks that handle it.

Larshesel (talk) 08:32, 3 October 2014 (UTC)

In the 'Output List Initialization' I don't think it's specified how to keep track of the outputs that are removed if sum(inputs) < sum(outputs). I would assume that we need to mark the output status in the withdrawal status object so the caller can take appropriate action?