github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/cmd/burrow/commands/start.go (about)

     1  package commands
     2  
     3  import (
     4  	"github.com/hyperledger/burrow/core"
     5  	cli "github.com/jawher/mow.cli"
     6  )
     7  
     8  // Start launches the burrow daemon
     9  func Start(output Output) func(cmd *cli.Cmd) {
    10  	return func(cmd *cli.Cmd) {
    11  		configOpts := addConfigOptions(cmd)
    12  
    13  		cmd.Action = func() {
    14  			conf, err := configOpts.obtainBurrowConfig()
    15  			if err != nil {
    16  				output.Fatalf("could not set up config: %v", err)
    17  			}
    18  
    19  			if err := conf.Verify(); err != nil {
    20  				output.Fatalf("cannot continue with config: %v", err)
    21  			}
    22  
    23  			output.Logf("Using validator address: %s", *conf.ValidatorAddress)
    24  
    25  			kern, err := core.LoadKernelFromConfig(conf)
    26  			if err != nil {
    27  				output.Fatalf("could not configure Burrow kernel: %v", err)
    28  			}
    29  
    30  			if err = kern.Boot(); err != nil {
    31  				output.Fatalf("could not boot Burrow kernel: %v", err)
    32  			}
    33  
    34  			kern.WaitForShutdown()
    35  		}
    36  	}
    37  }