Hyperledger Fabric 文档翻译之MSP

版权声明:本文为博主原创文章,欢迎转载;转载请注明来自 瓜哥:D:http://www.jianshu.com/p/980c3ce928dc

MSP 是 Hyperledger Fabric 项目里面比较抽象难以理解的部分。而这篇文档是1.0里面唯一对于 MSP 服务有详细说明的部分,但是里面的文字又写得很拗口难以理解。我试着把它翻译出来,希望能够帮助到看到的各位同行~

同样感谢我队里的小伙伴 九歌 对这篇文档翻译的贡献,他负责了这文章的部分翻译。

Membership Service Providers (MSP)

这个文档用于提供建立 MSP 以及 MSP 最佳实践的细节

Membership service provider (MSP)是一个组件,其目标是提供一个成员操作体系的抽象。

特别地,MSP 抽象了所有分发和验证证书、用户授权工作背后的密码机制和协议。一个MSP可能会定义他们自己的身份概念,同时也会定义一些规则,通过这些规则MSP可以实现身份管理(身份确认)和身份证明的功能。

一个 Hyperledger Fabric 的网络能够被一个或者多个 MSP 管理。这样就能够提供成员操作的模块化特性以及在不同的成员标准和体系之间的协作性。

在接下来的文件中我们会详细讲述 MSP 建立,MSP 的运行实际上由 Hyperledger Fabric 做支持。接着会讨论一个 MSP 的最佳实践。

MSP Configuration (MSP配置)

为了实例化一个 MSP,它的部署必须被精确到每一个 peer 和 orderer 节点本地上(为了使得peer和orderer的签名生效)。同时它也要被部署到 channel 上使得对于所有的channel成员来说 peer,orderer 和client的身份确认、各自的签名确认(授权)都可以生效。

首先,对于每一个 MSP,为了在网络中用到它,MSP都必须要有一个名字(例如说 msp1,org2 和 org3.divA)。在这些名字下MSP的成员规则代表了一个组合体,组织和组织部门,而这些名字这回在channel中被用到。也可以把他们叫做 MSP 身份或者 MSP ID。每一个 MSP 实例都只能拥有一个 MSP 身份。例如,假设两个 MSP 实例在系统 channel 中被发现有同样的身份,那么不管是 genesis 还是 orderer 的建立都会失败。

在MSP的默认运行例子中,为了让身份确认和签名核实成功,一系列的MSP的参数都要被确认。这些参数是由RFC5280所指明的, 并且包括:

  • A list of self-signed (X.509) certificates to constitute the root of trust
  • A list of X.509 certificates to represent intermediate CAs this provider considers for certificate validation; these certificates ought to be certified by exactly one of the certificates in the root of trust; intermediate CAs are optional parameters
  • A list of X.509 certificates with a verifiable certificate path to exactly one of the certificates of the root of trust to represent the administrators of this MSP; owners of these certificates are authorized to request changes to this MSP configuration (e.g. root CAs, intermediate CAs)
  • A list of Organizational Units that valid members of this MSP should include in their X.509 certificate; this is an optional configuration parameter, used when, e.g., multiple organisations leverage the same root of trust, and intermediate CAs, and have reserved an OU field for their members
  • A list of certificate revocation lists (CRLs) each corresponding to exactly one of the listed (intermediate or root) MSP Certificate Authorities; this is an optional parameter
  • A list of self-signed (X.509) certificates to constitute the TLS root of trust for TLS certificate.
  • A list of X.509 certificates to represent intermediate TLS CAs this provider considers; these certificates ought to be certified by exactly one of the certificates in the TLS root of trust; intermediate CAs are optional parameters.

接下来的几个情况中,这个 MSP 实例都要满足拥有有效的的身份的条件。

  • 他们持有 X.509 证书,同时有能证实的,通向唯一的信任证书根目录的路径
  • 他们没有被包含在任何的CRL中
  • 他们在 OU 中列出一个或多个 MSP 部署的组织单元的 X.509 证书结构

获取更多在现有的MSP执行中身份确认的信息请点击
MSP Identity Validity Rules

除了相关参数的核实,为了让MSP能启动它自己实例化签名和授权过的节点,还有下面的这些需要确认

  • 节点用来签名的 key(现在只有 ECDSA key 被支持)
  • 节点的 X.509 证书,这是在这个 MSP 的验证参数下有效的身份

有一个重要的点需要注意,就是 MSP 的身份永远都不会失效;只把他们加入到合适的 CRLs 能够把这些身份合法地取消。另外,现在还没有对强制取消TLS证书的操作作支持。

How to generate MSP certificates and their signing keys?(如何生成 MSP 证书和签名钥匙?)

为了满足 MSP 的配置,应用可以使用 Openssl 来生成 X.509 证书。 我们强调在 Hyperledger Fabric 没有对证书包括 RSA key 作任何支持。

任意一个人可以使用 cryptogen 工具,它的使用在Getting Started中已经被解释过。

Hyperledger Fabric CA 同样可以被用到生成用来配置一个MSP的 key 和证书。

MSP setup on the peer & orderer side(在 peer&orderer 一边建立 MSP)

建立区域 MSP(peer端或者orderer端),管理员需要创建一个文件夹(例如——$MY_PATH/mspconfig),这个文件夹下有六个子文件夹和一个文件:

  1. 文件夹 admincerts 用来包含 PEM 文件,每个 PEM 文件会被绑定到一个管理员证书上。
  2. 文件夹 cacerts 用来包含 PEM 文件, 每个 PEM 文件都会被绑定到 CA 的根证书上。
  3. (可选)文件夹 intermediatecerts 用来包含 PEM 文件,每个 PEM 文件都绑定到一个 intermediate CA 证书上。
  4. (可选)一个文件 config.yaml 用来包含已经考虑过的 OU 的信息;他们会在之后被定义为一组在被称为 OrganizationalUnitIdentifiers 的yaml数组中的实体,也即 <Certificate, OrganizationalUnitIdentifier>,其中的 Certificate 代表着到证书机构的证书(root 的或者 intermediate 的)的相对路径。这些证书是被认为是组织单元(organizational unit 也就是 OU)中的已证明成员说拥有的。而 *OrganizationalUnitIdentifier * 代表着理应在 X.509 证书中的 OU-field 中出现的实际字符串。
  5. (可选)一个文件夹,用来包括CRL。
  6. 文件夹 keystore 用来包含一个 PEM 文件,这个 PEM 文件附带有节点的签名 key;我们再次强调我们不支持 RSA key。 =。=
  7. 文件夹 signcerts 用来包含 PEM 文件, 这个 PEM 文件包含节点的 X.509 证书。
  8. (可选)文件夹 tlscacerts 用来包含 PEM 文件, 这些 PEM 文件被绑定在 TLS CA 的 根证书上。
  9. (可选)文件夹 tlsintermediatecerts 用来包含 PEM 文件,这些 PEM 文件绑定在 intermediate TLS CA 的证书上。

在节点的配置文件(peer 是 core.yaml,orderer 是 orderer.yaml)中,到mspconfig的文件夹的路径和节点的 MSP 身份需要被确认。这个路径应该是 FABRIC_CFG_PATH 相关的,并且应该为 peer 提供参数 mspConfigPath 的值,为 orderer 提供 LocalMSPDir 的值。节点的 MSP 身份就是:peer——参数 localMspId 的值,orderer——参数LocalMSPID的值。这些变量可以被覆盖,通过在环境中用 peer 或者 orderer 的 CORE 前缀和 ORDERER 前缀。注意到对于orderer的建立,orderer需要已经生成好的系统 channel 的 genesis block。 在这个 block 中 MSP 配置的需求细节将在下一节讲到。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,552评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,666评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,519评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,180评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,205评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,344评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,781评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,449评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,635评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,467评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,515评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,217评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,775评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,851评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,084评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,637评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,204评论 2 341

推荐阅读更多精彩内容

  • 引言 关于开发证书配置(Certificates & Identifiers & Provisioning Pro...
    Damen_9527阅读 9,350评论 0 4
  • 克劳德·莫奈(Claude Monet,1840年11月14日-1926年12月5日),法国画家,印象派代表人物和...
    huziniang_2004阅读 175评论 0 0
  • 我也希望自己是一颗星星,如果我会发光,就不必害怕黑暗。如果我自己是那么美好,那么一切恐惧就可以烟消云散。 —...
    绾心阅读 358评论 0 1
  • 今天下午,我和爸爸还有哥哥一起去植物园玩了。我们玩了过山车和太空漫步这两个游戏,因为时间紧,所以我们就玩了两...
    王星皓阅读 190评论 0 1