1. A node controller comprising: a network interface; a processor; a memory containing: a node controller application; a plurality of node operating parameters describing the operating parameters of a node; and a plurality of node operating parameters describing operating parameters for a set of at least one node selected from the group consisting of at least one downstream node and at least one upstream node; wherein the processor is configured by the node controller application to: receive and store in memory a plurality of coordinator parameters describing the operating parameters of a node coordinator by the network interface; and calculate a plurality of updated node operating parameters using an iterative gradient projection process to determine the updated node parameters using the node operating parameters that describe the operating parameters of the node and the operating parameters of the set of at least one node, where each iteration in the iterative process is determined by the coordinator parameters.