github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/integration/chaincode/server/main.go (about) 1 /* 2 Copyright hechain. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package main 8 9 import ( 10 "encoding/json" 11 "fmt" 12 "io/ioutil" 13 "os" 14 15 "github.com/hechain20/hechain/integration/chaincode/simple" 16 "github.com/hyperledger/fabric-chaincode-go/shim" 17 ) 18 19 type config struct { 20 ListenAddress string `json:"listen_address,omitempty"` 21 Key string `json:"key,omitempty"` // PEM encoded key 22 Cert string `json:"cert,omitempty"` // PEM encoded certificate 23 CA string `json:"ca,omitempty"` // PEM encode CA certificate 24 } 25 26 func main() { 27 if len(os.Args) < 2 { 28 fmt.Println("usage: <package-id>") 29 os.Exit(1) 30 } 31 32 configData, err := ioutil.ReadFile("config.json") 33 if err != nil { 34 fmt.Fprintf(os.Stderr, "Cannot read config file: %s", err) 35 os.Exit(2) 36 } 37 38 var config config 39 if err := json.Unmarshal(configData, &config); err != nil { 40 fmt.Fprintf(os.Stderr, "Cannot read config file: %s", err) 41 os.Exit(2) 42 } 43 44 server := &shim.ChaincodeServer{ 45 CCID: os.Args[1], 46 Address: config.ListenAddress, 47 CC: new(simple.SimpleChaincode), 48 TLSProps: shim.TLSProperties{ 49 Key: []byte(config.Key), 50 Cert: []byte(config.Cert), 51 ClientCACerts: []byte(config.CA), 52 }, 53 } 54 55 // do not modify - needed for integration test 56 fmt.Printf("Starting chaincode %s at %s\n", server.CCID, server.Address) 57 err = server.Start() 58 if err != nil { 59 fmt.Printf("Error starting Simple chaincode: %s", err) 60 } 61 }