I understand that the next block validator is chosen randomly (weighted by stake) from a group of validators / stakers, but how is this done decent-rally? Which node or node