give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: Today, endorsement policy is specified as bytes encoding a literal {{common.SignaturePolicyEnvelope}} message.    This approach has two primary drawbacks.   # It is not possible to share an endorsement policy between chaincodes.   # It is not possible to express a policy like "a majority of orgs" (if for instance, the network grows or shrinks, the policy will no longer reflect the intent).    If endorsement policies are stored as references rather than literals, then both drawbacks are eliminated.  ----  *Example*    Consider a channel with three organizations and many chaincodes. In the v1.0 endorsement policy model, if the network wishes to express the concept of "all orgs" for each of these chaincodes, then it must encode the signature policy {{Org1 AND Org2 AND Org3}} for each chaincode. If {{Org4}} is added to the network, then to preserve the intent of the policy, the endorsement policy must be redefined for each and every chaincode.    Instead, with the proposed model, consider a single implicit policy defined in the channel config which requires {{ALL application orgs}}. Then, when {{Org4}} is added to the channel, no update is required to the endorsement policy.    Of course, if the channel would rather manually add {{Org4}} to the policy, then the original {{Org1 AND Org2 AND Org3}} policy may be encoded in the config tree. However, to update all chaincodes with this policy would require only one change, rather than a change to each and every chaincode.  ----  *Implementation*    Today, the LSCC table has a byte field representing the endorsement policy (as a marshaled {{common.SignaturePolicyEnvelope}}). For v1.1, this same field can be used but instead will hold a marshaled {{peer.StaticEndorsementPolicyArg}} message defined as follows:  {code:java}  message StaticEndorsementPolicyArg {      string PolicyRef = 1;  }  {code}  Because the encoding for this field would change from v1.0 to v1.1, a peer with the v1.1 capability enabled would not be able to support chaincode deploy/instantiation requests from a v1.0 client – details of which will be expressed in a sub-task.    Aside from changing the encoding of this field in the LSCC table and the corresponding encoding supplied by clients in the argument, there should be no external impact.  ----  *New Default Policies*    Although this can be written up into a different issue, in order to make fabric easier for clients to use, it makes sense to pre-populate the channel config with new default policies. In particular, the policies {{AnyOrgPeer}}, {{MajorityOrgsPeers}}, and {{AllOrgsPeers}}, should be added.    For a client defining a new chaincode, they may pick one of these default policies as their endorsement policy, rather than defining their own in the channel config. Although feedback is welcome, these three policies seem to cover the vast majority of use cases. (And of course, the client may always define additional arbitrary policies at channel creation or reconfiguration time).  ----  *Upgrade*    For existing channels with already deployed chaincodes, the endorsement policies for these chaincodes would need to be migrated to the resources config, and replaced with a reference to the policy.    This migration could occur as a one-time step when the v1.1 application capability is enabled for a channel. Because a v1.0 channel cannot have a resources tree defined, new policies at {{/Resources/Policies/<cc_name>Endorsement}} can be created without risk of collision. The new reference would point to this resources path.  ----  *Caveats/Downsides*    One of the additional advantages to using policies defined by reference, rather than policy literals, is a stronger control over the mutation of the policy. In order to preserve this benefit, the reference itself must be immutable in the LSCC table, though of course, the target policy of the reference may be mutated.    As pointed out above, v1.0 clients will not be forwards compatible. However, clients which do not manually construct an endorsement policy will be unaffected. Additionally, with the new policy defaults, it's hoped that the for the vast majority of clients, the constructed endorsement policies will be equivalent to one of these defaults.  ----  *Additional thoughts*    There has been considerable discussion around the future of chaincode lifecycle for fabric. See discussions on FAB-6042, FAB-7114, FAB-7444 (and a new one to be opened soon). Although there has been considerable debate on how lifecycle will proceed, moving endorsement away from policy literals and towards policy references is a useful feature which does not conflict with any of the proposals. Although this modification will produce some immediate pain for a subset of users, hopefully the pain will be minimal, and ultimately the complexity of specifying an endorsement policy will decrease for most users, without removing any power from the system.
Answer: 313078.0