1. A method comprising: storing a data structure in memory, the data structure holding a model of a plurality of contests offered by a crowdsourcing node in a communications network, each contest having a task and a reward for a selective participant that provides a solution to the task; monitoring, using a processor at the crowdsourcing node, a plurality of potential contest participants and storing an estimate of a total number of potential contest participants; storing at the data structure, for each contest, a contest budget and a utility function; determining a relative reward for each of the plurality of contests by using a processor at the crowdsourcing node to optimize an objective which is related to an aggregated utility over the plurality of contests minus an aggregated cost over the plurality of contests; and using the model and the estimated total number of potential contest participants to control the behavior of the crowdsourcing node and to provide the respective relative rewards for each of the plurality of contests.