fabric-docs-i18n icon indicating copy to clipboard operation
fabric-docs-i18n copied to clipboard

[ja_JP] Key Concepts / Policies

Open shimos opened this issue 2 years ago • 0 comments

Original HTML: https://hyperledger-fabric.readthedocs.io/en/release-2.5/policies/policies.html Original Source: https://github.com/hyperledger/fabric/blob/e1e8e2e52aa4fc543360d245fe6554a0eaf81183/docs/source/policies/policies.md

diff --git a/docs/source/policies/policies.md b/docs/source/policies/policies.md
index a9944c330..0453f507f 100644
--- a/docs/source/policies/policies.md
+++ b/docs/source/policies/policies.md
@@ -7,12 +7,13 @@ In this topic, we'll cover:
 
 * [What is a policy](#what-is-a-policy)
 * [Why are policies needed](#why-are-policies-needed)
-* [How are policies implemented throughout Fabric](#how-are-policies-implemented-throughout-fabric)
-* [Fabric policy domains](#the-fabric-policy-domains)
+* [How are policies implemented](#how-are-policies-implemented)
 * [How do you write a policy in Fabric](#how-do-you-write-a-policy-in-fabric)
 * [Fabric chaincode lifecycle](#fabric-chaincode-lifecycle)
 * [Overriding policy definitions](#overriding-policy-definitions)
 
+Note: this topic describes a network that does not use a "system channel", a channel that the ordering service is bootstrapped with and the ordering service exclusively controls. Since the release of v2.3, using system channel is now considered the legacy process as compared to the process to [Create a channel](../create_channel/create_channel_participation.html) without a system channel. For a version of this topic that includes information about the system channel, check out [Policies](https://hyperledger-fabric.readthedocs.io/en/release-2.2/policies/policies.html) from the v2.2 documentation.
+
 ## What is a policy
 
 At its most basic level, a policy is a set of rules that define the structure
@@ -30,9 +31,9 @@ and responsibilities of each party.
 Whereas an insurance policy is put in place for risk management, in Hyperledger
 Fabric, policies are the mechanism for infrastructure management. Fabric policies
 represent how members come to agreement on accepting or rejecting changes to the
-network, a channel, or a smart contract. Policies are agreed to by the consortium
-members when a network is originally configured, but they can also be modified
-as the network evolves. For example, they describe the criteria for adding or
+network, a channel, or a smart contract. Policies are agreed to by the channel
+members when the channel is originally configured, but they can also be modified
+as the channel evolves. For example, they describe the criteria for adding or
 removing members from a channel, change how blocks are formed, or specify the
 number of organizations required to endorse a smart contract. All of these
 actions are described by a policy which defines who can perform the action.
@@ -59,39 +60,11 @@ they are written, policies evaluate the collection of signatures attached to
 transactions and proposals and validate if the signatures fulfill the governance
 agreed to by the network.
 
-## How are policies implemented throughout Fabric
-
-Policies are implemented at different levels of a Fabric network. Each policy
-domain governs different aspects of how a network operates.
-
-![policies.policies](./FabricPolicyHierarchy-2.png) *A visual representation
-of the Fabric policy hierarchy.*
-
-### System channel configuration
-
-Every network begins with an ordering **system channel**. There must be exactly
-one ordering system channel for an ordering service, and it is the first channel
-to be created. The system channel also contains the organizations who are the
-members of the ordering service (ordering organizations) and those that are
-on the networks to transact (consortium organizations).
+## How are policies implemented
 
-The policies in the ordering system channel configuration blocks govern the
-consensus used by the ordering service and define how new blocks are created.
-The system channel also governs which members of the consortium are allowed to
-create new channels.
+Policies are defined within the relevant administrative domain of a particular action defined by the policy. For example, the policy for adding a peer organization to a channel is defined within the administrative domain of the peer organizations (known as the `Application` group). Similarly, adding ordering nodes in the consenter set of the channel is controlled by a policy inside the `Orderer` group. Actions that cross both the peer and orderer organizational domains are contained in the `Channel` group.
 
-### Application channel configuration
-
-Application _channels_ are used to provide a private communication mechanism
-between organizations in the consortium.
-
-The policies in an application channel govern the ability to add or remove
-members from the channel. Application channels also govern which organizations
-are required to approve a chaincode before the chaincode is defined and
-committed to a channel using the Fabric chaincode lifecycle. When an application
-channel is initially created, it inherits all the ordering service parameters
-from the orderer system channel by default. However, those parameters (and the
-policies governing them) can be customized in each channel.
+Typically, these policies default to the "majority of admins" of the group they fall under (a majority of peer organization admins for example, or in the case of `Channel` policies, a majority of both peer organizations and orderer organizations), though they can be specified to any rule a user wishes to define. Check out [Signature policies](#signature-policies) for more information.
 
 ### Access control lists (ACLs)
 
@@ -111,11 +84,11 @@ In that file, ACLs are expressed using the following format:
 
 ```
 # ACL policy for chaincode to chaincode invocation
-peer/ChaincodeToChaincode: /Channel/Application/Readers
+peer/ChaincodeToChaincode: /Channel/Application/Writers
 ```
 
 Where `peer/ChaincodeToChaincode` represents the resource being secured and
-`/Channel/Application/Readers` refers to the policy which must be satisfied for
+`/Channel/Application/Writers` refers to the policy which must be satisfied for
 the associated transaction to be considered valid.
 
 For a deeper dive into ACLS, refer to the topic in the Operations Guide on [ACLs](../access_control.html).
@@ -137,35 +110,6 @@ required to sign (approve) any configuration _update_. It is the policy that
 defines how the policy is updated. Thus, each channel configuration element
 includes a reference to a policy which governs its modification.
 
-## The Fabric policy domains
-
-While Fabric policies are flexible and can be configured to meet the needs of a
-network, the policy structure naturally leads to a division between the domains
-governed by either the Ordering Service organizations or the members of the
-consortium. In the following diagram you can see how the default policies
-implement control over the Fabric policy domains below.
-
-![policies.policies](./FabricPolicyHierarchy-4.png) *A more detailed look at the
-policy domains governed by the Orderer organizations and consortium organizations.*
-
-A fully functional Fabric network can feature many organizations with different
-responsibilities. The domains provide the ability to extend different privileges
-and roles to different organizations by allowing the founders of the ordering
-service the ability to establish the initial rules and membership of the
-consortium. They also allow the organizations that join the consortium to create
-private application channels, govern their own business logic, and restrict
-access to the data that is put on the network.
-
-The system channel configuration and a portion of each application channel
-configuration provides the ordering organizations control over which organizations
-are members of the consortium, how blocks are delivered to channels, and the
-consensus mechanism used by the nodes of the ordering service.
-
-The system channel configuration provides members of the consortium the ability
-to create channels. Application channels and ACLs are the mechanism that
-consortium organizations use to add or remove members from a channel and restrict
-access to data and smart contracts on a channel.
-
 ## How do you write a policy in Fabric
 
 If you want to change anything in Fabric, the policy associated with the resource
@@ -222,10 +166,7 @@ organizations.
 As mentioned above, a key benefit of an `ImplicitMeta` policy such as `MAJORITY
 Admins` is that when you add a new admin organization to the channel, you do not
 have to update the channel policy. Therefore `ImplicitMeta` policies are
-considered to be more flexible as the consortium members change. The consortium
-on the orderer can change as new members are added or an existing member leaves
-with the consortium members agreeing to the changes, but no policy updates are
-required. Recall that `ImplicitMeta` policies ultimately resolve the
+considered to be more flexible as organizations are added. Recall that `ImplicitMeta` policies ultimately resolve the
 `Signature` sub-policies underneath them in the configuration tree as the
 diagram shows.
 
@@ -235,7 +176,7 @@ are satisfied, that ALL are satisfied, or that a MAJORITY are satisfied. This
 format lends itself to much better, more natural defaults, so that each
 organization can decide what it means for a valid endorsement.
 
-Further granularity and control can be achieved if you include [`NodeOUs`](../msp.html#organizational-units) in your
+Further granularity and control can be achieved if you include [NodeOUs](../msp.html#organizational-units) in your
 organization definition. Organization Units (OUs) are defined in the Fabric CA
 client configuration file and can be associated with an identity when it is
 created. In Fabric, `NodeOUs` provide a way to classify identities in a digital
@@ -249,54 +190,59 @@ sign.
 Understanding policies begins with examining the `configtx.yaml` where the
 channel policies are defined. We can use the `configtx.yaml` file in the Fabric
 test network to see examples of both policy syntax types. We are going to examine
-the configtx.yaml file used by the [fabric-samples/test-network](https://github.com/hyperledger/fabric-samples/blob/{BRANCH}/test-network/configtx/configtx.yaml) sample.
+the `configtx.yaml` file used by the [fabric-samples/test-network](https://github.com/hyperledger/fabric-samples/blob/main/test-network/configtx/configtx.yaml) sample.
 
-The first section of the file defines the organizations of the network. Inside each
+### Member Organizations Section
+The first section of the file defines the organizations that will be members of the channel. Inside each
 organization definition are the default policies for that organization, `Readers`, `Writers`,
 `Admins`, and `Endorsement`, although you can name your policies anything you want.
 Each policy has a `Type` which describes how the policy is expressed (`Signature`
 or `ImplicitMeta`) and a `Rule`.
 
-The test network example below shows the Org1 organization definition in the system
-channel, where the policy `Type` is `Signature` and the endorsement policy rule
+The test network example below shows the Org1 organization definition in the
+channel, where the policy `Type` is `Signature` and the `Endorsement:` policy rule
 is defined as `"OR('Org1MSP.peer')"`. This policy specifies that a peer that is
 a member of `Org1MSP` is required to sign. It is these signature policies that
-become the sub-policies that the ImplicitMeta policies point to.  
+become the sub-policies that the `ImplicitMeta` policies point to.
 
 <details>
   <summary>
-    **Click here to see an example of an organization defined with signature policies**
+    <strong>Click here to see an example of an organization defined with signature policies</strong>
   </summary>
 
+  ```
+- &Org1
+       # DefaultOrg defines the organization which is used in the sampleconfig
+       # of the fabric.git development environment
+       Name: Org1MSP
+
+       # ID to load the MSP definition as
+       ID: Org1MSP
+
+       MSPDir: ../organizations/peerOrganizations/org1.example.com/msp
+
+       # Policies defines the set of policies at this level of the config tree
+       # For organization policies, their canonical path is usually
+       #   /Channel/<Application|Orderer>/<OrgName>/<PolicyName>
+       Policies:
+           Readers:
+               Type: Signature
+               Rule: "OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')"
+           Writers:
+               Type: Signature
+               Rule: "OR('Org1MSP.admin', 'Org1MSP.client')"
+           Admins:
+               Type: Signature
+               Rule: "OR('Org1MSP.admin')"
+           Endorsement:
+               Type: Signature
+               Rule: "OR('Org1MSP.peer')"
 ```
- - &Org1
-        # DefaultOrg defines the organization which is used in the sampleconfig
-        # of the fabric.git development environment
-        Name: Org1MSP
-
-        # ID to load the MSP definition as
-        ID: Org1MSP
-
-        MSPDir: crypto-config/peerOrganizations/org1.example.com/msp
-
-        # Policies defines the set of policies at this level of the config tree
-        # For organization policies, their canonical path is usually
-        #   /Channel/<Application|Orderer>/<OrgName>/<PolicyName>
-        Policies:
-            Readers:
-                Type: Signature
-                Rule: "OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')"
-            Writers:
-                Type: Signature
-                Rule: "OR('Org1MSP.admin', 'Org1MSP.client')"
-            Admins:
-                Type: Signature
-                Rule: "OR('Org1MSP.admin')"
-            Endorsement:
-                Type: Signature
-                Rule: "OR('Org1MSP.peer')"
-```
+
 </details>
+  
+
+### Application and Roles Section
 
 The next example shows the `ImplicitMeta` policy type used in the `Application`
 section of the `configtx.yaml`. These set of policies lie on the
@@ -313,8 +259,9 @@ create.
 
 <details>
   <summary>
-    **Click here to see an example of ImplicitMeta policies**
+    <strong>Click here to see an example of ImplicitMeta policies</strong>
   </summary>
+
 ```
 ################################################################################
 #
@@ -350,6 +297,7 @@ Application: &ApplicationDefaults
             Type: ImplicitMeta
             Rule: "MAJORITY Endorsement"
 ```
+
 </details>
 
 ## Fabric chaincode lifecycle
@@ -423,7 +371,7 @@ If an endorsement policy is not explicitly specified during the approval step,
 the default `Endorsement` policy `"MAJORITY Endorsement"` is used which means
 that a majority of the peers belonging to the different channel members
 (organizations) need to execute and validate a transaction against the chaincode
-in order for the transaction to be considered valid.  This default policy allows
+in order for the transaction to be considered valid. This default policy allows
 organizations that join the channel to become automatically added to the chaincode
 endorsement policy. If you don't want to use the default endorsement
 policy, use the Signature policy format to specify a more complex endorsement
@@ -436,8 +384,8 @@ IDs, but they are more versatile because they can include a wide range of
 properties of an actor’s identity, such as the actor’s organization,
 organizational unit, role or even the actor’s specific identity. When we talk
 about principals, they are the properties which determine their permissions.
-Principals are described as 'MSP.ROLE', where `MSP` represents the required MSP
-ID (the organization),  and `ROLE` represents one of the four accepted roles:
+Principals are described as `'MSP.ROLE'`, where `MSP` represents the required MSP
+ID (the organization), and `ROLE` represents one of the four accepted roles:
 Member, Admin, Client, and Peer. A role is associated to an identity when a user
 enrolls with a CA. You can customize the list of roles available on your Fabric
 CA.
@@ -479,14 +427,11 @@ developing, and testing your blockchain, but they are meant to be customized
 in a production environment. You should be aware of the default policies
 in the `configtx.yaml` file. Channel configuration policies can be extended
 with arbitrary verbs, beyond the default `Readers, Writers, Admins` in
-`configtx.yaml`. The orderer system and application channels are overridden by
-issuing a config update when you override the default policies by editing the
-`configtx.yaml` for the orderer system channel or the `configtx.yaml` for a
-specific channel.
-
-See the topic on
-[Updating a channel configuration](../config_update.html#updating-a-channel-configuration)
-for more information.
+`configtx.yaml`.
+
+For more information on overriding policy definitions when creating a channel, check out [Channel policies](../create_channel/channel_policies.html) and [Creating a channel without a system channel](../create_channel/create_channel_participation.html).
+
+For information about how to update a channel, check out [Updating a channel configuration](../config_update.html#updating-a-channel-configuration) for more information.
 
 <!--- Licensed under Creative Commons Attribution 4.0 International License
 https://creativecommons.org/licenses/by/4.0/) -->

shimos avatar Sep 28 '23 01:09 shimos