>[info] 原文地址:https://docs.google.com/document/d/1TRYHcaT8yMn8MZlDtreqzkDcXx0WI50AV2JpAcvAM5w
COP即是Hyperledger Fabric v1.0版本中的Membership服务的名字。COP不是缩写词,取名为“COP”是因为如下2点:
* COP为Hyperledger Fabric提供了类似于警察的安全功能。它就是“fabric的警察”。
* COP这个单词很短,相对于“Membership Services v1.0”来说,它更易读写。
COP的主要目标是:
1. 使其尽可能插件化并可消耗,应能够清晰的讲解如何完整的实现你自己的COP,或者替换默认实现的某些部分。比如,你可能使用自己的CA来生成ECerts,但对于不可链接性和访问控制的属性,依然使用TCerts。换句话说,你可以选择使用所有,部分,或者完全不用COP提供的功能。
2. 不重复造轮子。比如,COP的默认实现会使用CFSSL( 参见https://github.com/cloudflare/cfssl )来生成ECerts,同时也支持PKCS11,并且通过一个数据库实现高可用性【HA】。产生TCerts的代码将会被重新打包,但基本上还和以前一致。
3. 支持一种可能有多个信任根源的分散模型,详见[FAB-360](https://jira.hyperledger.org/browse/FAB-360)
4. 在可能的地方支持标准协议。比如,使用ACME协议来发布基于服务器的证书。
为了完成这些目标,COP被编译为一个可复用的Go库。cop可执行文件则是这个Go库的一层很薄的封装。
这篇文档的剩余部分分成3块:
* COP 命令行:描述cop可执行文件的用法
* COP APIs:描述COP库提供的APIs,或者指引你在哪里可以找到它们。
* 端对端流程的用例:展示了CLI命令行和APIs如何应用到各种场景中,包括启动。