// Start entry point for chaincodes bootstrap. func Start(cc Chaincode) error { viper.SetEnvPrefix("CORE") viper.AutomaticEnv() replacer := strings.NewReplacer(".", "_") viper.SetEnvKeyReplacer(replacer) flag.StringVar(&peerAddress, "peer.address", "", "peer address") flag.Parse() chaincodeLogger.Debug("Peer address: %s", getPeerAddress()) // Establish connection with validating peer clientConn, err := newPeerClientConnection() if err != nil { chaincodeLogger.Error(fmt.Sprintf("Error trying to connect to local peer: %s", err)) return fmt.Errorf("Error trying to connect to local peer: %s", err) } chaincodeLogger.Debug("os.Args returns: %s", os.Args) chaincodeSupportClient := pb.NewChaincodeSupportClient(clientConn) // Establish stream with validating peer stream, err := chaincodeSupportClient.Register(context.Background()) if err != nil { return fmt.Errorf("Error chatting with leader at address=%s: %s", getPeerAddress(), err) } chaincodename := viper.GetString("chaincode.id.name") err = chatWithPeer(chaincodename, stream, cc) return err }
// Start is the entry point for chaincodes bootstrap. It is not an API for // chaincodes. func Start(cc Chaincode) error { // If Start() is called, we assume this is a standalone chaincode and set // up formatted logging. format := logging.MustStringFormatter("%{time:15:04:05.000} [%{module}] %{level:.4s} : %{message}") backend := logging.NewLogBackend(os.Stderr, "", 0) backendFormatter := logging.NewBackendFormatter(backend, format) logging.SetBackend(backendFormatter).SetLevel(logging.Level(shimLoggingLevel), "shim") viper.SetEnvPrefix("CORE") viper.AutomaticEnv() replacer := strings.NewReplacer(".", "_") viper.SetEnvKeyReplacer(replacer) flag.StringVar(&peerAddress, "peer.address", "", "peer address") flag.Parse() chaincodeLogger.Debugf("Peer address: %s", getPeerAddress()) // Establish connection with validating peer clientConn, err := newPeerClientConnection() if err != nil { chaincodeLogger.Errorf("Error trying to connect to local peer: %s", err) return fmt.Errorf("Error trying to connect to local peer: %s", err) } chaincodeLogger.Debugf("os.Args returns: %s", os.Args) chaincodeSupportClient := pb.NewChaincodeSupportClient(clientConn) // Establish stream with validating peer stream, err := chaincodeSupportClient.Register(context.Background()) if err != nil { return fmt.Errorf("Error chatting with leader at address=%s: %s", getPeerAddress(), err) } chaincodename := viper.GetString("chaincode.id.name") err = chatWithPeer(chaincodename, stream, cc) return err }