标签: hyperledger-chaincode

Hyperledger Fabric 2.0-beta Javascript 开发模式

我正在为 javascript 链码和 Fabric 2.0-beta运行和调整链码开发模式。我启动网络并调整 script.sh(客户端)以运行:

set -e
peer channel create -c myc -f myc.tx -o orderer:7050
peer channel join -b myc.block

cd chaincode

peer lifecycle chaincode package chaincode.tar.gz --lang node --path ./ --label justicechain_1
peer lifecycle chaincode install chaincode.tar.gz
Run Code Online (Sandbox Code Playgroud)

尽管如此,我发现以下错误:

错误:链码安装失败,状态:500 - 无法调用“InstallChaincode”的支持实现:无法构建链码:docker 构建失败:docker 镜像构建失败:docker 构建失败:构建返回的错误:1“+ INPUT_DIR=/chaincode /input + OUTPUT_DIR=/chaincode/output + cp -R /chaincode/input/src/./chaincode/output cp: can't stat '/chaincode/input/src/.': 没有那个文件或目录" /opt /gopath/src/chaincodedev/chaincode #

我在网上找不到有关此问题的任何信息。有任何想法吗?

编辑:看起来有更新 - https://jira.hyperledger.org/browse/FAB-18074

blockchain hyperledger-fabric hyperledger-chaincode

8
推荐指数
1
解决办法
1531
查看次数

无法创建新连接:desc = 传输:拨号时出错:拨号 tcp 172.19.0.4:9051:连接:连接被拒绝 Hyperledger Fabric

谁能帮我修复以下错误。我正在尝试通过 cli 在对等方上安装链码。我正确配置了 cli 容器。但不知何故我收到了这个错误..

grpc: addrConn.createTransport failed to connect to {peer0.org1.example.com:7051 0 <nil>}. Err :connection error: desc = “transport: Error while dialing dial tcp: lookup peer0.org1.example.com on 127.0.0.11:53: connection refused
Run Code Online (Sandbox Code Playgroud)

这是我的 docker-compose-cli.yaml

blockchain hyperledger hyperledger-fabric hyperledger-chaincode

6
推荐指数
1
解决办法
8198
查看次数

Hyperledger Fabric 1.4 私有数据收集

Hyperledger Fabric 在私有集合的帮助下提供了存储链下数据的内置支持。为此,我们需要指定包含各种集合名称的集合配置以及有权访问这些集合中存在的数据的参与者。有一个名为“ BlockToLive ”的设置,我们可以使用它来指定对等方应该存储多少块他们有权访问的私有数据。在账本区块高度达到上述阈值后,对等方将自动清除私有数据。

我们有一个要求,我们需要使用私有数据集合,但应在 30 天后(自动/手动)删除数据。有没有可能达到同样的目标?

  1. timeToLive:是否有任何用于指定timeToLive或类似配置的实现?使用此功能,对等方将在提到的持续时间后自动清除数据。
  2. 如果目前没有可能的自动方式,如何手动删除私人收藏中的数据?有什么方法可以使用外部脚本/代码直接删除私有集合中的数据?我们不想创建将用于作为交易调用以删除私有数据的链码方法,因为即使删除私有数据也需要背书并发送给排序者并需要添加到分类帐中。如何直接删除隐私数据?

blockchain hyperledger hyperledger-fabric hyperledger-chaincode

5
推荐指数
1
解决办法
360
查看次数

执行 Hyperledger Fabric 2.0 文档中的部署脚本后,链代码未部署在测试网络上

我运行了脚本./network.sh deployCC,然后无法将其部署在网络上(Fabric 2.0),这是错误:

deploying chaincode on channel 'mychannel'

Vendoring Go dependencies ...
~/Desktop/Fabric/fabric-samples/chaincode/fabcar/go 
~/Desktop/Fabric/fabric-samples/test-network
go: unknown subcommand "mod"
Run 'go help' for usage.
~/Desktop/Fabric/fabric-samples/test-network
Finished vendoring Go dependencies
Using organization 1
++ peer lifecycle chaincode package fabcar.tar.gz --path 
../chaincode/fabcar/go/ --lang golang --label fabcar_1
++ res=1
++ set +x
Error: error getting chaincode bytes: listing deps for pacakge 
../chaincode/fabcar/go/ failed: exit status 2
!!!!!!!!!!!!!!! Chaincode packaging on peer0.org1 has failed 
!!!!!!!!!!!!!!!!

ERROR !!! Deploying chaincode failed
Run Code Online (Sandbox Code Playgroud)

hyperledger-fabric hyperledger-chaincode

5
推荐指数
1
解决办法
2644
查看次数

使用超级账本结构 2.0 提交链代码调用/查询时出错

我已经使用命令成功提交了链码:

./peer lifecycle chaincode commit -o orderer.example.org:7050 --channelID mychannel --name emp_chaincode --version v1 --sequence 1 --init-required --tls --cafile ./crypto-config/ordererOrganizations/example.org/orderers/orderer.example.org/msp/tlscacerts/tlsca.example.org-cert.pem
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试调用/查询链码时,出现此错误:

Error: endorsement failure during invoke. response: status:500 message:"error in simulation: failed to execute transaction f490a9e7bca41ad10f68306decae2fdd73e09a9d5f81da7c9ee5cdc3811b3f27: invalid invocation: chaincode 'emp_chaincode' has not been initialized for this version, must call as init first"
Run Code Online (Sandbox Code Playgroud)

在链码容器日志中,它显示:

+ CHAINCODE_DIR=/usr/local/src

+ cd /usr/local/src

+ npm start -- --peer.address peer0.org1.example.org:7052


> employee@1.0.0 start /usr/local/src

> node emp_chaincode.js "--peer.address" "peer0.org1.example.org:7052"

2020-02-25T09:28:16.743Z info [c-api:lib/chaincode.js] Registering with peer peer0.org1.example.org:7052 as …
Run Code Online (Sandbox Code Playgroud)

docker hyperledger hyperledger-fabric hyperledger-chaincode

5
推荐指数
1
解决办法
2425
查看次数

Hyperledger Fabric 2.0 -chaincode 作为外部服务:Unknown chaincodeType:EXTERNAL

我正在尝试将链码设置为官方文档中指定的外部服务

第一件事是设置externalBuilder变量

chaincode:
  externalBuilders:
  - name: my-golang-builder
    path: /builders/golang
Run Code Online (Sandbox Code Playgroud)

在我的对等配置中,我添加了以下内容来覆盖它

- CORE_CHAINCODE_EXTERNALBUILDERS_PATH=/var/hyperledger/builderpath
- CORE_CHAINCODE_EXTERNALBUILDERS_NAME=externalbuilder
Run Code Online (Sandbox Code Playgroud)

但是当我运行时,peer install lifecycle我得到了

docker build failed: platform builder failed: Failed to generate a Dockerfile: Unknown chaincodeType: EXTERNAL
Run Code Online (Sandbox Code Playgroud)

尽管如此,它仍然尝试安装,因为旧的方式似乎没有检测到我的外部构建器路径

谁能知道解决办法

更新

对等体.yaml

peer1.base.right:
    container_name: peer1.right.base
    extends:
      file: base.yaml
      service: peer-base
    environment:
      - CORE_PEER_ID=peer1.right.base
      - CORE_PEER_ADDRESS=peer1.right.base:9051
      - CORE_PEER_LISTENADDRESS=0.0.0.0:9051
      - CORE_PEER_CHAINCODEADDRESS=peer1.right.base:9052
      - CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:9052
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.right.base:10051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.right.base:9051
      - CORE_PEER_LOCALMSPID=RightOrgMSP
    volumes:
        - /var/run/:/host/var/run/
        - ./crypto-config/peerOrganizations/base.right/peers/peer1.base.right/msp:/etc/hyperledger/fabric/msp
        - ./crypto-config/peerOrganizations/base.right/peers/peer1.base.right/tls:/etc/hyperledger/fabric/tls
        - ./chaincode/external_builder:/builders/external
        - ./fabric-config:/etc/hyperledger/fabric
        - peer1.base.right:/var/hyperledger/production
    ports: …
Run Code Online (Sandbox Code Playgroud)

hyperledger hyperledger-fabric hyperledger-chaincode

5
推荐指数
1
解决办法
631
查看次数

使用 Fabric Node SDK 的 Chaincode 实例化给出了 API 错误 (404): manifest for hyperledger/fabric-ccenv:latest not found

我正在尝试使用 Fabric Node SDK 在我的 Hyperledger Fabric 网络(在云上设置)上实例化 Golang 链代码。但是,我在执行相同操作时遇到以下错误:

Error: error starting container: error starting container: Failed to generate platform-specific docker build: Failed to pull hyperledger/fabric-ccenv:latest: API error (404): manifest for hyperledger/fabric-ccenv:latest not found: manifest unknown: manifest unknown
Run Code Online (Sandbox Code Playgroud)

相同的堆栈跟踪是:

at self._endorserClient.processProposal (./node_modules/fabric-client/lib/Peer.js:140:36)
at Object.onReceiveStatus (./node_modules/grpc/src/client_interceptors.js:1207:9)
at InterceptingListener._callNext (./node_modules/grpc/src/client_interceptors.js:568:42)
at InterceptingListener.onReceiveStatus (./node_modules/grpc/src/client_interceptors.js:618:8)
at callback (./node_modules/grpc/src/client_interceptors.js:845:24)
Run Code Online (Sandbox Code Playgroud)

我还尝试hyperledger/fabric-ccenv在本地环境中直接拉取图像,但在那里也遇到了类似的错误:

命令:

docker pull hyperledger/fabric-ccenv
Run Code Online (Sandbox Code Playgroud)

错误:

Using default tag: latest
Error response from daemon: manifest for hyperledger/fabric-ccenv:latest not found: manifest unknown: manifest unknown …
Run Code Online (Sandbox Code Playgroud)

hyperledger-fabric hyperledger-fabric-sdk-js hyperledger-chaincode

4
推荐指数
1
解决办法
1782
查看次数

Hyperledger Fabic 2.2.0 错误处理成功响应。值与架构不匹配

我正在使用 Hyperledger Fabric 2.2.0 和 Fabric-network 2.1(不是那么重要)。

我的链码是用 Go 编写的。所以我有一些带有,omitemptyJSON 标签的结构。这是我的结构:

type LeaseDetails struct {
    EndOfTerm string `json:"endOfTerm"`
    Info      string `json:"info,omitempty"`
    Option    string `json:"option,omitempty"`
}
Run Code Online (Sandbox Code Playgroud)

但我从链代码中收到以下错误作为返回值:

peer=peer0.org1.example.com:7051, status=500, message=Error handling success response. Value did not match schema:
1. return.0.leaseDetails: info,omitempty is required
2. return.0.leaseDetails: option,omitempty is required
Run Code Online (Sandbox Code Playgroud)

如果我,omitempty从结构中删除并提供默认值,一切都会正常工作。在文档中fabric-contract-api-go提到有某种基于 json marshal/unmarshal 构建的序列化器,但对我来说,它似乎没有检测到关键字,omitempty

这是故意的吗?或者我在这里遗漏了什么?

提前致谢

go hyperledger-fabric hyperledger-chaincode

2
推荐指数
1
解决办法
1213
查看次数

无法更新订购者配置中的batchtimeout?

我创建了一个结构网络,它运行良好。我想更新oderer配置,例如batchtimeout在运行中的网络中。我已按照教程在运行时更新通道配置。本教程适用于添加新组织。但是当我更新订购者配置时,我得到了如下错误

错误:状态发生意外:BAD_REQUEST-将配置更新应用于现有通道“ mychannel”时出错:授权更新:错误验证DeltaSet:未满足[Value] / Channel / Orderer / BatchTimeout的策略:隐式策略评估失败-0子-符合政策,但此政策要求满足“管理员”子政策中的1个

我从所有组织管理员(例如org1和org2)中选择了信封.pb文件。请帮助我。

注意:为此,我使用了fabric-samples第一网络。

编辑:我已经用org1和org2签署了pb文件。我还通过导出以下变量与订购者签署了文件

CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin\@example.com/msp/

CORE_PEER_ADDRESS=orderer.example.com:7050

CORE_PEER_LOCALMSPID=OrdererMSP

CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
Run Code Online (Sandbox Code Playgroud)

日志

11-28 09:13:57.207 UTC [policies] Manager -> DEBU cc4 Manager Channel/Orderer looking up path []
2019-11-28 09:13:57.207 UTC [policies] Manager -> DEBU cc5 Manager Channel/Orderer has managers OrdererOrg
2019-11-28 09:13:57.207 UTC [policies] Evaluate -> DEBU cc6 == Evaluating *policies.implicitMetaPolicy Policy /Channel/Orderer/Admins ==
2019-11-28 09:13:57.207 UTC [policies] Evaluate -> DEBU cc7 This is an implicit meta policy, it will trigger other …
Run Code Online (Sandbox Code Playgroud)

blockchain hyperledger hyperledger-fabric hyperledger-chaincode

1
推荐指数
1
解决办法
75
查看次数

调用操作成功后如何获取txid | 超级账本结构 2.x

在 HLF 1.4 中,我可以在成功调用操作后获取事务 id。但在 HLF 2.x 中我没有得到 txid。我可以在状态数据库(couch db)中看到我提交给hlf的数据。那为什么我没有得到 txid。这是链码中的最后一行,

return shim.Success(nil)
Run Code Online (Sandbox Code Playgroud)

使用 Node sdk 提交交易。

result = await contract.submitTransaction(fcn, args);
console.log("Result:", result.toString())
Run Code Online (Sandbox Code Playgroud)

上面的行给出了空。帮我获取 tx id。

go hyperledger-fabric hyperledger-fabric-sdk-js hyperledger-chaincode

1
推荐指数
1
解决办法
1155
查看次数

fabric-chaincode-go 和 fabric-contract-api-go 有什么区别?

我目前正在尝试学习 Hyperledger Fabric ,我设法了解如何设置网络(Orderers、Peers 等),但现在是链码的一部分。

但是,我发现两个不同的 git 存储库(据我所知)可用于创建链码。

第一个是fabric-contract-api-go,我不久前跟着他们的教程

第二个是fabric-chaincode-go

所以我的问题是,这两个包有什么区别,我应该使用哪一个来编写链码?你有资源或好的例子吗?(除了fabric-samples git中的那些)

前段时间跟着fabric-contract-api教程写了一个chaincode,现在看到有人用fabric-chaincode-go这个包,有点迷茫。

对不起,这个问题可能听起来很愚蠢,但我没有开发人员背景。我有 SysAdmin 背景,不习惯 GOLANG(但我是一个快速学习者,有很好的资源)。

hyperledger hyperledger-fabric hyperledger-chaincode chaincode

0
推荐指数
1
解决办法
631
查看次数

HyperLedger 2.3.1 无法连接 Committer

我正在尝试在 Hyperledger Fabric 测试网络(Fabcar javascript 智能合约)上执行智能合约,当我尝试使用 fabcar javascript 示例中存在的 invoke.js 文件调用链码时,出现以下错误:

错误:[ServiceEndpoint]:错误:无法在提交者截止日期之前连接 - 名称:orderer0.example.com:7050,url:grpcs://localhost:7050,已连接:false,connectAttempted:true 2021-05-05T23: 44:02.951Z - 错误:[ServiceEndpoint]:waitForReady - 无法连接到远程 gRPC 服务器 orderer0.example.com:7050 url:grpcs://localhost:7050 超时:3000 2021-05-05T23:44:02.952Z -错误:[DiscoveryService]:_buildOrderer[mychannel] - 无法连接到发现的排序者 orderer0.example.com:7050,因为错误:无法在提交者截止日期之前连接 - 名称:orderer0.example.com:7050,url: grpcs://localhost:7050,已连接:false,connectAttempted:true 2021-05-05T23:44:05.957Z - 错误:[ServiceEndpoint]:错误:无法在 Endorser 的截止日期之前连接 - 名称:peer0.org01.example .com:7051,url:grpcs://localhost:7051,已连接:false,connectAttempted:true 2021-05-05T23:44:05.957Z - 错误:[ServiceEndpoint]:waitForReady - 无法连接到远程 gRPC 服务器peer0。 org01.example.com:7051 url:grpcs://localhost:7051 timeout:3000 2021-05-05T23:44:05.958Z - 错误:[DiscoveryService]: _buildPeer[mychannel] - 无法连接到发现的对等点pee​​r0。 org01.example.com:7051 由于错误:无法在 Endorser 截止日期之前连接 - 名称:peer0.org01.example.com:7051,url:grpcs://localhost:7051,已连接:false,connectAttempted:true

需要注意的一件事是我更改了默认测试网络中的端口转发和对等/组织名称。我的连接配置文件如下(为了清楚起见,删除了证书):

{
"name": "test-network-org1",
"version": "1.0.0",
"client": {
    "organization": "Org1",
    "connection": {
        "timeout": {
            "peer": {
                "endorser": …
Run Code Online (Sandbox Code Playgroud)

hyperledger hyperledger-fabric hyperledger-fabric-sdk-js hyperledger-chaincode

0
推荐指数
1
解决办法
750
查看次数