Hyperledger fabric 背书政策不适用于';行不通

Hyperledger fabric 背书政策不适用于';行不通,hyperledger-fabric,hyperledger-composer,Hyperledger Fabric,Hyperledger Composer,当我使用admin时,部署一个网络,其中一个组织包括三个对等方。 我的approval-policy.json如下所示,但它不起作用 { "identities": [ { "role": { "name": "member", "mspId": "Org1MSP" } } ], "policy": { "1-of

当我使用admin时,部署一个网络,其中一个组织包括三个对等方。 我的approval-policy.json如下所示,但它不起作用

{
    "identities": [
        {
            "role": {
                "name": "member",
                "mspId": "Org1MSP"
            }
        }
    ],
    "policy": {
        "1-of": [
            {
                "signed-by": 0
            }      
       ]
    }
}
1.如何设置背书政策? 2.我认为只有认可的同级人才是同级人才,“会员”或“管理员”是什么意思


因此,我想让所有三个对等点都成为认可对等点,如何配置它?

就让JSON策略文件工作而言,这应该做到:

{
"identities": [
    {
        "role": {
            "name": "member",
            "mspId": "Org1MSP"
        }
    }
],
"policy": {
            "signed-by": 0
        }      
}
策略的JSON定义为


背书签名是针对每个组织的,因此,如果您有多个组织,则只需在背书策略中添加其他“身份”。

要使JSON策略文件正常工作,应该这样做:

{
"identities": [
    {
        "role": {
            "name": "member",
            "mspId": "Org1MSP"
        }
    }
],
"policy": {
            "signed-by": 0
        }      
}
策略的JSON定义为


签注签名是针对每个组织的,因此,如果您有多个组织,您只需在签注政策中添加其他“身份”。

让我们从处理您的评论开始:


不,这应该是一个使用问题。我在一个组织中有三个同级成员。我需要三个同龄人的签名。当我使用docker日志dev peer*。。。命令查看每个对等容器中的日志。lt通过随机函数获得不同的值。因此,事务执行三次。现在,我只想交易不能被提交。背书政策应该是什么

您定义的策略是:

"policy": {
    "1-of": [
        {
            "signed-by": 0
        }      
   ]
}
其中
“signed by”:0
是必须满足此规则的MSP id的索引。即,一个对等方的单一背书基本上满足背书政策,而您需要确保所有执行一致,因此在您的情况下,您希望有多个对等方来背书您的交易,因此您需要:

{
    "identities": [
        {
            "role": {
                "name": "member",
                "mspId": "Org1MSP"
            }
        }
    ],
    "policy": {
        "3-of": [
            {
                "signed-by": 0
            },
            {
                "signed-by": 0
            },
            {
                "signed-by": 0
            },
        ]
    }
} 
这意味着Org1MSP的所有3个对等方都必须签署背书才能批准交易,而由于您使用的是随机函数,因此交易将失败

1.如何设置背书政策

您可以在实例化链码时提供背书策略,语法非常简单:

AND("Org1MSP.member")
基本上说,您至少需要
Org1MSP
的有效会员的一次背书

  • 我认为只有认可的同级人才是同级人才,“会员”或“管理员”是什么意思
  • member
    admin
    是一种原则,当需要特权实体(
    admin
    )或简单实体(
    member
    )背书或签名时,它们实际上为您提供了控制权和能力

    所以,我想让所有三个对等点都成为支持对等点,如何配置它


    背书对等方是安装了链码的对等方,因此能够调用它并与之交互,无需明确配置即可使对等方成为背书对等方,您只需在其上安装链码即可。

    让我们从处理您的评论开始:


    不,这应该是一个使用问题。我在一个组织中有三个同级成员。我需要三个同龄人的签名。当我使用docker日志dev peer*。。。命令查看每个对等容器中的日志。lt通过随机函数获得不同的值。因此,事务执行三次。现在,我只想交易不能被提交。背书政策应该是什么

    您定义的策略是:

    "policy": {
        "1-of": [
            {
                "signed-by": 0
            }      
       ]
    }
    
    其中
    “signed by”:0
    是必须满足此规则的MSP id的索引。即,一个对等方的单一背书基本上满足背书政策,而您需要确保所有执行一致,因此在您的情况下,您希望有多个对等方来背书您的交易,因此您需要:

    {
        "identities": [
            {
                "role": {
                    "name": "member",
                    "mspId": "Org1MSP"
                }
            }
        ],
        "policy": {
            "3-of": [
                {
                    "signed-by": 0
                },
                {
                    "signed-by": 0
                },
                {
                    "signed-by": 0
                },
            ]
        }
    } 
    
    这意味着Org1MSP的所有3个对等方都必须签署背书才能批准交易,而由于您使用的是随机函数,因此交易将失败

    1.如何设置背书政策

    您可以在实例化链码时提供背书策略,语法非常简单:

    AND("Org1MSP.member")
    
    基本上说,您至少需要
    Org1MSP
    的有效会员的一次背书

  • 我认为只有认可的同级人才是同级人才,“会员”或“管理员”是什么意思
  • member
    admin
    是一种原则,当需要特权实体(
    admin
    )或简单实体(
    member
    )背书或签名时,它们实际上为您提供了控制权和能力

    所以,我想让所有三个对等点都成为支持对等点,如何配置它


    背书对等方是安装了链码的对等方,因此能够调用它并与之交互,无需显式配置即可使对等方成为背书对等方,您只需在其上安装链码。

    Composer将事务发送到connection.json文档中的所有对等方。看起来所有人都是根据你在日志中看到的内容进行评估的,但是因为背书只需要1,所以我想只有第一个响应的人才真正写入分类账。(使用每个connection.json中定义的单个对等点设置3个业务网卡-然后从每个对等点检索数据应该可以确认这一点。)

    我认为,要求同一组织的3名同侪签署(签名)交易是不寻常的,更典型的情况是您之前尝试过的两名同侪签署(签名)交易

    当前,此处显示的策略有一个标识数组,其中包含1个元素,该元素是角色。下面是Fabric Node SDK文档的两个链接,我认为您可以指定一个特定的标识,而不是角色。因此,如果您真的希望拥有来自同一组织的3个对等方,您将在身份数组中拥有对等方(来自CA)的3个特定身份,并且在策略部分中,您将拥有:

        "policy": {
        "3-of": [
            {
                "signed-by": 0
            },
            {
                "signed-by": 1
            },
            {
                "signed-by": 2
            }
        ]
    }