/hyperledger/fabric-ca/cmd/fabric-ca-client go get命令会自动获取源码并编译至$GOPATH/bin,我的目录是~/go/bin,目录下出现编译好的二进制可执行文件...2.手动编译生成 既然直接从github下载的版本出现错误,可以选择手动去编译生成指定版本的fabric-ca-server。.../server/fabric-ca-server目录中会生成CA配置文件,证书私钥,数据库文件等(这些是在CA容器中生成并映射到外部的),并且开始监听端口。...可以发现~/ca目录下生成了一个fabric-ca-client-config.yaml配置文件,以及msp目录,包含管理员的证书和私钥。...然后在命令行中初始化和启动CA服务器; 另一种方法是在docker容器中运行fabric-ca镜像,镜像中包含编译好的可执行文件,镜像可以从Docker Hub直接下载,也可以在fabric-ca目录下利用
下面我们就试着讲Fabric CA集成到整个Fabric网络中,并用CA Client生成新用户,最终使用新用户调用ChainCode,验证新用户的合法性。...文件,增加CA容器 我们就以给org1这个组织增加CA容器为例,打开e2e_cli文件夹中的docker-compose-cli.yaml ,增加以下内容: ca0: image: hyperledger...${PRIVATE_KEY}代替,这是因为每次network_setup的时候,私钥的名字是不一样的,所以需要从启动脚本中传入。...连接到CA Server,并生成相应的文件。...Client在生成的时候并没有这个文件夹,所以我们需要从signcerts这个文件夹中拷贝一个过来,运行以下命令: mkdir devin/msp/admincerts cp devin/msp/signcerts
一、获取工具cryptogen和configtxgen 下载cryptogen和configtxgen这两个工具的方法在first-network示例中已经介绍,除了这种从网络直接下载的方法,还可以在fabric...该文件位于CA节点的文件系统中,需要在启动CA节点后进入容器内部: docker exec -it ca_peerOrg1 // 假设此时还未修改组织名称 cat /etc/hyperledger...这样,新的ca配置文件就在容器外部生成了,在下一步骤会将其映射到容器内部,这样可以覆盖自动生成的配置文件,从而达到修改的目的。.../ca目录下的私钥文件名称,其中orgname是设置的新组织名称。...这一步是因为我们重新生成了msp目录crypto-config,所以私钥路径也发生了改变,不重新设置的话CA节点会因为找不到对应文件而启动失败。 3.设置CA服务器配置文件。
1.生成公私钥和证书 Fabric中有两种类型的公私钥和证书,一种是给节点之前通讯安全而准备的TLS证书,另一种是用户登录和权限控制的用户证书。...而Template Count=2是说我们要生成2套公私钥和证书,一套是peer0.org2的,还有一套是peer1.org2的。最后Users....1.3生成公私钥和证书 我们配置好crypto-config.yaml文件后,就可以用cryptogen去读取该文件,并生成对应的公私钥和证书了: cd examples/e2e_cli/ ../...../crypto-config.yaml 生成的文件都保存到crypto-config文件夹,我们可以进入该文件夹查看生成了哪些文件: tree crypto-config 2.生成创世区块和Channel...文件 前面对节点和用户的公私钥以及证书,还有创世区块都生成完毕,接下来我们就可以配置docker-compose的yaml文件,启动Fabric的Docker环境了。
二、Hyperledger Fabric的相关组件 Hyperledger Fabric主要由以下几个组件构成,fabric-ca, fabric-peer, fabric-orderer, fabric-kafaka...,包括查询,更新等 四、Hyperledger Fabric的交易流程图 1.Client sdk生成交易请求,并发送到足够多的背书节点。...peer节点 5.Peer节点检查区块中的交易,并生成最终的区块 五、Hyperledger Fabric的常见问题 a)区块结构以及交易信息 下图主要是列出了Hyperledger中区块链中单个区块的结构...admincerts存放着组织管理员的证书,拥有组织管理员证书对应的私钥文件的实体,可以发起一些特殊交易,比如创建通道,加入通道等。...keystore存放着这个实体的私钥文件,这个实体可以用这个私钥对交易进行签名。
Hyperledger Fabric 1.0设计的几个特点: 特点 说明 模块插件化 1.很多的功能模块(如CA模块、共识算法、状态数据库存储、ESCC、VSCC、BCCSP等)都是可插拔的,系统提供了通用的接口和默认的实现...2.这些模块也可以通过需求进行扩展,集成到系统中。 充分利用容器技术 1.不仅节点使用容器做为运行环境,链码也默认运行在安全的容器中。...应用程序角度 1.身份管理 用户注册和登录系统后,获取到用户注册证书(ECert),其他所有的操作都需要与用户证书关联的私钥进行签名。...3.交易管理 账本数据只能通过交易执行才能更新,应用程序通过交易管理提交交易提案(Proposal)并获取到交易背书(Endorsement)以后,再给排序服务节点提交交易,然后打包生成区块。...Fabric采用Docker管理普通的链码,提供安全的沙箱环境和镜像文件仓库。 其好处是容易支持多种语言的链码,扩展性很好。
/byfn.sh -m up 3.关闭网络 该命令会删除所有容器、生成的配置文件以及chaincode镜像。 ....一.生成配置文件 1.生成证书 当前路径位于first-network目录下,运行以下命令会根据crypto-config.yaml配置文件生成crypto-config目录(MSP目录,包含成员的证书和私钥...首先进入cli容器中,之后的所有命令都是在该容器内部进行的: docker exec -it cli bash 执行以下命令创建通道,其中--cafile参数制定了orderer节点的TLS根CA证书的路径.../go/chaincode_example02.go 执行命令将链码文件安装到指定peer节点的文件系统中(这里只在peer0.example.org1.com安装了): peer chaincode...'{"Args":["query","a"]}' 查询结果为: Query Result:100 7.交易 从a账户转移10个数额到b账户,该步会发送交易到orderer节点,在区块链中添加新的区块,并更新至状态数据库
organizations 文件夹中的的加密材料。...每个节点,网络管理员和用户提交的交易需要具有公共证书和私钥以验证其身份。...测试网络脚本还提供了使用证书颁发机构(CA)的网络的启动选项。在网络中每个组织操作一个CA(或多个中间CA)来创建属于他们的组织身份,所有由该组织运行的CA创建的身份享有相同的组织信任根源。.../network.sh up -ca 执行命令成功后,通过打印的docker容器可以看到启动了三个CA,每个网络中的组织一个: 可以通过 tree 命令来查看Org1管理员用户的MSP文件夹结构和文件...,keystore 文件夹中存放着私钥。
证书生成 证书认证是超级账本中权限管理体系的最基础的机制,而所有证书的生成超级账本提供了一个工具cryptogen用于根据配置文件生成一套证书,并且将这些证书组织为peer和orderer两个核心组件可以直接使用的形式...其中域名的信息是为了生成tls证书,不用太关注。 生成工具 将上面的配置文件另存为crypto-config.yaml,然后运行 ./cryptogen generate --config=....存放在Fabric目录的build/bin目录下 参数—config代表了配置文件的路径 参数—output代表了生成的一套证书存放的位置 生成结果 命令运行后生成的目录结构如下 其中...ordererOrganizations目录对应的是配置文件中的OrdererOrgs一节,而peerOrganizations目录对应的是PeerOrgs一节。...每一个组织一般有这些目录 Ca 存放了一个功能性证书的根证书,和它对应的私钥。这个证书用于签发组织内所有非tls证书。
,生成数字证书来标识和管理成员的身份。...证书类型 每个MSP只有一个根CA证书,从根CA证书到最终用户证书形成一个证书信任链(chain of trust) 根CA证书(Root Certifiate):自签名的证书,用根CA签名生成的证书可以签发新的证书...,形成树型结构 (必须配置) 中间CA证书(Intermediate Certificate):由其他CA证书签发的证书,可以利用自己的私钥签发新的证书 (可选配置) MSP管理员证书...(必须配置) MSP目录 分析fabric示例中的crypto-config目录,网络中共有1个orderer节点和4个peer节点(分为两个组织org1,org2),该目录利用二进制工具cryptogen...# TLS根CA证书 │ └── tlsca.org1.example.com-cert.pem ├── peers # peer节点的MSP配置私钥
Bob生成密钥对 要使用公钥密码进行通信,首先需要生成密钥对。Bob生成了一对公钥和私钥,并将私钥自行妥善保管。在这里,密钥对是由Bob自己生成的,也可以由认证机构代为生成。...纸质证书只要撕毁就可以作废了,但这里的证书是数字信息,即便从仓库中删除也无法作废,因为用户会保存证书的副本,但认证机构又不能人侵用户的电脑将副本删除。...fabric-ca-client 生成 bin 目录, 目录中包含 fabric-ca-client 与 fabric-ca-server 两个可执行文件 2.4 初始化&快速启动 返回至用户目录 1...# 包括实例的名称、签名私钥文件、身份验证证书和证书链文件;这些私钥和证书文件会用来作为生成ECert、TCert的根证书 ca: name: # CA服务名称....此时, 服务端将按照指定的usrfilter从LDAP获取对应的用户, 利用其唯一识别名(distinguidhed name)和给定的密码进行验证.
,如6中红色字体中trustStore的生成过程就是把从keyStore导出的公钥证书导入到trustStore中。...导出公钥证书,把导出的公钥证书导入到trustStore中,就生成了trustStore 5,怎么从keyStore中导出证书和公钥密钥?...jks、keyStore的文件 2.生成证书请求文件 根据client密钥对生成证书请求文件,这个文件client.csr用于CA签名 keytool -keystore clientkeystore...,可以随便起个名字,clientkeystore 是2中生成的keystore 文件。...5,生成trustStore文件 把4生成的公钥证书icecert.cer导入到truststore中 keytool -import -alias icesslkey -file icecert.cer
2.编写package.json并下载依赖模块 我们首先在当前用户的根目录建立一个nodeTest的文件夹,用于存放我们关于node的相关项目文件,然后在其中新建一个包配置文件,package.json...mkdir ~/nodeTest cd ~/nodeTest vi package.json 在这个文件中,我们可以定义很多项目相关的属性,这篇博客详细的介绍了每个属性有什么用,大家可以参考:http...Fabric CA Client和Fabric Node SDK的Client,虽然本示例中没用到CA Client,但是以后会用到,所以先放在这里了。...}; var channel = {}; var client = null; const getKeyFilesInDir = (dir) => { //该函数用于找到keystore目录下的私钥文件的路径...null; var targets = []; var tx_id = null; const getKeyFilesInDir = (dir) => { //该函数用于找到keystore目录下的私钥文件的路径
区块链网络中首先每一个节点和采访用户首先都是本地MSP, 可配置信任的成员。 Peer节点,orderer排序节点都可配置本地MSP, 即该节点的采访权限。...我们看下官方例子first-network(BYFN)中组织org1.example.com中的结构. ? ? 根CA, 中间CA 在msp文件夹下必须要有一个X.509格式的信任的CA证书..../crypto-config.yaml 不同节点生成的CA都是不一样的。 组织单元OU 在/msp/config.yaml中配置 ? 这里定义了ClientOU和PeerOU?...Revoked取消的证书 暂时没见过这个文件夹, 应该放一些过期或取消的证书 节点身份 通常放的是节点的私钥 ?...超级记账本的核心概念我们差不多学完了,为了后面更好的理解Hyperledger Fabric众多的配置文件,再学多两章吧, 磨刀不误砍柴工。
发送者账户配置 BCOS的发送者是bcos_sender,故将bactool/dist/conf目录下的私钥文件配置到conf/accounts/bcos_sender中 # 拷贝私钥文件 [jason...收款证明能够被付款人用来获取接收人区块链上的等量价值的数量资产或触发其他事件。...锁定自己的1个BTC资产,并设置一个较长的锁定时间 t1, 并设置了获取该BTC的一个条件:如果Bob能够提供h的原始值s就可以得到该BTC Bob观察到Alice合约中锁定了一个BTC, 然后Bob锁定自己的...20个ETH资产,并设置一个相对较短的锁定时间t2, t2 < t1, Bob也设置了获取条件:如果Alice能提供h的原始值s就可以获取20个ETH Alice将自己最初生成的字符串s发送到Bob的合约里取得了...20个ETH Bob观察到步骤5中Alice的s值,将其发送给Alice的合约成功获取1个BTC 至此 Alice 和 Bob 完成了资产的交换 在WeCross的技术方案中,以上环节都是在提案发起后
API 证书 为了保证资金敏感数据的安全性,确保我们业务中的资金往来交易万无一失。目前微信支付第三方签发的权威的 CA 证书(API 证书)中提供的私钥来进行签名。...API证书说明 设置后找到zip压缩包解压,里面有很多文件,对于 JAVA 开发来说只需要关注apiclient_cert.p12这个证书文件就行了,它包含了公私钥,我们需要把它放在服务端并利用 Java...解析.p12文件获取公钥私钥。...Spring Security 教程中 JWT 用的公私钥提取方法的修改版本,你可以对比下不同之处。...生成签名 然后我们使用商户私钥对按照上面格式的待签名串进行 SHA256 with RSA 签名,并对签名结果进行Base64 编码得到签名值。
我们用 Go 构建的二进制文件中默认包含了很多有用的信息。...ELF 文件格式的结构和 Linux 内核源码中对它的定义。...具体实现 在前面的内容中,关于如何使用 readelf 和 objdump 命令获取二进制文件的的 Go 版本和 Module 信息就已经涉及到了其具体的原理。这里我来介绍下 Go 代码的实现。...mod = mod[16 : len(mod)-16] } else { mod = "" } 总结 我在这篇文章中分享了如何从 Go 的二进制文件中获取构建它时所用的 Go 版本及它依赖的模块信息...另外,你可能会好奇从 Go 的二进制文件获取这些信息有什么作用。
(); // 获取生成的公钥 PublicKey publicKey = keyPair.getPublic(); // 获取私钥的编码字节数组...; 公钥加密和公钥解密 (行不通) 保存公钥和私钥 生成RSA非对称加密算法的密钥对,并将生成的公钥和私钥保存在本地文件中。...PrivateKey readPrivateKeyFromFile(String algorithm, String filePath) throws Exception { // 从文件中读取私钥字符串...PKCS8EncodedKeySpec(Base64.decode(privateKeyString)); return keyFactory.generatePrivate(spec); } 看下生成的文件中的内容...PrivateKey readPrivateKeyFromFile(String algorithm, String filePath) throws Exception { // 从文件中读取私钥字符串
token 5、服务端利用公钥解读jwt签名,判断签名有效后,从Payload中获取用户信息 6、处理请求,返回响应结果 因为JWT签发的token中已经包含了用户的身份信息,并且每次请求都会携带,这样服务的就无需保存用户信息...java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; public class RsaUtils { /** * 从文件中读取公钥...byte[] bytes = readFile(filename); return getPublicKey(bytes); } /** * 从文件中读取密钥...,并写入指定文件 * * @param publicKeyFilename 公钥文件路径 * @param privateKeyFilename 私钥文件路径 * @param secret 生成密钥的密文...再获取 生成之前把@Before注释掉!
领取专属 10元无门槛券
手把手带您无忧上云