Fabric SDK 创建客户端报错event service creation failed: could not get chConfig cache re
创建客户端报错,报错如下:
2021/03/16 16:47:15 创建新的通道客户端失败: event service creation failed: could not get chConfig cache reference: QueryBlockConfig failed: QueryBlockConfig failed: queryChaincode failed: Transaction processing for endorser [peer0.org1.example.com:7051]: Endorser Client Status Code: (2) CONNECTION_FAILED. Description: dialing connection on target [peer0.org1.example.com:7051]: connection is in TRANSIENT_FAILURE
sdk连接配置文件
访问区块链概况go代码
2021/03/16 16:47:15 创建新的通道客户端失败: event service creation failed: could not get chConfig cache reference: QueryBlockConfig failed: QueryBlockConfig failed: queryChaincode failed: Transaction processing for endorser [peer0.org1.example.com:7051]: Endorser Client Status Code: (2) CONNECTION_FAILED. Description: dialing connection on target [peer0.org1.example.com:7051]: connection is in TRANSIENT_FAILURE
sdk连接配置文件
name: "test-network"
version: 1.0.0
client:
organization: Org1
logging:
level: info
cryptoconfig:
path: ./config/cert
credentialStore:
path: /tmp/shanyiou-store
cryptoStore:
path: /tmp/shanyiou-msp
BCCSP:
security:
enabled: true
default:
provider: "SW"
hashAlgorithm: "SHA2"
softVerify: true
level: 256
tlsCerts:
systemCertPool: false
client:
key:
path:
cert:
path:
channels:
mychannel:
peers:
peer0.org1.example.com:
endorsingPeer: true
chaincodeQuery: true
ledgerQuery: true
eventSource: true
policies:
queryChannelConfig:
minResponses: 1
maxTargets: 1
retryOpts:
attempts: 5
initialBackoff: 500ms
maxBackoff: 5s
backoffFactor: 2.0
discovery:
maxTargets: 2
retryOpts:
attempts: 4
initialBackoff: 500ms
maxBackoff: 5s
backoffFactor: 2.0
eventService:
resolverStrategy: PreferOrg
balancer: Random
blockHeightLagThreshold: 5
reconnectBlockHeightLagThreshold: 10
peerMonitorPeriod: 5s
organizations:
Org1:
mspid: Org1MSP
cryptoPath: peerOrganizations/org1.example.com/users/{userName}@org1.example.com/msp
peers:
- peer0.org1.example.com
users:
Admin:
key:
path: ./config/cert/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/b79a7bf4780dee0b268eebf0b6cbb9e5aa2850b031e796bf2f9ef645e0645c00_sk
cert:
path: ./config/cert/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/cert.pem
User1:
key:
path: ./config/cert/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/c81de741513bed57cef9e7ec686e7ff5044f3bb7cf10955935ae664aa6a47f7a_sk
cert:
path: ./config/cert/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/cert.pem
orderers:
orderer.example.com:
url: grpcs://orderer.example.com:7050
grpcOptions:
ssl-target-name-override: orderer.example.com
keep-alive-time: 0s
keep-alive-timeout: 20s
keep-alive-permit: false
fail-fast: false
allow-insecure: false
tlsCACerts:
# path: ./fixtures/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem
path: ./config/cert/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem
peers:
peer0.org1.example.com:
url: peer0.org1.example.com:7051
eventUrl: grpcs://peer0.org1.example.com:7053
grpcOptions:
ssl-target-name-override: peer0.org1.example.com
keep-alive-time: 0s
keep-alive-timeout: 20s
keep-alive-permit: false
fail-fast: false
allow-insecure: false
tlsCACerts:
path: ./config/cert/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem
entityMatchers:
peer:
- pattern: (\w*)peer0.org1.example.com(\w*)
urlSubstitutionExp: grpcs://peer0.org1.example.com:7051
eventUrlSubstitutionExp: grpcs://peer0.org1.example.com:7053
sslTargetOverrideUrlSubstitutionExp: peer0.org1.example.com
mappedHost: peer0.org1.example.com
orderer:
- pattern: (.*)
urlSubstitutionExp: grpcs://localhost:7050
sslTargetOverrideUrlSubstitutionExp: orderer.example.com
mappedHost: orderer.example.com
访问区块链概况go代码
package main
import (
// "fmt"
"log"
"os"
"github.com/hyperledger/fabric-sdk-go/pkg/client/channel"
"github.com/hyperledger/fabric-sdk-go/pkg/common/errors/retry"
"github.com/hyperledger/fabric-sdk-go/pkg/core/config"
"github.com/hyperledger/fabric-sdk-go/pkg/fabsdk"
)
const (
channelID = "mychannel"
chaincodeID = "esg"
orgID = "Org1"
userID = "Admin"
)
func main() {
configOpt := config.FromFile("./config/sdk-config.yaml")
sdk, err := fabsdk.New(configOpt)
if err != nil {
log.Fatalf("创建新的SDK失败: %v\n", err)
return
}
defer sdk.Close()
log.Printf("---> 创建SDK成功\n")
var options_user fabsdk.ContextOption
var options_org fabsdk.ContextOption
options_user = fabsdk.WithUser(userID)
options_org = fabsdk.WithOrg(orgID)
// fmt.Printf("%v\n", options_user)
// fmt.Printf("%v\n", options_org)
//clientChannelContext := sdk.ChannelContext(channelID, fabsdk.WithUser(userID), fabsdk.WithOrg(mspID))
clientChannelContext := sdk.ChannelContext(channelID, options_user, options_org)
client, err := channel.New(clientChannelContext)
if err != nil {
log.Fatalf("创建新的通道客户端失败: %v\n", err)
return
}
log.Printf("--> 创建新的通道客户端\n")
var response channel.Response
if len(os.Args) > 1 && os.Args[1] == "invoke" {
response, err = client.Execute(channel.Request{ChaincodeID: chaincodeID, Fcn: "invoke", Args: [][]byte{[]byte("a"), []byte("b"), []byte("10")}},
channel.WithRetry(retry.DefaultChannelOpts))
} else {
response, err = client.Query(channel.Request{ChaincodeID: chaincodeID, Fcn: "query", Args: [][]byte{[]byte("b")}},
channel.WithRetry(retry.DefaultChannelOpts))
}
if err != nil {
log.Fatalf("Failed to call client: %v\n", err)
return
}
log.Printf("Result=(%v)\n", string(response.Payload))
}
...全文
相关推荐
产业园区运营负责人如何精准识别并匹配企业与高校的科技成果?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
Special-Comfy-part1.7z.071
ComfyUI专用模型资源分卷压缩包,Special-Comfy-part1系列第071卷。7z分卷格式,单卷900MB,需配合全部分卷解压使用。
科技中介服务机构在开展技术交易服务时,如何构建专业且高效的智能服务流程?.docx
科技中介服务机构在开展技术交易服务时,如何构建专业且高效的智能服务流程?
国央企创新负责人如何利用平台实现创新资源的多维高效配置?.docx
国央企创新负责人如何利用平台实现创新资源的多维高效配置?
基于MATLAB的三维粒子封装模拟与双峰电池电极的体积容量和功耗性能优化。.zip
1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。


