一、安装软件
6.GO语言环境准备
9.下载Chorm浏览器的POSTMAN插件
三、运行
1.MyEclipse打开项目
2.建数据库表
按照代码中NIBC文件夹下“NISBC数据库设计.docx”的要求创建名为nissql的数据库
4.运行区块链环境
(1)打开Docker Quickstart Terminal,输入docker-compose up
(2)打开mRemoteNG,双击IP打开链接
(3)在mRemoteNG输入docker ps
(4)输入docker exec -it my_vp0_1 bash
(5)退回到.../github.com目录,输入mkdir SaveState新建一个SaveState文件夹
(6)进入SaveState,输入vi SaveState.go新建一个SaveState.go文件
(7)按一下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)
}
}
Esc,输入:wq保存文件
(8)输入go build ./(注意点之前的空格),此时查看目录下的内容可以看到一个绿色的SaveState文件
(9)输入
export CORE_CHAINCODE_ID_NAME=mycc
export CORE_PEER_ADDRESS=0.0.0.0:7051
./SaveState &
(10)向Hyperledger服务接口http://192.168.99.100:7050/registrar发送如下REST请求,使用内置的jim用户登录系统
{
"enrollId": "jim",
"enrollSecret": "6avZQLwcUe9b"
}
此时区块链环境就运行好了
(11)如果出现了各种奇奇怪怪的问题,关掉mRemoteNG和docker,重新打开docker并输入
docker rm -f $(docker ps -a -q)
docker-compose up
重新做可以解决大部分问题
5.运行MyEclipse
四、功能
1.注册用户AAA、用户BBB
2.用户AAA充值
3.用户AAA给用户BBB投保
4.用户BBB索赔,则用户AAA投保的钱进入用户BBB的账户