Given a reconfiguration block, the policy manager uses the modification policy of each config item (current one) to evaluate the config block. Then a new chain object is created and used to substitute the older one if the setup completes successfully.
Assuming the reconfiguration tx has been issued to reconfigure a parameter A in the genesis block, then the entities authorized to change A create a reconfig tx, where they add a signed configuration item with A's new value, an updated "LastModified" field, and their signatures, and copy from the most recent reconfig tx the other (signed) configuration items. It sets the sequence number of the config tx, signs it and submits it to the nextwork.
On the validation of this transaction, all the configuration items are checked for validity, based on the currently stored modification policy for that item. However this causes a problem if the modification policy of an item has changed among configurations.
To resolve this we need to:
- check for all configuration items that have not been updated, if they are (in their signed form) identical to the ones in the configuration transaction that last updated that item. This likely already in the code.
- remove subsequent signature checks on this item.