This commit is contained in:
Andrew Jackson (Ajax) 2023-11-06 23:13:12 -06:00
parent d18cb5d51e
commit 02d3e24d38

View File

@ -4,6 +4,8 @@ import (
"bytes" "bytes"
"context" "context"
"fmt" "fmt"
"os"
"path"
"strings" "strings"
"github.com/BurntSushi/toml" "github.com/BurntSushi/toml"
@ -78,8 +80,8 @@ func fromMiner(cctx *cli.Context) error {
db, err := harmonydb.NewFromConfig(smCfg.HarmonyDB) db, err := harmonydb.NewFromConfig(smCfg.HarmonyDB)
if err != nil { if err != nil {
return fmt.Errorf("Could not reach the database. Ensure the Miner config toml's HarmonyDB entry" + return fmt.Errorf("could not reach the database. Ensure the Miner config toml's HarmonyDB entry"+
" is setup to reach Yugabyte correctly.") " is setup to reach Yugabyte correctly: %w", err)
} }
var titles []string var titles []string
@ -94,13 +96,14 @@ func fromMiner(cctx *cli.Context) error {
} }
msg := "Layer " + name + ` created. ` msg := "Layer " + name + ` created. `
// Step 1: copy over identical settings: // Copy over identical settings:
buf := &bytes.Buffer{}
if err = toml.NewEncoder(buf).Encode(smCfg); err != nil { buf, err := os.ReadFile(path.Join(lr.Path(), "config.toml"))
return err if err != nil {
return fmt.Errorf("could not read config.toml: %w", err)
} }
var lpCfg config.LotusProviderConfig var lpCfg config.LotusProviderConfig
_, err = toml.Decode(buf.String(), &lpCfg) _, err = toml.Decode(string(buf), &lpCfg)
if err != nil { if err != nil {
return fmt.Errorf("could not decode toml: %w", err) return fmt.Errorf("could not decode toml: %w", err)
} }
@ -124,18 +127,18 @@ func fromMiner(cctx *cli.Context) error {
// Populate API Key // Populate API Key
_, header, err := cliutil.GetRawAPI(cctx, repo.FullNode, "v0") _, header, err := cliutil.GetRawAPI(cctx, repo.FullNode, "v0")
if err != nil { if err != nil {
return fmt.Errorf("Cannot read API: %w", err) return fmt.Errorf("cannot read API: %w", err)
} }
lpCfg.Apis.FULLNODE_API_INFO = []string{header.Get("Authorization")[7:]} lpCfg.Apis.FULLNODE_API_INFO = []string{header.Get("Authorization")[7:]}
// Step 4: Enable WindowPoSt // Enable WindowPoSt
lpCfg.Subsystems.EnableWindowPost = true lpCfg.Subsystems.EnableWindowPost = true
msg += `\nBefore running lotus-provider, ensure any miner/worker answering of WindowPost is disabled.\n` msg += `\nBefore running lotus-provider, ensure any miner/worker answering of WindowPost is disabled.\n`
// Step 5 Express as configTOML // Express as configTOML
configTOML := &bytes.Buffer{} configTOML := &bytes.Buffer{}
if err = toml.NewEncoder(buf).Encode(lpCfg); err != nil { if err = toml.NewEncoder(configTOML).Encode(lpCfg); err != nil {
return err return err
} }