diff --git a/src/cmd/main.go b/src/cmd/main.go index 346bc918f..238727283 100644 --- a/src/cmd/main.go +++ b/src/cmd/main.go @@ -144,7 +144,10 @@ func actionLachesis(ctx *cli.Context) error { return fmt.Errorf("invalid command: %q", args[0]) } - node := makeFullNode(ctx) + node, err := makeFullNode(ctx) + if err != nil { + return err + } defer node.Close() utils.StartNode(node) @@ -152,7 +155,7 @@ func actionLachesis(ctx *cli.Context) error { return nil } -func makeFullNode(ctx *cli.Context) *node.Node { +func makeFullNode(ctx *cli.Context) (*node.Node, error) { nodeCfg := makeNodeConfig(ctx) networkCfg := makeLachesisConfig(ctx) gossipCfg := makeGossipConfig(ctx, networkCfg) @@ -160,6 +163,11 @@ func makeFullNode(ctx *cli.Context) *node.Node { makeDb := dbProducer(nodeCfg.DataDir) gdb, cdb := makeStorages(makeDb) + err := cdb.ApplyGenesis(&networkCfg.Genesis) + if err != nil { + return nil, err + } + // Create consensus. engine := poset.New(cdb, gdb) @@ -181,5 +189,5 @@ func makeFullNode(ctx *cli.Context) *node.Node { log.Fatalf("Failed to register service: %v", err) } - return stack + return stack, nil }