From c804c8fd7181802ea3112bb4ba486591ea10780f Mon Sep 17 00:00:00 2001 From: Alok Menghrajani Date: Sun, 14 Oct 2018 15:00:05 -0700 Subject: [PATCH] Check that btcd is running on the right chain We have a similar check in electrum_backend.go. Let's do the same check for Btcd. --- backend/btcd_backend.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/backend/btcd_backend.go b/backend/btcd_backend.go index e5addd7..e77b22d 100644 --- a/backend/btcd_backend.go +++ b/backend/btcd_backend.go @@ -66,6 +66,16 @@ func NewBtcdBackend(maxBlockHeight int64, hostPort, user, pass string, network u return nil, errors.Wrap(err, "could not create a Btcd RPC client") } + // Check that we are talking to the right chain + genesis, err := client.GetBlockHash(0) + if err != nil { + return nil, errors.Wrap(err, "GetBlockHash(0) failed") + } + if genesis.String() != utils.GenesisBlock(network) { + return nil, errors.New(fmt.Sprintf("Unexpected genesis block %s != %s", genesis.String(), utils.GenesisBlock(network))) + } + fmt.Printf("%+v\n", genesis) + actualMaxHeight, err := client.GetBlockCount() maxAllowedHeight := actualMaxHeight - minConfirmations if err != nil {