外部服务分析:
- 如何提供外部服务
- 企业内部各种数据接口,rpc grpc
- 网站(web),手机(app),通过http(案例中使用的)
- 智能硬件,socket服务
- SDK提供外部服务,SDK的语言选择
- node.js(官方推荐,效率9颗星)
- java(实际使用量最大的9颗星)
- python(使用不太多 3颗星)
- golang(不稳定,常用方法也没有 1颗星)
- SDK的模块
- 区块链管理:例如通道的创建和加入、链码的安装、实例化等
- 数据查询:区块和交易的查询
- 区块链交互(链码交互):发起交易 invoke query
- 事件监听:业务事件、系统事件
SDK的下载和使用:
这里使用测试3的版本
- goland中创建application目录,首先将config.yaml拷贝到application目录,config.yaml文件是关于MSP、orederer、peer节点的配置信息
version: 1.0.0
#
# The client section used by GO SDK.
#
client:
organization: org1
logging:
level: debug
eventService:
type: eventhub
cryptoconfig:
#修改路径如下
path: ${GOPATH}/src/fabric_asset/deploy/crypto-config
credentialStore:
path: "/tmp/state-store"
cryptoStore:
path: /tmp/msp
#密码学相关配置
BCCSP:
security:
enabled: true
default:
provider: "SW"
hashAlgorithm: "SHA2"
softVerify: true
level: 256
tlsCerts:
systemCertPool: true
client:
key:
path: ${GOPATH}/src/github.com/hyperledger/fabric-sdk-go/test/fixtures/config/mutual_tls/client_sdk_go-key.pem
cert:
path: ${GOPATH}/src/github.com/hyperledger/fabric-sdk-go/test/fixtures/config/mutual_tls/client_sdk_go.pem
channels:
assetschannel:
orderers:
- orderer.example.com
peers:
peer0.org1.example.com:
endorsingPeer: true
chaincodeQuery: true
ledgerQuery: true
eventSource: true
peer1.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
organizations:
org1:
mspid: Org1MSP
cryptoPath: peerOrganizations/org1.example.com/users/{username}@org1.example.com/msp
peers:
- peer0.org1.example.com
certificateAuthorities:
ordererorg:
mspID: "OrdererMSP"
cryptoPath: ordererOrganizations/example.com/users/{username}@example.com/msp
orderers:
orderer.example.com:
#生产环境下需要修改
url: 127.0.0.1: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: true
tlsCACerts:
path: ${GOPATH}/src/github.com/hyperledger/fabric-sdk-go/${CRYPTOCONFIG_FIXTURES_PATH}/ordererOrganizations/example.com/tlsca/tlsc