问题标签 [hyperledger-fabric-ca]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
69 浏览

hyperledger-fabric - Hyperledger Fabric:我想测试Anchor Peer的功能,怎么做?

我想了解和测试 Hyperledger Fabric 网络中 Anchor Peer 的功能。

根据文档

Anchor Peer:用于发起来自不同组织的 Peer 之间的 gossip 通信。锚点对等点充当同一通道上另一个组织对等点的入口点,以与锚点对等点组织中的每个对等点进行通信。

这是否意味着,如果我关闭 ORG2 的 Anchor 对等点,则 ORG2 对等点的交易将不会更新?

我实际上已经尝试过这样做。我有一个通道 mychannel ,其中来自 ORG1 的 2 个对等方和 ORG2 的 2 个对等方参与。其中两个 ORG 的 peer0 都是 Anchor peers。

我关闭了两个 Anchor 对等点并在两个组织的 peer1 上进行了交易,我预计这些更改可能不会反映在其他 ORG 中,但它确实......

提前致谢!

0 投票
1 回答
64 浏览

hyperledger-fabric - 如何根据参与者更改命名空间?

我的链码中有 2 个参与者和 1 个交易来更改 1 个资产的所有权。
.cto文件

我面临的问题是,当我在作曲家操场上测试它时,我可以像这样编辑事务

“所有者”:“资源:org.example.basic。买家#buyer1”,“所有者”:“资源:org.example.basic。卖家#seller1”

如果我按照这种方式,链码工作正常,但是
当我生成它的角度骨架并赋予价值时,它看起来像这样

"owner": "resource: org.example.basic.User # buyer1 " 即使在 API 中,它也占用了User

如何确保它发送正确的命名空间或正确的用户?

0 投票
1 回答
400 浏览

hyperledger-fabric - 频道内的锚点配置

  1. 我们是否应该只将锚节点添加到通道以启用跨组织通信?
  2. 如果是,根据我的理解,链码仅应用于通道级别,这是否意味着不在通道中的任何对等点都没有正确的链码?
  3. 如果我要将所有对等点添加到一个频道,那么是否有必要取消任何锚点对等点?
0 投票
1 回答
1345 浏览

hyperledger-fabric-ca - 如何在fabric-ca中设置tls

我想在 fabric-ca 中启用 tls,所以:

步骤:我修改了 fabric-ca-clien-config.yaml

但是当我注册时:

它出现

ca-server 日志是“

所以我想知道如何使用fabric-ca设置tls?

0 投票
1 回答
1314 浏览

hyperledger-fabric - Hyperledger Fabric 中的用户注册和登录

我正在做一个需要用户注册和用户登录功能的项目。我需要一些建议。完成这项任务的更好方法是什么?

A.)老式电子邮件和密码或
B.)使用公钥和私钥?

我从选项 B 中了解到的是,我们需要从 注册CA用户Fabric-SDK。一旦用户注册完成,我们就可以生成一个独特的,password-phrase就像在Meta-Mask. 我们可以将该用户信息与其username(fabric 中的默认用户名是user1, user2)一起存储。在password-phrase用户登录期间,它将询问用户的私钥或为其帐户生成的唯一密码短语。证书将存储在hfc-keystore(Hyperledger 结构中使用的默认目录)。每当该用户执行交易时akshay.sood,我们都会将该用户的上下文设置为fabric-client(如果在这种情况下我错了,请更正)。

在这里,我的问题/查询是:

1.)您更喜欢什么(电子邮件/密码或私钥/公钥,为什么?)。
2.)如果您更喜欢第二种机制,那么您将如何保护存储在hfc-keystore目录中的用户密钥和证书。我的意思是它可以被黑客入侵,或者数据可以被黑客窃取。
3.) 如果用户的私钥/公钥和证书被错误地从hfc-dir.
4.) 你更喜欢使用password-phrase吗?如果没有,你更喜欢什么?

欢迎编辑。
如果您有任何建议/改进,请告诉我

0 投票
1 回答
161 浏览

node.js - Hyperledger Fabric first 网络的客户端应用程序

我已经按照第一个网络教程完成了构建网络和注册管理员和用户。但我无法从节点客户端 sdk 向网络发送事务或查询。有没有将第一个网络连接到节点应用程序的教程?

0 投票
2 回答
583 浏览

hyperledger-fabric - fabric-ca-server is not able to start with softhsm configuration

I have enabled the PKCS11 in fabric ca , but when starting the fabric-ca-server natively then throwing below error. Please note it works fine with default SW option.

  1. Checkout the fabric-ca v1.3.0
  2. Update BCCSP property as below

bccsp: default: PKCS11 pkcs11: library: /usr/local/lib/softhsm/libsofthsm2.so pin: daily123 label: org1label hash: SHA2 security: 256 filekeystore: # The directory used for the software file-based keystore keystore: msp/keystore

  1. Run server with command ./fabric-ca-server start -b admin:adminpw -d

Error2018/10/12 07:27:01 [INFO] Configuration file location: /opt/gopath/bin/fabric-ca-server-config.yaml 2018/10/12 07:27:01 [INFO] Starting server in home directory: /opt/gopath/bin 2018/10/12 07:27:01 [INFO] Server Version: 1.3.0 2018/10/12 07:27:01 [INFO] Server Levels: &{Identity:1 Affiliation:1 Certificate:1 Credential:1 RAInfo:1 Nonce:1} 2018/10/12 07:27:01 [DEBUG] Making server filenames absolute 2018/10/12 07:27:01 [DEBUG] Initializing default CA in directory /opt/gopath/bin 2018/10/12 07:27:01 [DEBUG] Init CA with home /opt/gopath/bin and config {Version:1.3.0 Cfg:{Identities:{AllowRemove:false} Affiliations:{AllowRemove:false}} CA:{Name: Keyfile: Certfile:ca-cert.pem Chainfile:ca-chain.pem} Signing:0xc4204ce7d0 CSR:{CN:fabric-ca-server Names:[{C:US ST:North Carolina L: O:Hyperledger OU:Fabric SerialNumber:}] Hosts:[safenet localhost] KeyRequest:0xc4204b1ac0 CA:0xc4204b1b40 SerialNumber:} Registry:{MaxEnrollments:-1 Identities:[{ Name:**** Pass:**** Type:client Affiliation: MaxEnrollments:0 Attrs:map[hf.Registrar.Roles:* hf.Registrar.DelegateRoles:* hf.Revoker:1 hf.IntermediateCA:1 hf.GenCRL:1 hf.Registrar.Attributes:* hf.AffiliationMgr:1] }]} Affiliations:map[org2:[department1] org1:[department1 department2]] LDAP:{ Enabled:false URL:ldap://****:****@<host>:<port>/<base> UserFilter:(uid=%s) GroupFilter:(memberUid=%s) Attribute:{[uid member] [{ }] map[groups:[{ }]]} TLS:{false [] { }} } DB:{ Type:sqlite3 Datasource:fabric-ca-server.db TLS:{false [] { }} } CSP:0xc4204de060 Client:<nil> Intermediate:{ParentServer:{ URL: CAName: } TLS:{Enabled:false CertFiles:[] Client:{KeyFile: CertFile:}} Enrollment:{ Name: Secret:**** CAName: AttrReqs:[] Profile: Label: CSR:<nil> Type:x509 }} CRL:{Expiry:24h0m0s} Idemix:{IssuerPublicKeyfile: IssuerSecretKeyfile: RevocationPublicKeyfile: RevocationPrivateKeyfile: RHPoolSize:1000 NonceExpiration:15s NonceSweepInterval:15m}} 2018/10/12 07:27:01 [DEBUG] CA Home Directory: /opt/gopath/bin 2018/10/12 07:27:01 [DEBUG] Checking configuration file version '1.3.0' against server version: '1.3.0' 2018/10/12 07:27:01 [DEBUG] Initializing BCCSP: &{ProviderName:PKCS11 SwOpts:<nil> PluginOpts:<nil>} 2018/10/12 07:27:01 [DEBUG] Closing server DBs Error: Failed to initialize BCCSP Factories: %!s(<nil>) Could not find defaultPKCS11BCCSP

0 投票
0 回答
135 浏览

express - Hyperledger Fabric Node SDK 和 CA 使用用户名和密码

我正在创建一个 Express.js REST 服务器,它可以调用和查询链代码(类似于 JavaScript fabcar 示例)。我想知道如何注册、注册和使用基于用户名和密码的网络用户,以便我可以允许用户使用他们的用户名和密码登录,并可以使用他们的网络用户调用链代码。

请告诉我我是否以错误的方式进行此操作,或者是否有配置可以实现此目的。

0 投票
1 回答
200 浏览

hyperledger-fabric - 来自不同主机的 Composer 请求标识

我正在按照本教程进行修改以从不同的主机添加组织。 https://medium.com/@mahoney_33893/hyperledger-composer-adding-another-organization-to-an-existing-running-multi-organization-fff5c8104a82

我正在尝试将新组织添加到来自不同主机(例如 Org3)的现有频道。我已经设法将来自 org3 的对等方加入到频道中。我有 org3 运行的 CA。

然后,我使用修改后的连接配置文件创建并导入了 PeerAdmin 卡。

但是,当我运行作曲家身份请求时,我收到错误消息错误:请求身份失败。尝试注册用户并返回证书时出错。错误:注册失败,出现错误 [[{"code":19,"message":"CA 'ca.org1.example.com' 不存在"}]]。请注意,为 org1 运行我的 ca 的端口是打开的。

然后,我尝试从我的 org3 中的 ca 获取日志,却发现(POST /api/v1/enroll 404 19 "CA 'ca.org1.example.com' 不存在)。为什么我的来自 org3 的 ca 需要与来自 org1 的 ca 通信?为什么它说我来自 org1 的 ca 实际上已启动并运行时不存在?非常感谢任何帮助

目前使用超级账本作曲家,超级账本结构 v 1.2.1。目前不使用 TLS。

}

我的 docker 创建 peer org3

0 投票
3 回答
2679 浏览

docker - 如何从 hyperledger 的 hfc-key-store 中的真实 fabric-ca-server 证书派生证书?

我想先解释一下我理解的正确,如果我是对的,请告诉我真相,如果我错了,也告诉我我错了。我的解释是关于超级账本网络和节点 sdk 如何协同工作以及节点 sdk 如何连接到超级账本网络。

开始吧。当我启动超级账本网络时,它所做的是在端口 7054 上创建 fabric-ca-server docker 映像和容器。在该端口上,它注册了一个用户“admin”,密码为:“adminpwd”。这意味着还制作了证书对于这个用户。现在假设我想从节点 sdk 创建一个新用户。我想我需要做的是拥有管理员证书,以便我可以签署我的请求并且网络知道我是管理员并且是网络。代码的作用是首先写入 getUserContext("admin"),如果找不到,则尝试使用用户名和密码(admin 和 adminpwd)进行注册。我的理解是 getUserContext 转到 hfc-key -store 文件夹并尝试为管理员查找证书。如果找不到,发生注册,然后发生 createUser 函数,它将从 fabric-ca-server docker 映像派生的证书放入 hfc-key-store,因此当管理员尝试再次注册时,它不必去 fabric-ca-server码头工人形象。到目前为止我是对的吗?我现在会问我的问题。

问题 :

  1. 我知道在尝试注册时,它不会从 fabric-ca-server docker 映像中获取管理员的原始证书,因为如果它被盗,整个网络就会搞砸。所以它所做的就是从原始证书中派生出某种公共/私有证书和证书,而我可以进行其他操作。问题是:如果有人偷走了我的 hfc-key-store 文件夹,其中有管理员证书。他可以在不注册的情况下进行操作,因为 getUserContext("admin") 会返回 true,它会让它做任何事情。如果有人偷了那个文件夹怎么办?不是很危险吗?

  2. 我完全不明白 getUserContext() 和 setUserContext() 以及 createUser() 函数的含义。如果可以的话,请用一种非常容易理解的语言来描述它们,因为我已经很长时间没有尝试解决这个问题了,但没有运气。为什么我们需要这些功能,它们对我们有什么帮助等等。

  3. 为什么cryptogen工具不用于生产但fabric-ca-server可用于生产?