Docker部署区块链
来源:互联网 发布:淘宝待发货 编辑:程序博客网 时间:2024/06/08 04:34
1. 打开Docker拉取镜像,在https://hub.docker.com/可以查看镜像版本,为了配合毕设我们拉取0.6版本,并把tag重命名为latest
docker pull hyperledger/ fabric-peer:x86_64-0.6.1-preview
docker pull hyperledger/ fabric-membersrvc:latest
docker images
2. 将编写好的docker-compose.yml保存到本地c/Users/rjy以便后续运行使用
membersrvc: image: hyperledger/fabric-membersrvc ports: - "7054:7054" command: membersrvcvp0: image: hyperledger/fabric-peer ports: - "7050:7050" - "7051:7051" - "7053:7053" environment: - CORE_PEER_ADDRESSAUTODETECT=true - CORE_VM_ENDPOINT=unix:///var/run/docker.sock - CORE_LOGGING_LEVEL=DEBUG - CORE_PEER_ID=vp0 - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054 - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054 - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054 - CORE_SECURITY_ENABLED=true - CORE_SECURITY_ENROLLID=test_vp0 - CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT links: - membersrvc command: sh -c "sleep 5; peer node start --peer-chaincodedev"
3. docker输入docker-compose up
4. mRemoteNG链接Docker,
Host : 192.168.99.100
User name : docker
Password : tcuser
协议 : SSHv2
5. mRemoteNG输入docker ps
6. mRemoteNG输入docker exec -it rjy_vp0_1 bash
7. 退回到.../github.com新建一个SaveState文件夹 mkdir SaveState
8. 进入SaveState,输入vi SaveState2.go新建一个SaveState.go文件
9. 按下i键,从下面复制代码,在mRemoteNG点击右键粘贴过来
package main import ( "errors" "fmt" "github.com/hyperledger/fabric/core/chaincode/shim") type SaveState2Chaincode struct {} func (t *SaveState2Chaincode) Init(stub shim.ChaincodeStubInterface, function string, args []string) ([]byte, error) { fmt.Printf("Init called with function %s!\n", function) return nil, nil} func (t *SaveState2Chaincode) Invoke(stub shim.ChaincodeStubInterface, function string, args []string) ([]byte, error) { fmt.Printf("Invoke called with function %s!\n", function) var key, value string key = args[0] value = args[1] var err error err = stub.PutState(key, []byte(value)) if err != nil { return nil, err } return nil, nil } func (t *SaveState2Chaincode) Query(stub shim.ChaincodeStubInterface, function string, args []string) ([]byte, error) { fmt.Printf("Query called with function %s!\n", function) var key string key = args[0] valInBytes, err := stub.GetState(key) if err != nil { return nil, errors.New("Failed to get state for " + key) } message := "State for " + key + " = " + string(valInBytes) return []byte(message), nil} func main() { err := shim.Start(new(SaveState2Chaincode)) if err != nil { fmt.Printf("Error starting Save State chaincode: %s", err) }}
10. :wq
11. go build ./ 注意build后边有一个空格,运行完这一句会出现一个绿色的文件
12. export CORE_CHAINCODE_ID_NAME=mycc
13. export CORE_PEER_ADDRESS=0.0.0.0:7051
14. ./SaveState &
15. 向Hyperledger服务接口http://192.168.99.100:7050/registrar 发送如下REST请求,使用内置的jim用户登录系统
{
"enrollId": "jim",
"enrollSecret": "6avZQLwcUe9b"
}
16. 向Hyperledger服务接口http://192.168.99.100:7050/chaincode 发送如下REST请求
{
"jsonrpc" : "2.0",
"method" : "invoke",
"params" : {
"type" : 1,
"chaincodeID" : {
"name" : "mycc"
},
"ctorMsg" : {
"function":"invoke",
"args":[ "testKey","PipiXia,Let’s go!" ]
},
"secureContext" : "jim"
},
"id" : 3
}
17.
{
"jsonrpc" : "2.0",
"method" : "query",
"params" : {
"type" : 1,
"chaincodeID" : {
"name" : "mycc"
},
"ctorMsg" : {
"function":"query",
"args":[ "testKey"]
},
"secureContext" : "jim"
},
"id" : 5
}
- Docker部署区块链
- 【区块链】DOCKER部署量子链私有网络环境以及部署智能合约实践
- 关于lilnux应用于区块链开发的环境部署(docker-chaincode-nodejs)
- 自己动手部署区块链-hyperledger/fabric-01
- 自己动手部署区块链-hyperledger/fabric-02
- 【区块链】Truffle 部署和测试
- 区块链智能合约部署初探
- 基于docker的IBM区块链项目展示
- 区块链hyperledger fabric 环境搭建 centos7 docker环境
- 区块链之Hyperledgerd搭建(一、docker环境搭建)
- docker部署
- docker 部署
- Docker部署
- Docker部署
- docker 部署
- 区块链投资现状和区块链应用部署的探讨
- AntShares区块链的节点部署与搭建私有链
- AntShares 区块链搭建私有链与部署智能合约
- JavaWeb开发模式一:JSP+JavaBean
- python3.5调用face++
- on、where、having的区别
- Java并发编程:Lock
- 静态链接库vs动态链接库
- Docker部署区块链
- 机器学习学习笔记:决策树归纳算法(ID3)
- PAT (Advanced Level) Practise
- 现在有100块钱,一只公鸡5块,一只母鸡3块,三个小鸡1块。现在让你用100块钱买到100只鸡(大小不限)运用循环,和if语句实现
- 小慧过生日,小明要给小慧买鲜花作为礼物,每枝红玫瑰5元钱,满5枝赠送1枝,满20枝赠送5枝,小明一共有n(n>10)元钱,为了让小慧高兴,小明希望能买到最多的红玫瑰,请你帮小明明算算,他最多能买到多少
- Qt工程文件的简单配置
- Mysql5.7.20无法启动问题
- PAT (Advanced Level) Practise
- JavaWeb 项目启动时,后台开启一个线程的方法