Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions relayer/cmd/generate_beacon_data.go
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,8 @@ func generateBeaconCheckpoint(cmd *cobra.Command, _ []string) error {
store.Connect()
defer store.Close()

client := api.NewBeaconClient(conf.Source.Beacon.Endpoint, conf.Source.Beacon.StateEndpoint)
s := syncer.New(client, &store, p)
client := api.NewBeaconClient(conf.Source.Beacon.Endpoint)
s := syncer.New(client, p, nil)

var checkPointScale scale.BeaconCheckpoint
if finalizedSlot == 0 {
Expand Down Expand Up @@ -220,8 +220,8 @@ func generateBeaconTestFixture(cmd *cobra.Command, _ []string) error {
defer store.Close()

log.WithFields(log.Fields{"endpoint": conf.Source.Beacon.Endpoint}).Info("connecting to beacon API")
client := api.NewBeaconClient(conf.Source.Beacon.Endpoint, conf.Source.Beacon.StateEndpoint)
s := syncer.New(client, &store, p)
client := api.NewBeaconClient(conf.Source.Beacon.Endpoint)
s := syncer.New(client, p, nil)

viper.SetConfigFile("/tmp/snowbridge-v2/execution-relay-v1.json")

Expand Down Expand Up @@ -575,8 +575,8 @@ func generateExecutionUpdate(cmd *cobra.Command, _ []string) error {
defer store.Close()

// generate executionUpdate
client := api.NewBeaconClient(conf.Source.Beacon.Endpoint, conf.Source.Beacon.StateEndpoint)
s := syncer.New(client, &store, p)
client := api.NewBeaconClient(conf.Source.Beacon.Endpoint)
s := syncer.New(client, p, nil)
blockRoot, err := s.Client.GetBeaconBlockRoot(uint64(beaconSlot))
if err != nil {
return fmt.Errorf("fetch block: %w", err)
Expand Down Expand Up @@ -777,8 +777,8 @@ func generateInboundFixture(cmd *cobra.Command, _ []string) error {
defer store.Close()

log.WithFields(log.Fields{"endpoint": beaconConf.Source.Beacon.Endpoint}).Info("connecting to beacon API")
client := api.NewBeaconClient(beaconConf.Source.Beacon.Endpoint, beaconConf.Source.Beacon.StateEndpoint)
s := syncer.New(client, &store, p)
client := api.NewBeaconClient(beaconConf.Source.Beacon.Endpoint)
s := syncer.New(client, p, nil)

viper.SetConfigFile(executionConfig)

Expand Down Expand Up @@ -953,8 +953,8 @@ func generateDeliveryProofFixture(cmd *cobra.Command, _ []string) error {
defer store.Close()

log.WithFields(log.Fields{"endpoint": beaconConf.Source.Beacon.Endpoint}).Info("connecting to beacon API")
client := api.NewBeaconClient(beaconConf.Source.Beacon.Endpoint, beaconConf.Source.Beacon.StateEndpoint)
s := syncer.New(client, &store, p)
client := api.NewBeaconClient(beaconConf.Source.Beacon.Endpoint)
s := syncer.New(client, p, nil)

viper.SetConfigFile(executionConfig)

Expand Down
4 changes: 2 additions & 2 deletions relayer/cmd/import_beacon_state.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ func importBeaconState(cmd *cobra.Command, _ []string) error {

p := protocol.New(conf.Source.Beacon.Spec, conf.Sink.Parachain.HeaderRedundancy)
store := store.New(conf.Source.Beacon.DataStore.Location, conf.Source.Beacon.DataStore.MaxEntries, *p)
beaconClient := api.NewBeaconClient(conf.Source.Beacon.Endpoint, conf.Source.Beacon.StateEndpoint)
syncer := syncer.New(beaconClient, &store, p)
beaconClient := api.NewBeaconClient(conf.Source.Beacon.Endpoint)
syncer := syncer.New(beaconClient, p, nil)

err = store.Connect()
if err != nil {
Expand Down
12 changes: 4 additions & 8 deletions relayer/cmd/import_execution_header.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package cmd

import (
"fmt"
"io/ioutil"
"os"
"strings"

"github.com/snowfork/snowbridge/relayer/chain/parachain"
Expand All @@ -12,7 +12,6 @@ import (
"github.com/snowfork/snowbridge/relayer/relays/beacon/header/syncer"
"github.com/snowfork/snowbridge/relayer/relays/beacon/header/syncer/api"
"github.com/snowfork/snowbridge/relayer/relays/beacon/protocol"
"github.com/snowfork/snowbridge/relayer/relays/beacon/store"

"github.com/ethereum/go-ethereum/common"
log "github.com/sirupsen/logrus"
Expand Down Expand Up @@ -110,12 +109,9 @@ func importExecutionHeaderFn(cmd *cobra.Command, _ []string) error {
log.WithField("hash", beaconHeader).Info("will be syncing execution header for beacon hash")

p := protocol.New(conf.Source.Beacon.Spec, conf.Sink.Parachain.HeaderRedundancy)
store := store.New(conf.Source.Beacon.DataStore.Location, conf.Source.Beacon.DataStore.MaxEntries, *p)
store.Connect()
defer store.Close()

client := api.NewBeaconClient(lodestarEndpoint, lodestarEndpoint)
syncer := syncer.New(client, &store, p)
client := api.NewBeaconClient(lodestarEndpoint)
syncer := syncer.New(client, p, nil)

beaconHeaderHash := common.HexToHash(finalizedHeader)

Expand Down Expand Up @@ -156,7 +152,7 @@ func importExecutionHeaderFn(cmd *cobra.Command, _ []string) error {

func getKeyPair(privateKeyFile string) (*sr25519.Keypair, error) {
var cleanedKeyURI string
content, err := ioutil.ReadFile(privateKeyFile)
content, err := os.ReadFile(privateKeyFile)
if err != nil {
return nil, fmt.Errorf("cannot read key file: %w", err)
}
Expand Down
93 changes: 93 additions & 0 deletions relayer/cmd/run/beacon-state/command.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
package beaconstate

import (
"context"
"log"
"os"
"os/signal"
"syscall"

"github.com/sirupsen/logrus"
beaconstate "github.com/snowfork/snowbridge/relayer/relays/beacon-state"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"golang.org/x/sync/errgroup"
)

var configFile string

func Command() *cobra.Command {
cmd := &cobra.Command{
Use: "beacon-state-service",
Short: "Start the beacon state service",
Args: cobra.ExactArgs(0),
RunE: run,
}

cmd.Flags().StringVar(&configFile, "config", "", "Path to configuration file")
cmd.MarkFlagRequired("config")

return cmd
}

func run(_ *cobra.Command, _ []string) error {
log.SetOutput(logrus.WithFields(logrus.Fields{"logger": "stdlib"}).WriterLevel(logrus.InfoLevel))
logrus.SetLevel(logrus.DebugLevel)

logrus.Info("Beacon state service started up")

viper.SetConfigFile(configFile)
if err := viper.ReadInConfig(); err != nil {
return err
}

var config beaconstate.Config
err := viper.UnmarshalExact(&config)
if err != nil {
return err
}

err = config.Validate()
if err != nil {
logrus.WithError(err).Fatal("Configuration file validation failed")
return err
}

service := beaconstate.New(&config)

ctx, cancel := context.WithCancel(context.Background())
defer cancel()

eg, ctx := errgroup.WithContext(ctx)

// Ensure clean termination upon SIGINT, SIGTERM
eg.Go(func() error {
notify := make(chan os.Signal, 1)
signal.Notify(notify, syscall.SIGINT, syscall.SIGTERM)

select {
case <-ctx.Done():
return ctx.Err()
case sig := <-notify:
logrus.WithField("signal", sig.String()).Info("Received signal")
cancel()
}

return nil
})

err = service.Start(ctx, eg)
if err != nil {
logrus.WithError(err).Fatal("Unhandled error")
cancel()
return err
}

err = eg.Wait()
if err != nil {
logrus.WithError(err).Fatal("Unhandled error")
return err
}

return nil
}
2 changes: 2 additions & 0 deletions relayer/cmd/run/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package run

import (
"github.com/snowfork/snowbridge/relayer/cmd/run/beacon"
beaconstate "github.com/snowfork/snowbridge/relayer/cmd/run/beacon-state"
"github.com/snowfork/snowbridge/relayer/cmd/run/beefy"
"github.com/snowfork/snowbridge/relayer/cmd/run/execution"
"github.com/snowfork/snowbridge/relayer/cmd/run/fisherman"
Expand All @@ -20,6 +21,7 @@ func Command() *cobra.Command {
cmd.AddCommand(beefy.Command())
cmd.AddCommand(parachain.Command())
cmd.AddCommand(beacon.Command())
cmd.AddCommand(beaconstate.Command())
cmd.AddCommand(execution.Command())
cmd.AddCommand(reward.Command())
cmd.AddCommand(fisherman.Command())
Expand Down
4 changes: 2 additions & 2 deletions relayer/cmd/store_beacon_state.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ func storeBeaconState(cmd *cobra.Command, _ []string) error {

p := protocol.New(conf.Source.Beacon.Spec, conf.Sink.Parachain.HeaderRedundancy)
store := store.New(conf.Source.Beacon.DataStore.Location, conf.Source.Beacon.DataStore.MaxEntries, *p)
beaconClient := api.NewBeaconClient(conf.Source.Beacon.Endpoint, conf.Source.Beacon.StateEndpoint)
syncer := syncer.New(beaconClient, &store, p)
beaconClient := api.NewBeaconClient(conf.Source.Beacon.Endpoint)
syncer := syncer.New(beaconClient, p, nil)

err = store.Connect()
if err != nil {
Expand Down
Loading
Loading