prevent misconfiguration of blockchain parameters

The following parameters in genesis.json are related
1) Fees for proposals
   a. proposal create (22)
   b. proposal update (23)
   c. proposal delete (24)  -- Not sure how relevant this is.
2) SON Parameters
   a. "son_pay_max": 20000000,
   b. "son_deregister_time": 120,
   c. "son_heartbeat_frequency": 20,
   d. "maximum_son_count": 15

Any new proposal which tries to misconfigure the parameters should be prevented
Following are some of the relations
1) ("proposal update fees"| "proposal create" | "proposal delete" ) < (son_pay_max/(10000 * maximum_son_count))
2) son_heartbeat_frequency < son_deregister_time

There might be more parameters like these that could be checked during propose_parameter_change operation.
Similarly:

 "extensions": {
      ..........
      "son_pay_time": 600,
      "son_deregister_time": 300,
      "son_heartbeat_frequency": 60,
      "son_down_time": 180,
      .......
    }

son_down_time, son_deregister_time and son_pay_time should be greater than son_heartbeat_frequency.

Instead of giving all them absolute values, we should instead give them relative values ie  

 "extensions": {
      ..........
      "son_pay_time_frequency": 10,
      "son_deregister_time_frequency": 5,
      "son_heartbeat_frequency": 60,
      "son_down_time_frequency": 3,
      .......
    }

which will mean as same as below:

 "extensions": {
      ..........
      "son_pay_time": 600,
      "son_deregister_time": 300,
      "son_heartbeat_frequency": 60,
      "son_down_time": 180,
      .......
    }
Edited by Kiran Kumar