I have 2 questions about the Paxos sequence we have to implement.
1- Should the Proposer wait for (N/2+1) Promises as response to its Prepare message in order to enter the second phase (so this could be sort of a blocking operation), or should he instead wait to collect (N/2+1) Promises (even if they do not accept the value he proposed) and then check if they all accept its value, and if so proceed to the second phase (so in this case the condition to end this routine would be easier to achieve)?
2- Is the AcceptValidation function binded in anyway to the promiseValidation one? What I mean is: are nodes obliged to validate only a value for which they previously sent a promise, or are the two things unrelated? (so a node can send a promise for value A, but then reject value A and accept the validation of value B)
Hope I was clear enough!