From 629c5ea027b4f33e16c028adbcc949d5b2e2d541 Mon Sep 17 00:00:00 2001 From: "Andrew Jackson (Ajax)" Date: Tue, 28 May 2024 17:15:40 -0500 Subject: [PATCH] Migration DB env --- cmd/curio/guidedsetup/guidedsetup.go | 119 ++- cmd/curio/internal/translations/catalog.go | 771 +++++++++--------- .../translations/locales/en/out.gotext.json | 190 ++--- .../locales/ko/messages.gotext.json | 80 +- .../locales/zh/messages.gotext.json | 78 ++ go.mod | 6 +- go.sum | 4 + 7 files changed, 719 insertions(+), 529 deletions(-) diff --git a/cmd/curio/guidedsetup/guidedsetup.go b/cmd/curio/guidedsetup/guidedsetup.go index d168e3147..a8993f84d 100644 --- a/cmd/curio/guidedsetup/guidedsetup.go +++ b/cmd/curio/guidedsetup/guidedsetup.go @@ -12,7 +12,6 @@ import ( "encoding/base64" "encoding/json" "fmt" - "github.com/filecoin-project/curio/deps" "io" "math/bits" "net/http" @@ -20,14 +19,12 @@ import ( "os/signal" "path" "reflect" - "strconv" "strings" "syscall" "time" "github.com/BurntSushi/toml" "github.com/charmbracelet/lipgloss" - "github.com/docker/go-units" "github.com/manifoldco/promptui" "github.com/mitchellh/go-homedir" "github.com/samber/lo" @@ -40,15 +37,22 @@ import ( "github.com/filecoin-project/go-state-types/abi" _ "github.com/filecoin-project/curio/cmd/curio/internal/translations" - "github.com/filecoin-project/lotus/api" - "github.com/filecoin-project/lotus/api/v1api" + "github.com/filecoin-project/curio/deps" + "github.com/filecoin-project/curio/harmony/harmonydb" + "github.com/filecoin-project/lotus/build" - "github.com/filecoin-project/lotus/chain/types" - "github.com/filecoin-project/lotus/cli/spcli" + cliutil "github.com/filecoin-project/lotus/cli/util" - "github.com/filecoin-project/curio/harmony/harmonydb" + "github.com/filecoin-project/lotus/lib/must" "github.com/filecoin-project/lotus/node/config" "github.com/filecoin-project/lotus/node/repo" + + "github.com/filecoin-project/lotus/cli/spcli" + + "github.com/filecoin-project/lotus/chain/types" + + "github.com/filecoin-project/lotus/api" + "github.com/filecoin-project/lotus/api/v1api" ) // URL to upload user-selected fields to help direct developer's focus. @@ -209,6 +213,7 @@ var migrationSteps = []migrationStep{ doc, oneLastThing, complete, + afterRan, } type newMinerStep func(data *MigrationData) @@ -220,6 +225,7 @@ var newMinerSteps = []newMinerStep{ doc, oneLastThing, completeInit, + afterRan, } type MigrationData struct { @@ -229,6 +235,7 @@ type MigrationData struct { MinerConfigPath string MinerConfig *config.StorageMiner DB *harmonydb.DB + HarmonyCfg config.HarmonyDB MinerID address.Address full v1api.FullNode cctx *cli.Context @@ -237,20 +244,54 @@ type MigrationData struct { owner address.Address worker address.Address sender address.Address - ssize abi.SectorSize + ssize string confidence uint64 init bool } func complete(d *MigrationData) { stepCompleted(d, d.T("Lotus-Miner to Curio Migration.")) - d.say(plain, "Try the web interface with %s for further guided improvements.", code.Render("curio run --layers=gui")) +} + +var EnvFiles = []string{"/etc/curio/config.env", "./curio/curio.env", "~/config/curio.env"} + +func afterRan(d *MigrationData) { + // Write curio.env file. TODO!!!!!!!!!! + // Inform users they need to copy this to /etc/curio.env or ~/.config/curio.env to run Curio. + places := append([]string{"/tmp/curio.env", + must.One(os.Getwd()) + "/curio.env", + must.One(os.UserHomeDir()) + "/curio.env"}, EnvFiles...) +saveConfigFile: + _, where, err := (&promptui.Select{ + Label: d.T("Where should we save your database config file?"), + Items: places, + Templates: d.selectTemplates, + }).Run() + if err != nil { + d.say(notice, "Aborting migration.", err.Error()) + os.Exit(1) + } + args := []string{fmt.Sprintf("CURIO_DB=postgres://%s:%s@%s:%s/%s", + d.HarmonyCfg.Username, + d.HarmonyCfg.Password, + d.HarmonyCfg.Hosts[0], + d.HarmonyCfg.Port, + d.HarmonyCfg.Database)} + + // Write the file + err = os.WriteFile(where, []byte(strings.Join(args, "\n")), 0644) + if err != nil { + d.say(notice, "Error writing file: %s", err.Error()) + goto saveConfigFile + } + + d.say(plain, "Try the web interface with %s ", code.Render("curio run --layers=gui")) + d.say(plain, "For more servers, copy curio.env to /etc/curio.env and add the CURIO_LAYERS env to assign purposes.") d.say(plain, "You can now migrate your market node (%s), if applicable.", "Boost") } func completeInit(d *MigrationData) { stepCompleted(d, d.T("New Miner initialization complete.")) - d.say(plain, "Try the web interface with %s for further guided improvements.", code.Render("curio run --layers=gui")) } func configToDB(d *MigrationData) { @@ -458,6 +499,8 @@ func yugabyteConnect(d *MigrationData) { if err != nil { hcfg := getDBDetails(d) harmonyCfg = *hcfg + } else { + d.HarmonyCfg = harmonyCfg } d.say(plain, "Connected to Yugabyte. Schema is current.") @@ -608,15 +651,15 @@ func stepCompleted(d *MigrationData, step string) { func stepCreateActor(d *MigrationData) { d.say(plain, "Initializing a new miner actor.") + d.ssize = "32 GiB" for { i, _, err := (&promptui.Select{ Label: d.T("Enter the info to create a new miner"), Items: []string{ - d.T("Owner Address: %s", d.owner.String()), - d.T("Worker Address: %s", d.worker.String()), - d.T("Sender Address: %s", d.sender.String()), + d.T("Owner Wallet: %s", d.owner.String()), + d.T("Worker Wallet: %s", d.worker.String()), + d.T("Sender Wallet: %s", d.sender.String()), d.T("Sector Size: %d", d.ssize), - d.T("Confidence epochs: %d", d.confidence), d.T("Continue to verify the addresses and create a new miner actor.")}, Size: 6, Templates: d.selectTemplates, @@ -660,41 +703,33 @@ func stepCreateActor(d *MigrationData) { } continue case 3: - val, err := (&promptui.Prompt{ - Label: d.T("Enter the sector size"), + i, _, err := (&promptui.Select{ + Label: d.T("Select the Sector Size"), + Items: []string{ + d.T("64 GiB"), + d.T("32 GiB"), + d.T("8 MiB"), + d.T("2 KiB"), + }, + Size: 4, + Templates: d.selectTemplates, }).Run() if err != nil { - d.say(notice, "No value provided") - continue - } - sectorSize, err := units.RAMInBytes(val) - if err != nil { - d.say(notice, "Failed to parse sector size: %s", err.Error()) - continue + d.say(notice, "Sector selection failed: %s ", err.Error()) + os.Exit(1) } - d.ssize = abi.SectorSize(sectorSize) + + d.ssize = []string{"64 GiB", "32 GiB", "8 MiB", "2 KiB"}[i] continue case 4: - confidenceStr, err := (&promptui.Prompt{ - Label: d.T("Confidence epochs"), - Default: strconv.Itoa(5), - }).Run() - if err != nil { - d.say(notice, err.Error()) - continue - } - confidence, err := strconv.ParseUint(confidenceStr, 10, 64) - if err != nil { - d.say(notice, "Failed to parse confidence: %s", err.Error()) - continue - } - d.confidence = confidence goto minerInit // break out of the for loop once we have all the values } } minerInit: - miner, err := spcli.CreateStorageMiner(d.ctx, d.full, d.owner, d.worker, d.sender, d.ssize, d.confidence) + var ss abi.SectorSize + + miner, err := spcli.CreateStorageMiner(d.ctx, d.full, d.owner, d.worker, d.sender, ss, CONFIDENCE) if err != nil { d.say(notice, "Failed to create the miner actor: %s", err.Error()) os.Exit(1) @@ -704,6 +739,8 @@ minerInit: stepCompleted(d, d.T("Miner %s created successfully", miner.String())) } +const CONFIDENCE = 5 + func stepPresteps(d *MigrationData) { // Setup and connect to YugabyteDB @@ -890,6 +927,8 @@ func getDBDetails(d *MigrationData) *config.HarmonyDB { continue } d.DB = db + d.HarmonyCfg = harmonyCfg + return &harmonyCfg } } diff --git a/cmd/curio/internal/translations/catalog.go b/cmd/curio/internal/translations/catalog.go index 42efc8fce..b5d06acd4 100644 --- a/cmd/curio/internal/translations/catalog.go +++ b/cmd/curio/internal/translations/catalog.go @@ -40,173 +40,175 @@ func init() { } var messageKeyToIndex = map[string]int{ - "Aborting migration.": 21, + "2 KiB": 92, + "32 GiB": 90, + "64 GiB": 89, + "8 MiB": 91, + "Aborting migration.": 12, "Aborting remaining steps.": 9, - "Aggregate-Anonymous: version, chain, and Miner power (bucketed).": 26, - "Cannot reach the DB: %s": 93, - "Cannot read the config.toml file in the provided directory, Error: %s": 68, - "Compare the configurations %s to %s. Changes between the miner IDs other than wallet addreses should be a new, minimal layer for runners that need it.": 120, - "Confidence epochs": 89, - "Confidence epochs: %d": 79, - "Configuration 'base' was created to resemble this lotus-miner's config.toml .": 121, - "Configuration 'base' was updated to include this miner's address": 102, - "Configuration 'base' was updated to include this miner's address (%s) and its wallet setup.": 119, - "Connected to Yugabyte": 62, - "Connected to Yugabyte. Schema is current.": 50, - "Continue to connect and update schema.": 112, - "Continue to verify the addresses and create a new miner actor.": 80, - "Could not create repo from directory: %s. Aborting migration": 69, - "Could not lock miner repo. Your miner must be stopped: %s\n Aborting migration": 70, + "Aggregate-Anonymous: version, chain, and Miner power (bucketed).": 29, + "Cannot reach the DB: %s": 94, + "Cannot read the config.toml file in the provided directory, Error: %s": 71, + "Compare the configurations %s to %s. Changes between the miner IDs other than wallet addreses should be a new, minimal layer for runners that need it.": 122, + "Configuration 'base' was created to resemble this lotus-miner's config.toml .": 123, + "Configuration 'base' was updated to include this miner's address": 103, + "Configuration 'base' was updated to include this miner's address (%s) and its wallet setup.": 121, + "Connected to Yugabyte": 65, + "Connected to Yugabyte. Schema is current.": 53, + "Continue to connect and update schema.": 113, + "Continue to verify the addresses and create a new miner actor.": 82, + "Could not create repo from directory: %s. Aborting migration": 72, + "Could not lock miner repo. Your miner must be stopped: %s\n Aborting migration": 73, "Create a new miner": 8, "Ctrl+C pressed in Terminal": 5, - "Database config error occurred, abandoning migration: %s ": 113, - "Database: %s": 111, - "Documentation: ": 36, + "Database config error occurred, abandoning migration: %s ": 114, + "Database: %s": 112, + "Documentation: ": 39, "Each step needs your confirmation and can be reversed. Press Ctrl+C to exit at any time.": 4, - "Enabling Sector Indexing in the database.": 51, - "Enter %s address": 85, - "Enter the Yugabyte database %s": 116, - "Enter the Yugabyte database host(s)": 114, - "Enter the info to connect to your Yugabyte database installation (https://download.yugabyte.com/)": 106, - "Enter the info to create a new miner": 74, - "Enter the owner address": 82, - "Enter the path to the configuration directory used by %s": 66, - "Enter the sector size": 86, - "Error closing backup file: %s": 59, - "Error connecting to Yugabyte database: %s": 117, - "Error connecting to full node API: %s": 94, - "Error creating backup file: %s": 56, - "Error encoding config.toml: %s": 52, - "Error expanding path: %s": 54, - "Error getting API: %s": 15, - "Error getting miner info: %s": 31, - "Error getting miner power: %s": 29, - "Error getting token: %s": 17, - "Error interpreting miner ID: %s: ID: %s": 44, - "Error marshalling message: %s": 30, - "Error reading config.toml: %s": 57, - "Error reading filemode of config.toml: %s": 55, - "Error saving config to layer: %s. Aborting Migration": 22, - "Error sending message: %s": 33, - "Error sending message: Status %s, Message: ": 34, - "Error signing message: %s": 32, - "Error verifying sectors: %s": 45, - "Error writing backup file: %s": 58, - "Error writing config.toml: %s": 60, - "Failed to create the miner actor: %s": 91, - "Failed to generate default config: %s": 100, - "Failed to generate random bytes for secret: %s": 96, - "Failed to get API info for FullNode: %w": 98, - "Failed to insert 'base' config layer in database: %s": 101, - "Failed to load base config from database: %s": 103, - "Failed to parse base config: %s": 104, - "Failed to parse confidence: %s": 90, - "Failed to parse sector size: %s": 88, - "Failed to parse the address: %s": 84, - "Failed to regenerate base config: %s": 105, - "Failed to verify the auth token from daemon node: %s": 99, - "Filecoin %s channels: %s and %s": 39, - "Hint: I am someone running Curio on whichever chain.": 27, - "Host: %s": 107, + "Enabling Sector Indexing in the database.": 54, + "Enter %s address": 87, + "Enter the Yugabyte database %s": 117, + "Enter the Yugabyte database host(s)": 115, + "Enter the info to connect to your Yugabyte database installation (https://download.yugabyte.com/)": 107, + "Enter the info to create a new miner": 77, + "Enter the owner address": 84, + "Enter the path to the configuration directory used by %s": 69, + "Error closing backup file: %s": 62, + "Error connecting to Yugabyte database: %s": 119, + "Error connecting to full node API: %s": 95, + "Error creating backup file: %s": 59, + "Error encoding config.toml: %s": 55, + "Error expanding path: %s": 57, + "Error getting API: %s": 19, + "Error getting miner info: %s": 34, + "Error getting miner power: %s": 32, + "Error getting token: %s": 21, + "Error interpreting miner ID: %s: ID: %s": 47, + "Error marshalling message: %s": 33, + "Error reading config.toml: %s": 60, + "Error reading filemode of config.toml: %s": 58, + "Error saving config to layer: %s. Aborting Migration": 25, + "Error sending message: %s": 36, + "Error sending message: Status %s, Message: ": 37, + "Error signing message: %s": 35, + "Error verifying sectors: %s": 48, + "Error writing backup file: %s": 61, + "Error writing config.toml: %s": 63, + "Error writing file: %s": 13, + "Failed to generate default config: %s": 101, + "Failed to generate random bytes for secret: %s": 97, + "Failed to get API info for FullNode: %w": 99, + "Failed to insert 'base' config layer in database: %s": 102, + "Failed to load base config from database: %s": 104, + "Failed to parse base config: %s": 105, + "Failed to parse the address: %s": 86, + "Failed to regenerate base config: %s": 106, + "Failed to verify the auth token from daemon node: %s": 100, + "Filecoin %s channels: %s and %s": 42, + "For more servers, copy curio.env to /etc/curio.env and add the CURIO_LAYERS env to assign purposes.": 15, + "Hint: I am someone running Curio on whichever chain.": 30, + "Host: %s": 108, "I want to:": 6, - "Increase reliability using redundancy: start multiple machines with at-least the post layer: 'curio run --layers=post'": 40, - "Individual Data: Miner ID, Curio version, chain (%s or %s). Signed.": 25, - "Initializing a new miner actor.": 73, - "Layer %s created. ": 122, + "Increase reliability using redundancy: start multiple machines with at-least the post layer: 'curio run --layers=post'": 43, + "Individual Data: Miner ID, Curio version, chain (%s or %s). Signed.": 28, + "Initializing a new miner actor.": 76, + "Layer %s created. ": 124, "Lotus-Miner to Curio Migration.": 10, - "Message sent.": 35, + "Message sent.": 38, "Migrate from existing Lotus-Miner": 7, - "Migrating lotus-miner config.toml to Curio in-database configuration.": 14, - "Migrating metadata for %d sectors.": 118, - "Miner %s created successfully": 92, - "Miner creation error occurred: %s ": 81, - "New Miner initialization complete.": 13, - "No address provided": 83, - "No host provided": 115, - "No path provided, abandoning migration ": 67, - "No value provided": 87, - "No, abort": 20, - "Nothing.": 28, - "Now shut down lotus-miner and lotus-worker and use run %s instead.": 47, - "One database can serve multiple miner IDs: Run a migration for each lotus-miner.": 41, - "Other": 65, - "Owner Address: %s": 75, - "Password: %s": 110, - "Please do not run guided-setup again as miner creation is not idempotent. You need to run 'curio config new-cluster %s' to finish the configuration": 97, - "Please start (or restart) %s now that database credentials are in %s.": 42, - "Port: %s": 108, - "Pre-initialization steps complete": 95, - "Press return to continue": 48, - "Press return to update %s with Yugabyte info. A Backup file will be written to that folder before changes are made.": 53, - "Read Miner Config": 71, - "Restart Lotus Miner. ": 61, - "Sector Size: %d": 78, - "Sectors verified. %d sector locations found.": 49, - "Select the location of your lotus-miner config directory?": 64, - "Select what you want to share with the Curio team.": 24, - "Sender Address: %s": 77, - "Step Complete: %s\n": 72, - "The '%s' layer stores common configuration. All curio instances can include it in their %s argument.": 37, - "The Curio team wants to improve the software you use. Tell the team you're using `%s`.": 23, - "The sectors are in the database. The database is ready for %s.": 46, + "Migrating lotus-miner config.toml to Curio in-database configuration.": 18, + "Migrating metadata for %d sectors.": 120, + "Miner creation error occurred: %s ": 83, + "New Miner initialization complete.": 17, + "No address provided": 85, + "No host provided": 116, + "No path provided, abandoning migration ": 70, + "No value provided": 118, + "No, abort": 24, + "Nothing.": 31, + "Now shut down lotus-miner and lotus-worker and use run %s instead.": 50, + "One database can serve multiple miner IDs: Run a migration for each lotus-miner.": 44, + "Other": 68, + "Owner Wallet: %s": 78, + "Password: %s": 111, + "Please do not run guided-setup again as miner creation is not idempotent. You need to run 'curio config new-cluster %s' to finish the configuration": 98, + "Please start (or restart) %s now that database credentials are in %s.": 45, + "Port: %s": 109, + "Pre-initialization steps complete": 96, + "Press return to continue": 51, + "Press return to update %s with Yugabyte info. A Backup file will be written to that folder before changes are made.": 56, + "Read Miner Config": 74, + "Restart Lotus Miner. ": 64, + "Sector Size: %d": 81, + "Sector selection failed: %s ": 93, + "Sectors verified. %d sector locations found.": 52, + "Select the Sector Size": 88, + "Select the location of your lotus-miner config directory?": 67, + "Select what you want to share with the Curio team.": 27, + "Sender Wallet: %s": 80, + "Step Complete: %s\n": 75, + "The '%s' layer stores common configuration. All curio instances can include it in their %s argument.": 40, + "The Curio team wants to improve the software you use. Tell the team you're using `%s`.": 26, + "The sectors are in the database. The database is ready for %s.": 49, "This interactive tool creates a new miner actor and creates the basic configuration layer for it.": 1, "This interactive tool migrates lotus-miner to Curio in 5 minutes.": 3, "This process is partially idempotent. Once a new miner actor has been created and subsequent steps fail, the user need to run 'curio config new-cluster < miner ID >' to finish the configuration.": 2, - "To run Curio: With machine or cgroup isolation, use the command (with example layer selection):": 124, - "To start, ensure your sealing pipeline is drained and shut-down lotus-miner.": 63, - "To work with the config: ": 123, - "Try the web interface with %s for further guided improvements.": 11, - "Unmigratable sectors found. Do you want to continue?": 18, - "Use the arrow keys to navigate: ↓ ↑ → ← ": 0, - "Username: %s": 109, - "Waiting for %s to write sectors into Yugabyte.": 43, - "Worker Address: %s": 76, - "Yes, continue": 19, - "You can add other layers for per-machine configuration changes.": 38, - "You can now migrate your market node (%s), if applicable.": 12, - "could not get API info for FullNode: %w": 16, + "To run Curio: With machine or cgroup isolation, use the command (with example layer selection):": 126, + "To start, ensure your sealing pipeline is drained and shut-down lotus-miner.": 66, + "To work with the config: ": 125, + "Try the web interface with %s ": 14, + "Unmigratable sectors found. Do you want to continue?": 22, + "Use the arrow keys to navigate: ↓ ↑ → ← ": 0, + "Username: %s": 110, + "Waiting for %s to write sectors into Yugabyte.": 46, + "Where should we save your database config file?": 11, + "Worker Wallet: %s": 79, + "Yes, continue": 23, + "You can add other layers for per-machine configuration changes.": 41, + "You can now migrate your market node (%s), if applicable.": 16, + "could not get API info for FullNode: %w": 20, } -var enIndex = []uint32{ // 126 elements +var enIndex = []uint32{ // 128 elements // Entry 0 - 1F 0x00000000, 0x00000035, 0x00000097, 0x0000015a, 0x0000019c, 0x000001f5, 0x00000210, 0x0000021b, 0x0000023d, 0x00000250, 0x0000026a, 0x0000028a, - 0x000002cc, 0x00000309, 0x0000032c, 0x00000372, - 0x0000038b, 0x000003b6, 0x000003d1, 0x00000406, - 0x00000414, 0x0000041e, 0x00000432, 0x0000046a, - 0x000004c4, 0x000004f7, 0x00000541, 0x00000582, - 0x000005b7, 0x000005c0, 0x000005e1, 0x00000602, + 0x000002ba, 0x000002ce, 0x000002e8, 0x0000030e, + 0x00000372, 0x000003af, 0x000003d2, 0x00000418, + 0x00000431, 0x0000045c, 0x00000477, 0x000004ac, + 0x000004ba, 0x000004c4, 0x000004fc, 0x00000556, + 0x00000589, 0x000005d3, 0x00000614, 0x00000649, // Entry 20 - 3F - 0x00000622, 0x0000063f, 0x0000065c, 0x0000068f, - 0x0000069d, 0x000006b1, 0x0000071c, 0x0000075c, - 0x00000785, 0x000007fc, 0x0000084d, 0x00000899, - 0x000008cb, 0x000008f9, 0x00000918, 0x0000095a, - 0x000009a0, 0x000009b9, 0x000009e9, 0x00000a13, - 0x00000a3d, 0x00000a5f, 0x00000ad6, 0x00000af2, - 0x00000b1f, 0x00000b41, 0x00000b62, 0x00000b83, - 0x00000ba4, 0x00000bc5, 0x00000bdf, 0x00000bf5, + 0x00000652, 0x00000673, 0x00000694, 0x000006b4, + 0x000006d1, 0x000006ee, 0x00000721, 0x0000072f, + 0x00000743, 0x000007ae, 0x000007ee, 0x00000817, + 0x0000088e, 0x000008df, 0x0000092b, 0x0000095d, + 0x0000098b, 0x000009aa, 0x000009ec, 0x00000a32, + 0x00000a4b, 0x00000a7b, 0x00000aa5, 0x00000acf, + 0x00000af1, 0x00000b68, 0x00000b84, 0x00000bb1, + 0x00000bd3, 0x00000bf4, 0x00000c15, 0x00000c36, // Entry 40 - 5F - 0x00000c42, 0x00000c7c, 0x00000c82, 0x00000cbe, - 0x00000cea, 0x00000d33, 0x00000d73, 0x00000dc4, - 0x00000dd6, 0x00000df0, 0x00000e10, 0x00000e35, - 0x00000e4a, 0x00000e60, 0x00000e76, 0x00000e89, - 0x00000ea2, 0x00000ee1, 0x00000f0b, 0x00000f23, - 0x00000f37, 0x00000f5a, 0x00000f6e, 0x00000f84, - 0x00000f96, 0x00000fb9, 0x00000fcb, 0x00000fed, - 0x00001015, 0x00001036, 0x00001051, 0x0000107a, + 0x00000c57, 0x00000c71, 0x00000c87, 0x00000cd4, + 0x00000d0e, 0x00000d14, 0x00000d50, 0x00000d7c, + 0x00000dc5, 0x00000e05, 0x00000e56, 0x00000e68, + 0x00000e82, 0x00000ea2, 0x00000ec7, 0x00000edb, + 0x00000ef0, 0x00000f05, 0x00000f18, 0x00000f57, + 0x00000f81, 0x00000f99, 0x00000fad, 0x00000fd0, + 0x00000fe4, 0x00000ffb, 0x00001002, 0x00001009, + 0x0000100f, 0x00001015, 0x00001039, 0x00001054, // Entry 60 - 7F - 0x0000109c, 0x000010ce, 0x00001165, 0x00001190, - 0x000011c8, 0x000011f1, 0x00001229, 0x0000126a, - 0x0000129a, 0x000012bd, 0x000012e5, 0x00001347, - 0x00001353, 0x0000135f, 0x0000136f, 0x0000137f, - 0x0000138f, 0x000013b6, 0x000013f7, 0x0000141b, - 0x0000142c, 0x0000144e, 0x0000147b, 0x000014a1, - 0x00001500, 0x0000159d, 0x000015eb, 0x00001605, - 0x00001623, 0x00001683, -} // Size: 528 bytes + 0x0000107d, 0x0000109f, 0x000010d1, 0x00001168, + 0x00001193, 0x000011cb, 0x000011f4, 0x0000122c, + 0x0000126d, 0x0000129d, 0x000012c0, 0x000012e8, + 0x0000134a, 0x00001356, 0x00001362, 0x00001372, + 0x00001382, 0x00001392, 0x000013b9, 0x000013fa, + 0x0000141e, 0x0000142f, 0x00001451, 0x00001463, + 0x00001490, 0x000014b6, 0x00001515, 0x000015b2, + 0x00001600, 0x0000161a, 0x00001638, 0x00001698, +} // Size: 536 bytes -const enData string = "" + // Size: 5763 bytes +const enData string = "" + // Size: 5784 bytes "\x04\x00\x01 0\x02Use the arrow keys to navigate: ↓ ↑ → ←\x02This intera" + "ctive tool creates a new miner actor and creates the basic configuration" + " layer for it.\x02This process is partially idempotent. Once a new miner" + @@ -216,271 +218,274 @@ const enData string = "" + // Size: 5763 bytes "h step needs your confirmation and can be reversed. Press Ctrl+C to exit" + " at any time.\x02Ctrl+C pressed in Terminal\x02I want to:\x02Migrate fro" + "m existing Lotus-Miner\x02Create a new miner\x02Aborting remaining steps" + - ".\x02Lotus-Miner to Curio Migration.\x02Try the web interface with %[1]s" + - " for further guided improvements.\x02You can now migrate your market nod" + - "e (%[1]s), if applicable.\x02New Miner initialization complete.\x02Migra" + - "ting lotus-miner config.toml to Curio in-database configuration.\x02Erro" + - "r getting API: %[1]s\x02could not get API info for FullNode: %[1]w\x02Er" + - "ror getting token: %[1]s\x02Unmigratable sectors found. Do you want to c" + - "ontinue?\x02Yes, continue\x02No, abort\x02Aborting migration.\x02Error s" + - "aving config to layer: %[1]s. Aborting Migration\x02The Curio team wants" + - " to improve the software you use. Tell the team you're using `%[1]s`." + - "\x02Select what you want to share with the Curio team.\x02Individual Dat" + - "a: Miner ID, Curio version, chain (%[1]s or %[2]s). Signed.\x02Aggregate" + - "-Anonymous: version, chain, and Miner power (bucketed).\x02Hint: I am so" + - "meone running Curio on whichever chain.\x02Nothing.\x02Error getting min" + - "er power: %[1]s\x02Error marshalling message: %[1]s\x02Error getting min" + - "er info: %[1]s\x02Error signing message: %[1]s\x02Error sending message:" + - " %[1]s\x04\x00\x01 .\x02Error sending message: Status %[1]s, Message:" + - "\x02Message sent.\x04\x00\x01 \x0f\x02Documentation:\x02The '%[1]s' laye" + - "r stores common configuration. All curio instances can include it in the" + - "ir %[2]s argument.\x02You can add other layers for per-machine configura" + - "tion changes.\x02Filecoin %[1]s channels: %[2]s and %[3]s\x02Increase re" + - "liability using redundancy: start multiple machines with at-least the po" + - "st layer: 'curio run --layers=post'\x02One database can serve multiple m" + - "iner IDs: Run a migration for each lotus-miner.\x02Please start (or rest" + - "art) %[1]s now that database credentials are in %[2]s.\x02Waiting for %[" + - "1]s to write sectors into Yugabyte.\x02Error interpreting miner ID: %[1]" + - "s: ID: %[2]s\x02Error verifying sectors: %[1]s\x02The sectors are in the" + - " database. The database is ready for %[1]s.\x02Now shut down lotus-miner" + - " and lotus-worker and use run %[1]s instead.\x02Press return to continue" + - "\x02Sectors verified. %[1]d sector locations found.\x02Connected to Yuga" + - "byte. Schema is current.\x02Enabling Sector Indexing in the database." + - "\x02Error encoding config.toml: %[1]s\x02Press return to update %[1]s wi" + - "th Yugabyte info. A Backup file will be written to that folder before ch" + - "anges are made.\x02Error expanding path: %[1]s\x02Error reading filemode" + - " of config.toml: %[1]s\x02Error creating backup file: %[1]s\x02Error rea" + - "ding config.toml: %[1]s\x02Error writing backup file: %[1]s\x02Error clo" + - "sing backup file: %[1]s\x02Error writing config.toml: %[1]s\x04\x00\x01 " + - "\x15\x02Restart Lotus Miner.\x02Connected to Yugabyte\x02To start, ensur" + - "e your sealing pipeline is drained and shut-down lotus-miner.\x02Select " + - "the location of your lotus-miner config directory?\x02Other\x02Enter the" + - " path to the configuration directory used by %[1]s\x04\x00\x01 '\x02No p" + - "ath provided, abandoning migration\x02Cannot read the config.toml file i" + - "n the provided directory, Error: %[1]s\x02Could not create repo from dir" + - "ectory: %[1]s. Aborting migration\x02Could not lock miner repo. Your min" + - "er must be stopped: %[1]s\x0a Aborting migration\x02Read Miner Config" + - "\x04\x00\x01\x0a\x15\x02Step Complete: %[1]s\x02Initializing a new miner" + - " actor.\x02Enter the info to create a new miner\x02Owner Address: %[1]s" + - "\x02Worker Address: %[1]s\x02Sender Address: %[1]s\x02Sector Size: %[1]d" + - "\x02Confidence epochs: %[1]d\x02Continue to verify the addresses and cre" + - "ate a new miner actor.\x04\x00\x01 %\x02Miner creation error occurred: %" + - "[1]s\x02Enter the owner address\x02No address provided\x02Failed to pars" + - "e the address: %[1]s\x02Enter %[1]s address\x02Enter the sector size\x02" + - "No value provided\x02Failed to parse sector size: %[1]s\x02Confidence ep" + - "ochs\x02Failed to parse confidence: %[1]s\x02Failed to create the miner " + - "actor: %[1]s\x02Miner %[1]s created successfully\x02Cannot reach the DB:" + - " %[1]s\x02Error connecting to full node API: %[1]s\x02Pre-initialization" + - " steps complete\x02Failed to generate random bytes for secret: %[1]s\x02" + - "Please do not run guided-setup again as miner creation is not idempotent" + - ". You need to run 'curio config new-cluster %[1]s' to finish the configu" + - "ration\x02Failed to get API info for FullNode: %[1]w\x02Failed to verify" + - " the auth token from daemon node: %[1]s\x02Failed to generate default co" + - "nfig: %[1]s\x02Failed to insert 'base' config layer in database: %[1]s" + - "\x02Configuration 'base' was updated to include this miner's address\x02" + - "Failed to load base config from database: %[1]s\x02Failed to parse base " + - "config: %[1]s\x02Failed to regenerate base config: %[1]s\x02Enter the in" + - "fo to connect to your Yugabyte database installation (https://download.y" + - "ugabyte.com/)\x02Host: %[1]s\x02Port: %[1]s\x02Username: %[1]s\x02Passwo" + - "rd: %[1]s\x02Database: %[1]s\x02Continue to connect and update schema." + - "\x04\x00\x01 <\x02Database config error occurred, abandoning migration: " + - "%[1]s\x02Enter the Yugabyte database host(s)\x02No host provided\x02Ente" + - "r the Yugabyte database %[1]s\x02Error connecting to Yugabyte database: " + - "%[1]s\x02Migrating metadata for %[1]d sectors.\x02Configuration 'base' w" + - "as updated to include this miner's address (%[1]s) and its wallet setup." + - "\x02Compare the configurations %[1]s to %[2]s. Changes between the miner" + - " IDs other than wallet addreses should be a new, minimal layer for runne" + - "rs that need it.\x02Configuration 'base' was created to resemble this lo" + - "tus-miner's config.toml .\x04\x00\x01 \x15\x02Layer %[1]s created.\x04" + - "\x00\x01 \x19\x02To work with the config:\x02To run Curio: With machine " + - "or cgroup isolation, use the command (with example layer selection):" + ".\x02Lotus-Miner to Curio Migration.\x02Where should we save your databa" + + "se config file?\x02Aborting migration.\x02Error writing file: %[1]s\x04" + + "\x00\x01 !\x02Try the web interface with %[1]s\x02For more servers, copy" + + " curio.env to /etc/curio.env and add the CURIO_LAYERS env to assign purp" + + "oses.\x02You can now migrate your market node (%[1]s), if applicable." + + "\x02New Miner initialization complete.\x02Migrating lotus-miner config.t" + + "oml to Curio in-database configuration.\x02Error getting API: %[1]s\x02c" + + "ould not get API info for FullNode: %[1]w\x02Error getting token: %[1]s" + + "\x02Unmigratable sectors found. Do you want to continue?\x02Yes, continu" + + "e\x02No, abort\x02Error saving config to layer: %[1]s. Aborting Migratio" + + "n\x02The Curio team wants to improve the software you use. Tell the team" + + " you're using `%[1]s`.\x02Select what you want to share with the Curio t" + + "eam.\x02Individual Data: Miner ID, Curio version, chain (%[1]s or %[2]s)" + + ". Signed.\x02Aggregate-Anonymous: version, chain, and Miner power (bucke" + + "ted).\x02Hint: I am someone running Curio on whichever chain.\x02Nothing" + + ".\x02Error getting miner power: %[1]s\x02Error marshalling message: %[1]" + + "s\x02Error getting miner info: %[1]s\x02Error signing message: %[1]s\x02" + + "Error sending message: %[1]s\x04\x00\x01 .\x02Error sending message: Sta" + + "tus %[1]s, Message:\x02Message sent.\x04\x00\x01 \x0f\x02Documentation:" + + "\x02The '%[1]s' layer stores common configuration. All curio instances c" + + "an include it in their %[2]s argument.\x02You can add other layers for p" + + "er-machine configuration changes.\x02Filecoin %[1]s channels: %[2]s and " + + "%[3]s\x02Increase reliability using redundancy: start multiple machines " + + "with at-least the post layer: 'curio run --layers=post'\x02One database " + + "can serve multiple miner IDs: Run a migration for each lotus-miner.\x02P" + + "lease start (or restart) %[1]s now that database credentials are in %[2]" + + "s.\x02Waiting for %[1]s to write sectors into Yugabyte.\x02Error interpr" + + "eting miner ID: %[1]s: ID: %[2]s\x02Error verifying sectors: %[1]s\x02Th" + + "e sectors are in the database. The database is ready for %[1]s.\x02Now s" + + "hut down lotus-miner and lotus-worker and use run %[1]s instead.\x02Pres" + + "s return to continue\x02Sectors verified. %[1]d sector locations found." + + "\x02Connected to Yugabyte. Schema is current.\x02Enabling Sector Indexin" + + "g in the database.\x02Error encoding config.toml: %[1]s\x02Press return " + + "to update %[1]s with Yugabyte info. A Backup file will be written to tha" + + "t folder before changes are made.\x02Error expanding path: %[1]s\x02Erro" + + "r reading filemode of config.toml: %[1]s\x02Error creating backup file: " + + "%[1]s\x02Error reading config.toml: %[1]s\x02Error writing backup file: " + + "%[1]s\x02Error closing backup file: %[1]s\x02Error writing config.toml: " + + "%[1]s\x04\x00\x01 \x15\x02Restart Lotus Miner.\x02Connected to Yugabyte" + + "\x02To start, ensure your sealing pipeline is drained and shut-down lotu" + + "s-miner.\x02Select the location of your lotus-miner config directory?" + + "\x02Other\x02Enter the path to the configuration directory used by %[1]s" + + "\x04\x00\x01 '\x02No path provided, abandoning migration\x02Cannot read " + + "the config.toml file in the provided directory, Error: %[1]s\x02Could no" + + "t create repo from directory: %[1]s. Aborting migration\x02Could not loc" + + "k miner repo. Your miner must be stopped: %[1]s\x0a Aborting migration" + + "\x02Read Miner Config\x04\x00\x01\x0a\x15\x02Step Complete: %[1]s\x02Ini" + + "tializing a new miner actor.\x02Enter the info to create a new miner\x02" + + "Owner Wallet: %[1]s\x02Worker Wallet: %[1]s\x02Sender Wallet: %[1]s\x02S" + + "ector Size: %[1]d\x02Continue to verify the addresses and create a new m" + + "iner actor.\x04\x00\x01 %\x02Miner creation error occurred: %[1]s\x02Ent" + + "er the owner address\x02No address provided\x02Failed to parse the addre" + + "ss: %[1]s\x02Enter %[1]s address\x02Select the Sector Size\x0264 GiB\x02" + + "32 GiB\x028 MiB\x022 KiB\x04\x00\x01 \x1f\x02Sector selection failed: %[" + + "1]s\x02Cannot reach the DB: %[1]s\x02Error connecting to full node API: " + + "%[1]s\x02Pre-initialization steps complete\x02Failed to generate random " + + "bytes for secret: %[1]s\x02Please do not run guided-setup again as miner" + + " creation is not idempotent. You need to run 'curio config new-cluster %" + + "[1]s' to finish the configuration\x02Failed to get API info for FullNode" + + ": %[1]w\x02Failed to verify the auth token from daemon node: %[1]s\x02Fa" + + "iled to generate default config: %[1]s\x02Failed to insert 'base' config" + + " layer in database: %[1]s\x02Configuration 'base' was updated to include" + + " this miner's address\x02Failed to load base config from database: %[1]s" + + "\x02Failed to parse base config: %[1]s\x02Failed to regenerate base conf" + + "ig: %[1]s\x02Enter the info to connect to your Yugabyte database install" + + "ation (https://download.yugabyte.com/)\x02Host: %[1]s\x02Port: %[1]s\x02" + + "Username: %[1]s\x02Password: %[1]s\x02Database: %[1]s\x02Continue to con" + + "nect and update schema.\x04\x00\x01 <\x02Database config error occurred," + + " abandoning migration: %[1]s\x02Enter the Yugabyte database host(s)\x02N" + + "o host provided\x02Enter the Yugabyte database %[1]s\x02No value provide" + + "d\x02Error connecting to Yugabyte database: %[1]s\x02Migrating metadata " + + "for %[1]d sectors.\x02Configuration 'base' was updated to include this m" + + "iner's address (%[1]s) and its wallet setup.\x02Compare the configuratio" + + "ns %[1]s to %[2]s. Changes between the miner IDs other than wallet addre" + + "ses should be a new, minimal layer for runners that need it.\x02Configur" + + "ation 'base' was created to resemble this lotus-miner's config.toml ." + + "\x04\x00\x01 \x15\x02Layer %[1]s created.\x04\x00\x01 \x19\x02To work wi" + + "th the config:\x02To run Curio: With machine or cgroup isolation, use th" + + "e command (with example layer selection):" -var koIndex = []uint32{ // 126 elements +var koIndex = []uint32{ // 128 elements // Entry 0 - 1F 0x00000000, 0x00000044, 0x000000c1, 0x000001c1, 0x0000020e, 0x00000289, 0x000002aa, 0x000002bc, 0x000002e5, 0x00000300, 0x00000325, 0x00000348, - 0x000003b2, 0x00000402, 0x00000428, 0x00000481, - 0x000004a0, 0x000004dc, 0x0000050c, 0x0000055c, - 0x00000568, 0x0000057a, 0x00000595, 0x000005ed, - 0x00000679, 0x000006b2, 0x00000708, 0x00000746, - 0x00000794, 0x000007af, 0x000007e9, 0x0000081c, + 0x0000038e, 0x000003a9, 0x000003c5, 0x00000404, + 0x00000499, 0x000004e9, 0x0000050f, 0x00000568, + 0x00000587, 0x000005c3, 0x000005f3, 0x00000643, + 0x0000064f, 0x00000661, 0x000006b9, 0x00000745, + 0x0000077e, 0x000007d4, 0x00000812, 0x00000860, // Entry 20 - 3F - 0x00000856, 0x00000880, 0x000008aa, 0x000008ec, - 0x00000910, 0x0000091d, 0x000009a3, 0x000009f5, - 0x00000a1c, 0x00000ab8, 0x00000b4a, 0x00000bc5, - 0x00000c09, 0x00000c47, 0x00000c6e, 0x00000cd9, - 0x00000d26, 0x00000d4d, 0x00000d9c, 0x00000ddd, - 0x00000e1d, 0x00000e64, 0x00000f0a, 0x00000f3a, - 0x00000f89, 0x00000fac, 0x00000fcd, 0x00000ff0, - 0x00001013, 0x00001051, 0x00001075, 0x0000108b, + 0x0000087b, 0x000008b5, 0x000008e8, 0x00000922, + 0x0000094c, 0x00000976, 0x000009b8, 0x000009dc, + 0x000009e9, 0x00000a6f, 0x00000ac1, 0x00000ae8, + 0x00000b84, 0x00000c16, 0x00000c91, 0x00000cd5, + 0x00000d13, 0x00000d3a, 0x00000da5, 0x00000df2, + 0x00000e19, 0x00000e68, 0x00000ea9, 0x00000ee9, + 0x00000f30, 0x00000fd6, 0x00001006, 0x00001055, + 0x00001078, 0x00001099, 0x000010bc, 0x000010df, // Entry 40 - 5F - 0x000010f6, 0x00001145, 0x0000114c, 0x00001194, - 0x000011e6, 0x00001240, 0x000012aa, 0x0000133b, - 0x00001353, 0x0000136d, 0x00001391, 0x000013c4, - 0x000013dc, 0x000013f4, 0x0000140c, 0x00001421, - 0x00001439, 0x00001490, 0x000014bb, 0x000014d3, - 0x000014fa, 0x0000151d, 0x00001531, 0x00001546, - 0x0000156a, 0x00001594, 0x000015a5, 0x000015cb, - 0x000015f1, 0x0000162a, 0x00001662, 0x0000169a, + 0x0000111d, 0x00001141, 0x00001157, 0x000011c2, + 0x00001211, 0x00001218, 0x00001260, 0x000012b2, + 0x0000130c, 0x00001376, 0x00001407, 0x0000141f, + 0x00001439, 0x0000145d, 0x00001490, 0x000014a8, + 0x000014c0, 0x000014d8, 0x000014ed, 0x00001544, + 0x0000156f, 0x00001587, 0x000015ae, 0x000015d1, + 0x000015e5, 0x000015fa, 0x00001601, 0x00001608, + 0x0000160e, 0x00001614, 0x00001635, 0x0000166d, // Entry 60 - 7F - 0x000016b9, 0x00001705, 0x000017c3, 0x0000180f, - 0x0000185d, 0x00001880, 0x000018dc, 0x0000192c, - 0x00001981, 0x000019c4, 0x00001a03, 0x00001a71, - 0x00001a82, 0x00001a90, 0x00001aa8, 0x00001abc, - 0x00001ad6, 0x00001b00, 0x00001b63, 0x00001b9f, - 0x00001bc9, 0x00001c01, 0x00001c55, 0x00001c8d, - 0x00001d06, 0x00001dc0, 0x00001e17, 0x00001e46, - 0x00001e6d, 0x00001ef9, -} // Size: 528 bytes + 0x000016a5, 0x000016c4, 0x00001710, 0x000017ce, + 0x0000181a, 0x00001868, 0x0000188b, 0x000018e7, + 0x00001937, 0x0000198c, 0x000019cf, 0x00001a0e, + 0x00001a7c, 0x00001a8d, 0x00001a9b, 0x00001ab3, + 0x00001ac7, 0x00001ae1, 0x00001b0b, 0x00001b6e, + 0x00001baa, 0x00001bd4, 0x00001c0c, 0x00001c30, + 0x00001c84, 0x00001cbc, 0x00001d35, 0x00001def, + 0x00001e46, 0x00001e75, 0x00001e9c, 0x00001f28, +} // Size: 536 bytes -const koData string = "" + // Size: 7929 bytes +const koData string = "" + // Size: 7976 bytes "\x04\x00\x01 ?\x02화살표 키를 사용하여 이동하세요: ↓ ↑ → ←\x02이 대화형 도구는 새로운 채굴자 액터를 생성" + "하고 그에 대한 기본 구성 레이어를 생성합니다.\x02이 프로세스는 부분적으로 항등원적입니다. 새로운 채굴자 액터가 생성되었고" + " 후속 단계가 실패하는 경우 사용자는 구성을 완료하기 위해 'curio config new-cluster < 채굴자 ID >'를 " + "실행해야 합니다.\x02이 대화형 도구는 5분 안에 lotus-miner를 Curio로 이주합니다.\x02각 단계는 확인이 필" + "요하며 되돌릴 수 있습니다. 언제든지 Ctrl+C를 눌러 종료할 수 있습니다.\x02터미널에서 Ctrl+C가 눌림\x02나는 " + "원한다:\x02기존의 Lotus-Miner에서 이전하기\x02새로운 채굴자 생성\x02나머지 단계를 중단합니다.\x02Lotu" + - "s-Miner에서 Curio로 이주.\x02%[1]s를 사용하여 웹 인터페이스를 시도하고 더 나은 안내된 개선을 진행하세요." + + "s-Miner에서 Curio로 이주.\x02데이터베이스 구성 파일을 어디에 저장해야 하나요?\x02마이그레이션 중단.\x02파일 " + + "쓰기 오류: %[1]s\x04\x00\x01 :\x02%[1]s와 함께 웹 인터페이스를 시도해보세요\x02더 많은 서버를 위해" + + " curio.env를 /etc/curio.env로 복사하고 목적을 할당하기 위해 CURIO_LAYERS 환경 변수를 추가하세요." + "\x02해당하는 경우 이제 시장 노드를 이주할 수 있습니다 (%[1]s).\x02새로운 채굴자 초기화 완료.\x02lotus-mi" + "ner config.toml을 Curio의 데이터베이스 구성으로 이전 중입니다.\x02API 가져오기 오류: %[1]s\x02Fu" + "llNode의 API 정보를 가져올 수 없습니다: %[1]w\x02토큰을 가져오는 중 오류 발생: %[1]s\x02이동할 수 없는" + - " 섹터가 발견되었습니다. 계속하시겠습니까?\x02예, 계속\x02아니오, 중단\x02마이그레이션 중단.\x02레이어에 구성을 저장" + - "하는 중 오류 발생: %[1]s. 마이그레이션 중단\x02Curio 팀은 당신이 사용하는 소프트웨어를 개선하고자 합니다. 팀에" + - "게 `%[1]s`를 사용 중이라고 알려주세요.\x02Curio 팀과 공유하고 싶은 것을 선택하세요.\x02개별 데이터: 채굴자" + - " ID, Curio 버전, 체인 (%[1]s 또는 %[2]s). 서명됨.\x02집계-익명: 버전, 체인, 및 채굴자 파워 (버킷)" + - ".\x02힌트: 나는 어떤 체인에서든 Curio를 실행 중인 사람입니다.\x02아무것도 없습니다.\x02마이너 파워를 가져오는 중" + - " 오류 발생: %[1]s\x02메시지를 마샬하는 중 오류 발생: %[1]s\x02마이너 정보를 가져오는 중 오류 발생: %[1]s" + - "\x02메시지 서명 중 오류 발생: %[1]s\x02메시지 전송 중 오류 발생: %[1]s\x04\x00\x01 =\x02메시지 " + - "전송 중 오류 발생: 상태 %[1]s, 메시지:\x02메시지가 전송되었습니다.\x04\x00\x01 \x08\x02문서:" + - "\x02'%[1]s' 레이어에는 공통 구성이 저장됩니다. 모든 Curio 인스턴스는 %[2]s 인수에 포함시킬 수 있습니다." + - "\x02기계별 구성 변경을 위해 다른 레이어를 추가할 수 있습니다.\x02Filecoin %[1]s 채널: %[2]s 및 %[3]" + - "s\x02신뢰성 향상을 위한 중복성 사용: 적어도 post 레이어를 사용하여 여러 대의 기계를 시작하십시오: 'curio run " + - "--layers=post'\x02한 개의 데이터베이스는 여러 광부 ID를 제공할 수 있습니다: 각 lotus-miner에 대해 마" + - "이그레이션을 실행하세요.\x02데이터베이스 자격 증명이 %[2]s에 입력되었으므로 지금 %[1]s을 시작하거나 다시 시작하세요" + - ".\x02%[1]s가 Yugabyte에 섹터를 기록하도록 대기 중입니다.\x02광부 ID를 해석하는 중 오류 발생: %[1]s: " + - "ID: %[2]s\x02섹터 확인 중 오류 발생: %[1]s\x02섹터가 데이터베이스에 있습니다. 데이터베이스가 %[1]s를 위해" + - " 준비되었습니다.\x02이제 lotus-miner와 lotus-worker를 종료하고 %[1]s을 실행하세요.\x02계속하려면 리" + - "턴을 누르세요\x02섹터가 확인되었습니다. %[1]d개의 섹터 위치를 찾았습니다.\x02Yugabyte에 연결되었습니다. 스키" + - "마가 현재입니다.\x02데이터베이스에서 Sector Indexing을 활성화합니다.\x02config.toml을 인코딩하는 중" + - " 오류가 발생했습니다: %[1]s\x02%[1]s을 Yugabyte 정보로 업데이트하려면 리턴 키를 누르세요. 변경 사항을 적용하" + - "기 전에 해당 폴더에 백업 파일이 작성됩니다.\x02경로를 확장하는 중 오류 발생: %[1]s\x02config.toml의 파" + - "일 모드를 읽는 중 오류가 발생했습니다: %[1]s\x02백업 파일 생성 오류: %[1]s\x02config.toml 읽기 오" + - "류: %[1]s\x02백업 파일 쓰기 오류: %[1]s\x02백업 파일 닫기 오류: %[1]s\x02config.toml을 쓰" + - "는 중 오류가 발생했습니다: %[1]s\x04\x00\x01 \x1f\x02로터스 마이너 재시작.\x02Yugabyte에 연결" + - "됨\x02시작하려면 밀봉 파이프라인이 비어 있고 lotus-miner가 종료되었는지 확인하세요.\x02로터스 마이너 구성 디렉" + - "토리의 위치를 선택하시겠습니까?\x02기타\x02%[1]s에서 사용하는 구성 디렉터리 경로를 입력하세요.\x04\x00\x01" + - " M\x02경로가 제공되지 않았으므로 마이그레이션을 포기합니다\x02제공된 디렉토리에서 config.toml 파일을 읽을 수 없습" + - "니다. 오류: %[1]s\x02디렉토리에서 저장소를 생성할 수 없습니다: %[1]s. 마이그레이션을 중단합니다.\x02광부 저" + - "장소를 잠금 해제할 수 없습니다. 귀하의 광부를 중지해야 합니다: %[1]s\x0a 마이그레이션을 중단합니다.\x02마이너 구" + - "성 읽기\x04\x00\x01\x0a\x15\x02단계 완료: %[1]s\x02새 채굴자 액터 초기화 중.\x02새 채굴자를 " + - "생성하기 위한 정보 입력\x02소유자 주소: %[1]s\x02작업자 주소: %[1]s\x02송신자 주소: %[1]s\x02섹터" + - " 크기: %[1]d\x02신뢰 에포크: %[1]d\x02주소를 확인하고 새 채굴자 액터를 생성하려면 계속 진행하세요.\x04" + - "\x00\x01 &\x02채굴자 생성 오류 발생: %[1]s\x02소유자 주소 입력\x02주소가 제공되지 않았습니다\x02주소 구" + - "문 분석 실패: %[1]s\x02%[1]s 주소 입력\x02섹터 크기 입력\x02값이 제공되지 않았습니다\x02섹터 크기 구문" + - " 분석 실패: %[1]s\x02신뢰 에포크\x02신뢰도 구문 분석 실패: %[1]s\x02채굴자 액터 생성 실패: %[1]s" + - "\x02%[1]s 채굴자가 성공적으로 생성되었습니다\x02데이터베이스에 연결할 수 없습니다: %[1]s\x02풀 노드 API에 연" + - "결하는 중 오류 발생: %[1]s\x02사전 초기화 단계 완료\x02비밀번호를 위한 랜덤 바이트 생성에 실패했습니다: %[1]" + - "s\x02마이너 생성은 idempotent하지 않으므로 가이드 설정을 다시 실행하지 마십시오. 구성을 완료하려면 'curio co" + - "nfig new-cluster %[1]s'를 실행해야 합니다.\x02FullNode에 대한 API 정보를 가져오는 데 실패했습니다" + - ": %[1]w\x02데몬 노드로부터 인증 토큰을 확인하는 중 오류 발생: %[1]s\x02기본 구성 생성 실패: %[1]s\x02" + - "데이터베이스에 'base' 구성 레이어를 삽입하는 데 실패했습니다: %[1]s\x02이 마이너 주소를 포함한 구성 'base'" + - "가 업데이트되었습니다.\x02데이터베이스에서 기본 구성을 로드하는 데 실패했습니다: %[1]s\x02기본 구성을 구문 분석하는" + - " 데 실패했습니다: %[1]s\x02기본 구성을 재생성하는 데 실패했습니다: %[1]s\x02Yugabyte 데이터베이스 설치에 " + - "연결할 정보를 입력하십시오 (https://download.yugabyte.com/)\x02호스트: %[1]s\x02포트: %" + - "[1]s\x02사용자 이름: %[1]s\x02비밀번호: %[1]s\x02데이터베이스: %[1]s\x02계속 연결 및 스키마 업데이" + - "트.\x04\x00\x01 ^\x02데이터베이스 구성 오류가 발생하여 마이그레이션을 포기합니다: %[1]s\x02Yugabyt" + - "e 데이터베이스 호스트를 입력하십시오\x02호스트가 제공되지 않았습니다\x02Yugabyte 데이터베이스 %[1]s을 입력하십시오" + - "\x02Yugabyte 데이터베이스에 연결하는 중 오류가 발생했습니다: %[1]s\x02%[1]d 섹터의 메타데이터를 이동 중입니" + - "다.\x02기본 설정 'base'가 이 마이너의 주소(%[1]s) 및 지갑 설정을 포함하도록 업데이트되었습니다.\x02구성 %" + - "[1]s를 %[2]s과 비교하세요. 지갑 주소 이외의 마이너 ID 사이의 변경 사항은 필요한 실행자를 위한 새로운 최소한의 레이어" + - "여야 합니다.\x02'base' 설정이 이 lotus-miner의 config.toml과 유사하게 만들어졌습니다.\x04" + - "\x00\x01 *\x02레이어 %[1]s가 생성되었습니다.\x04\x00\x01 \x22\x02구성 파일을 사용하려면:\x02C" + - "urio를 실행하려면: 기계 또는 cgroup 격리를 사용하여 다음 명령을 사용하세요 (예제 레이어 선택과 함께):" + " 섹터가 발견되었습니다. 계속하시겠습니까?\x02예, 계속\x02아니오, 중단\x02레이어에 구성을 저장하는 중 오류 발생: %[" + + "1]s. 마이그레이션 중단\x02Curio 팀은 당신이 사용하는 소프트웨어를 개선하고자 합니다. 팀에게 `%[1]s`를 사용 중이" + + "라고 알려주세요.\x02Curio 팀과 공유하고 싶은 것을 선택하세요.\x02개별 데이터: 채굴자 ID, Curio 버전, 체" + + "인 (%[1]s 또는 %[2]s). 서명됨.\x02집계-익명: 버전, 체인, 및 채굴자 파워 (버킷).\x02힌트: 나는 어떤" + + " 체인에서든 Curio를 실행 중인 사람입니다.\x02아무것도 없습니다.\x02마이너 파워를 가져오는 중 오류 발생: %[1]s" + + "\x02메시지를 마샬하는 중 오류 발생: %[1]s\x02마이너 정보를 가져오는 중 오류 발생: %[1]s\x02메시지 서명 중 " + + "오류 발생: %[1]s\x02메시지 전송 중 오류 발생: %[1]s\x04\x00\x01 =\x02메시지 전송 중 오류 발생:" + + " 상태 %[1]s, 메시지:\x02메시지가 전송되었습니다.\x04\x00\x01 \x08\x02문서:\x02'%[1]s' 레이어에" + + "는 공통 구성이 저장됩니다. 모든 Curio 인스턴스는 %[2]s 인수에 포함시킬 수 있습니다.\x02기계별 구성 변경을 위해" + + " 다른 레이어를 추가할 수 있습니다.\x02Filecoin %[1]s 채널: %[2]s 및 %[3]s\x02신뢰성 향상을 위한 중" + + "복성 사용: 적어도 post 레이어를 사용하여 여러 대의 기계를 시작하십시오: 'curio run --layers=post'" + + "\x02한 개의 데이터베이스는 여러 광부 ID를 제공할 수 있습니다: 각 lotus-miner에 대해 마이그레이션을 실행하세요." + + "\x02데이터베이스 자격 증명이 %[2]s에 입력되었으므로 지금 %[1]s을 시작하거나 다시 시작하세요.\x02%[1]s가 Yug" + + "abyte에 섹터를 기록하도록 대기 중입니다.\x02광부 ID를 해석하는 중 오류 발생: %[1]s: ID: %[2]s\x02섹터" + + " 확인 중 오류 발생: %[1]s\x02섹터가 데이터베이스에 있습니다. 데이터베이스가 %[1]s를 위해 준비되었습니다.\x02이제" + + " lotus-miner와 lotus-worker를 종료하고 %[1]s을 실행하세요.\x02계속하려면 리턴을 누르세요\x02섹터가 " + + "확인되었습니다. %[1]d개의 섹터 위치를 찾았습니다.\x02Yugabyte에 연결되었습니다. 스키마가 현재입니다.\x02데이" + + "터베이스에서 Sector Indexing을 활성화합니다.\x02config.toml을 인코딩하는 중 오류가 발생했습니다: %[" + + "1]s\x02%[1]s을 Yugabyte 정보로 업데이트하려면 리턴 키를 누르세요. 변경 사항을 적용하기 전에 해당 폴더에 백업 " + + "파일이 작성됩니다.\x02경로를 확장하는 중 오류 발생: %[1]s\x02config.toml의 파일 모드를 읽는 중 오류가 " + + "발생했습니다: %[1]s\x02백업 파일 생성 오류: %[1]s\x02config.toml 읽기 오류: %[1]s\x02백업 " + + "파일 쓰기 오류: %[1]s\x02백업 파일 닫기 오류: %[1]s\x02config.toml을 쓰는 중 오류가 발생했습니다:" + + " %[1]s\x04\x00\x01 \x1f\x02로터스 마이너 재시작.\x02Yugabyte에 연결됨\x02시작하려면 밀봉 파이프" + + "라인이 비어 있고 lotus-miner가 종료되었는지 확인하세요.\x02로터스 마이너 구성 디렉토리의 위치를 선택하시겠습니까?" + + "\x02기타\x02%[1]s에서 사용하는 구성 디렉터리 경로를 입력하세요.\x04\x00\x01 M\x02경로가 제공되지 않았으므" + + "로 마이그레이션을 포기합니다\x02제공된 디렉토리에서 config.toml 파일을 읽을 수 없습니다. 오류: %[1]s\x02" + + "디렉토리에서 저장소를 생성할 수 없습니다: %[1]s. 마이그레이션을 중단합니다.\x02광부 저장소를 잠금 해제할 수 없습니다" + + ". 귀하의 광부를 중지해야 합니다: %[1]s\x0a 마이그레이션을 중단합니다.\x02마이너 구성 읽기\x04\x00\x01" + + "\x0a\x15\x02단계 완료: %[1]s\x02새 채굴자 액터 초기화 중.\x02새 채굴자를 생성하기 위한 정보 입력\x02소" + + "유자 지갑: %[1]s\x02작업자 지갑: %[1]s\x02발송자 지갑: %[1]s\x02섹터 크기: %[1]d\x02주소를 " + + "확인하고 새 채굴자 액터를 생성하려면 계속 진행하세요.\x04\x00\x01 &\x02채굴자 생성 오류 발생: %[1]s" + + "\x02소유자 주소 입력\x02주소가 제공되지 않았습니다\x02주소 구문 분석 실패: %[1]s\x02%[1]s 주소 입력\x02" + + "섹터 크기 선택\x0264 GiB\x0232 GiB\x028 MiB\x022 KiB\x04\x00\x01 \x1c\x02섹터 " + + "선택 실패: %[1]s\x02데이터베이스에 연결할 수 없습니다: %[1]s\x02풀 노드 API에 연결하는 중 오류 발생: %" + + "[1]s\x02사전 초기화 단계 완료\x02비밀번호를 위한 랜덤 바이트 생성에 실패했습니다: %[1]s\x02마이너 생성은 ide" + + "mpotent하지 않으므로 가이드 설정을 다시 실행하지 마십시오. 구성을 완료하려면 'curio config new-cluster" + + " %[1]s'를 실행해야 합니다.\x02FullNode에 대한 API 정보를 가져오는 데 실패했습니다: %[1]w\x02데몬 노드" + + "로부터 인증 토큰을 확인하는 중 오류 발생: %[1]s\x02기본 구성 생성 실패: %[1]s\x02데이터베이스에 'base'" + + " 구성 레이어를 삽입하는 데 실패했습니다: %[1]s\x02이 마이너 주소를 포함한 구성 'base'가 업데이트되었습니다.\x02" + + "데이터베이스에서 기본 구성을 로드하는 데 실패했습니다: %[1]s\x02기본 구성을 구문 분석하는 데 실패했습니다: %[1]s" + + "\x02기본 구성을 재생성하는 데 실패했습니다: %[1]s\x02Yugabyte 데이터베이스 설치에 연결할 정보를 입력하십시오 (" + + "https://download.yugabyte.com/)\x02호스트: %[1]s\x02포트: %[1]s\x02사용자 이름: %[" + + "1]s\x02비밀번호: %[1]s\x02데이터베이스: %[1]s\x02계속 연결 및 스키마 업데이트.\x04\x00\x01 ^" + + "\x02데이터베이스 구성 오류가 발생하여 마이그레이션을 포기합니다: %[1]s\x02Yugabyte 데이터베이스 호스트를 입력하십" + + "시오\x02호스트가 제공되지 않았습니다\x02Yugabyte 데이터베이스 %[1]s을 입력하십시오\x02값이 제공되지 않았습니" + + "다\x02Yugabyte 데이터베이스에 연결하는 중 오류가 발생했습니다: %[1]s\x02%[1]d 섹터의 메타데이터를 이동 " + + "중입니다.\x02기본 설정 'base'가 이 마이너의 주소(%[1]s) 및 지갑 설정을 포함하도록 업데이트되었습니다.\x02구" + + "성 %[1]s를 %[2]s과 비교하세요. 지갑 주소 이외의 마이너 ID 사이의 변경 사항은 필요한 실행자를 위한 새로운 최소한" + + "의 레이어여야 합니다.\x02'base' 설정이 이 lotus-miner의 config.toml과 유사하게 만들어졌습니다." + + "\x04\x00\x01 *\x02레이어 %[1]s가 생성되었습니다.\x04\x00\x01 \x22\x02구성 파일을 사용하려면:" + + "\x02Curio를 실행하려면: 기계 또는 cgroup 격리를 사용하여 다음 명령을 사용하세요 (예제 레이어 선택과 함께):" -var zhIndex = []uint32{ // 126 elements +var zhIndex = []uint32{ // 128 elements // Entry 0 - 1F 0x00000000, 0x00000033, 0x0000008b, 0x00000134, 0x0000017c, 0x000001cb, 0x000001e4, 0x000001f1, 0x00000211, 0x0000022a, 0x00000240, 0x0000025d, - 0x000002a5, 0x000002e6, 0x00000302, 0x00000347, - 0x00000364, 0x0000038d, 0x000003ab, 0x000003df, - 0x000003ef, 0x000003fc, 0x0000040c, 0x00000445, - 0x00000499, 0x000004c6, 0x00000515, 0x00000550, - 0x00000585, 0x0000058f, 0x000005b3, 0x000005d1, + 0x0000029a, 0x000002aa, 0x000002c4, 0x000002ea, + 0x00000359, 0x0000039a, 0x000003b6, 0x000003fb, + 0x00000418, 0x00000441, 0x0000045f, 0x00000493, + 0x000004a3, 0x000004b0, 0x000004e9, 0x0000053d, + 0x0000056a, 0x000005b9, 0x000005f4, 0x00000629, // Entry 20 - 3F - 0x000005f5, 0x00000613, 0x00000631, 0x00000666, - 0x00000679, 0x00000688, 0x000006e2, 0x0000071f, - 0x00000747, 0x000007a6, 0x000007f6, 0x00000849, - 0x0000086f, 0x0000089c, 0x000008ba, 0x000008f6, - 0x0000093a, 0x0000094a, 0x0000097d, 0x000009aa, - 0x000009cf, 0x000009f2, 0x00000a6a, 0x00000a88, - 0x00000ab7, 0x00000adb, 0x00000b00, 0x00000b24, - 0x00000b48, 0x00000b6b, 0x00000b8b, 0x00000ba0, + 0x00000633, 0x00000657, 0x00000675, 0x00000699, + 0x000006b7, 0x000006d5, 0x0000070a, 0x0000071d, + 0x0000072c, 0x00000786, 0x000007c3, 0x000007eb, + 0x0000084a, 0x0000089a, 0x000008ed, 0x00000913, + 0x00000940, 0x0000095e, 0x0000099a, 0x000009de, + 0x000009ee, 0x00000a21, 0x00000a4e, 0x00000a73, + 0x00000a96, 0x00000b0e, 0x00000b2c, 0x00000b5b, + 0x00000b7f, 0x00000ba4, 0x00000bc8, 0x00000bec, // Entry 40 - 5F - 0x00000beb, 0x00000c1b, 0x00000c22, 0x00000c4c, - 0x00000c70, 0x00000cb4, 0x00000ce6, 0x00000d2f, - 0x00000d42, 0x00000d5c, 0x00000d7b, 0x00000da0, - 0x00000db8, 0x00000dcd, 0x00000de5, 0x00000df9, - 0x00000e10, 0x00000e41, 0x00000e66, 0x00000e7c, - 0x00000e8c, 0x00000ea6, 0x00000eba, 0x00000ecd, - 0x00000eda, 0x00000efa, 0x00000f0a, 0x00000f27, - 0x00000f47, 0x00000f61, 0x00000f7e, 0x00000faf, + 0x00000c0f, 0x00000c2f, 0x00000c44, 0x00000c8f, + 0x00000cbf, 0x00000cc6, 0x00000cf0, 0x00000d14, + 0x00000d58, 0x00000d8a, 0x00000dd3, 0x00000de6, + 0x00000e00, 0x00000e1f, 0x00000e44, 0x00000e5b, + 0x00000e6f, 0x00000e86, 0x00000e9a, 0x00000ecb, + 0x00000ef0, 0x00000f06, 0x00000f16, 0x00000f30, + 0x00000f44, 0x00000f57, 0x00000f5e, 0x00000f65, + 0x00000f6b, 0x00000f71, 0x00000f90, 0x00000fad, // Entry 60 - 7F - 0x00000fc8, 0x00000ff1, 0x0000107e, 0x000010aa, - 0x000010e5, 0x00001105, 0x00001136, 0x00001169, - 0x00001196, 0x000011b7, 0x000011dd, 0x00001237, - 0x00001246, 0x00001255, 0x00001267, 0x00001276, - 0x00001288, 0x000012a7, 0x000012df, 0x00001304, - 0x00001314, 0x00001332, 0x0000135e, 0x00001388, - 0x000013d9, 0x0000145b, 0x000014a2, 0x000014bc, - 0x000014d4, 0x0000152b, -} // Size: 528 bytes + 0x00000fde, 0x00000ff7, 0x00001020, 0x000010ad, + 0x000010d9, 0x00001114, 0x00001134, 0x00001165, + 0x00001198, 0x000011c5, 0x000011e6, 0x0000120c, + 0x00001266, 0x00001275, 0x00001284, 0x00001296, + 0x000012a5, 0x000012b7, 0x000012d6, 0x0000130e, + 0x00001333, 0x00001343, 0x00001361, 0x0000136e, + 0x0000139a, 0x000013c4, 0x00001415, 0x00001497, + 0x000014de, 0x000014f8, 0x00001510, 0x00001567, +} // Size: 536 bytes -const zhData string = "" + // Size: 5419 bytes +const zhData string = "" + // Size: 5479 bytes "\x04\x00\x01 .\x02使用箭头键进行导航:↓ ↑ → ←\x02此交互式工具将创建一个新的矿工角色,并为其创建基本配置层。\x02" + "该过程部分幂等。一旦创建了新的矿工角色,并且随后的步骤失败,用户需要运行 'curio config new-cluster < 矿工 ID" + " >' 来完成配置。\x02这个交互式工具可以在5分钟内将lotus-miner迁移到Curio。\x02每一步都需要您的确认,并且可以撤销。随" + "时按Ctrl+C退出。\x02在终端中按下Ctrl+C\x02我想要:\x02从现有的 Lotus-Miner 迁移\x02创建一个新的矿工" + - "\x02中止剩余步骤。\x02Lotus-Miner到Curio迁移。\x02尝试使用%[1]s的网络界面进行更进一步的指导性改进。\x02如果" + - "适用,您现在可以迁移您的市场节点(%[1]s)。\x02新矿工初始化完成。\x02将 lotus-miner config.toml 迁移到" + - " Curio 的数据库配置中。\x02获取 API 时出错:%[1]s\x02无法获取FullNode的API信息:%[1]w\x02获取令牌时" + - "出错:%[1]s\x02发现无法迁移的扇区。您想要继续吗?\x02是的,继续\x02不,中止\x02中止迁移。\x02保存配置到层时出错:%" + - "[1]s。正在中止迁移\x02Curio 团队希望改进您使用的软件。告诉团队您正在使用 `%[1]s`。\x02选择您想与Curio团队分享的内" + - "容。\x02个人数据:矿工 ID,Curio 版本,链(%[1]s 或 %[2]s)。签名。\x02聚合-匿名:版本,链和矿工算力(分桶)。" + - "\x02提示:我是在任何链上运行 Curio 的人。\x02没有。\x02获取矿工功率时出错:%[1]s\x02整理消息时出错:%[1]s" + - "\x02获取矿工信息时出错:%[1]s\x02签署消息时出错:%[1]s\x02发送消息时出错:%[1]s\x04\x00\x01 0\x02发" + - "送消息时出错:状态%[1]s,消息:\x02消息已发送。\x04\x00\x01 \x0a\x02文档:\x02'%[1]s'层存储通用配置" + - "。所有Curio实例都可以在其%[2]s参数中包含它。\x02您可以添加其他层进行每台机器的配置更改。\x02Filecoin %[1]s " + - "频道:%[2]s 和 %[3]s\x02通过冗余增加可靠性:使用至少后层启动多台机器:'curio run --layers=post'" + - "\x02一个数据库可以服务多个矿工ID:为每个lotus-miner运行迁移。\x02请立即启动(或重新启动)%[1]s,因为数据库凭据已在%[" + - "2]s中。\x02等待%[1]s将扇区写入Yugabyte。\x02解释矿工ID时出错:%[1]s:ID:%[2]s\x02验证扇区时出错:%[" + - "1]s\x02扇区在数据库中。数据库已准备好用于%[1]s。\x02现在关闭lotus-miner和lotus-worker,改为使用%[1]s" + - "运行。\x02按回车继续\x02扇区已验证。发现了%[1]d个扇区位置。\x02已连接到Yugabyte。模式是当前的。\x02在数据库中启" + - "用扇区索引。\x02编码config.toml时出错:%[1]s\x02按回车键更新 %[1]s 以包含 Yugabyte 信息。在进行更改" + - "之前,将在该文件夹中写入备份文件。\x02扩展路径时出错:%[1]s\x02读取config.toml文件模式时出错:%[1]s\x02创建" + - "备份文件时出错:%[1]s\x02读取 config.toml 时出错:%[1]s\x02写入备份文件时出错:%[1]s\x02关闭备份文件" + - "时出错:%[1]s\x02写入config.toml时出错:%[1]s\x04\x00\x01 \x1b\x02重新启动Lotus Mine" + - "r。\x02已连接到Yugabyte\x02开始之前,请确保您的密封管道已排空并关闭lotus-miner。\x02选择您的lotus-mine" + - "r配置目录的位置?\x02其他\x02输入%[1]s使用的配置目录的路径\x04\x00\x01 \x1f\x02未提供路径,放弃迁移\x02无" + - "法读取提供的目录中的config.toml文件,错误:%[1]s\x02无法从目录创建repo:%[1]s。 中止迁移\x02无法锁定矿工r" + - "epo。 您的矿工必须停止:%[1]s\x0a 中止迁移\x02读取矿工配置\x04\x00\x01\x0a\x15\x02步骤完成:%[1]s" + - "\x02初始化新的矿工角色。\x02输入创建新矿工所需的信息\x02所有者地址:%[1]s\x02工作地址:%[1]s\x02发送者地址:%[1" + - "]s\x02扇区大小: %[1]d\x02置信度时期: %[1]d\x02继续验证地址并创建新的矿工角色。\x04\x00\x01 \x02矿" + - "工创建错误发生: %[1]s\x02输入所有者地址\x02未提供地址\x02解析地址失败: %[1]s\x02输入 %[1]s 地址\x02" + - "输入扇区大小\x02未提供值\x02解析扇区大小失败: %[1]s\x02置信度时期\x02解析置信度失败: %[1]s\x02创建矿工角色" + - "失败: %[1]s\x02矿工 %[1]s 创建成功\x02无法访问数据库: %[1]s\x02连接到完整节点 API 时发生错误: %[1" + - "]s\x02预初始化步骤完成\x02生成密码的随机字节失败: %[1]s\x02请不要再次运行引导设置,因为矿工创建不是幂等的。 您需要运行 '" + - "curio config new-cluster %[1]s' 来完成配置。\x02无法获取 FullNode 的 API 信息: %[1]w" + - "\x02无法验证来自守护进程节点的授权令牌: %[1]s\x02无法生成默认配置: %[1]s\x02无法将 'base' 配置层插入数据库: " + - "%[1]s\x02配置 'base' 已更新以包含此矿工的地址\x02从数据库加载基本配置失败:%[1]s\x02解析基本配置失败:%[1]s" + - "\x02重新生成基本配置失败: %[1]s\x02输入连接到您的Yugabyte数据库安装的信息(https://download.yugaby" + - "te.com/)\x02主机:%[1]s\x02端口:%[1]s\x02用户名:%[1]s\x02密码:%[1]s\x02数据库:%[1]s" + - "\x02继续连接和更新架构。\x04\x00\x01 3\x02发生数据库配置错误,放弃迁移:%[1]s\x02输入Yugabyte数据库主机(" + - "S)\x02未提供主机\x02输入Yugabyte数据库 %[1]s\x02连接到Yugabyte数据库时出错:%[1]s\x02正在迁移%[1" + - "]d个扇区的元数据。\x02'base'配置已更新,包括该矿工的地址(%[1]s)及其钱包设置。\x02比较配置%[1]s和%[2]s。矿工ID" + - "之间除了钱包地址的变化应该是需要的运行者的一个新的、最小的层。\x02'base'配置已创建,以类似于这个lotus-miner的confi" + - "g.toml。\x04\x00\x01 \x15\x02层%[1]s已创建。\x04\x00\x01 \x13\x02要使用配置:\x02运行C" + - "urio:使用机器或cgroup隔离,使用命令(附带示例层选择):" + "\x02中止剩余步骤。\x02Lotus-Miner到Curio迁移。\x02我们应该把你的数据库配置文件保存在哪里?\x02中止迁移。\x02" + + "写入文件错误: %[1]s\x04\x00\x01 !\x02尝试使用%[1]s的网页界面\x02对于更多服务器,将curio.env复制到" + + "/etc/curio.env并添加CURIO_LAYERS环境变量以分配用途。\x02如果适用,您现在可以迁移您的市场节点(%[1]s)。" + + "\x02新矿工初始化完成。\x02将 lotus-miner config.toml 迁移到 Curio 的数据库配置中。\x02获取 API " + + "时出错:%[1]s\x02无法获取FullNode的API信息:%[1]w\x02获取令牌时出错:%[1]s\x02发现无法迁移的扇区。您想" + + "要继续吗?\x02是的,继续\x02不,中止\x02保存配置到层时出错:%[1]s。正在中止迁移\x02Curio 团队希望改进您使用的软件" + + "。告诉团队您正在使用 `%[1]s`。\x02选择您想与Curio团队分享的内容。\x02个人数据:矿工 ID,Curio 版本,链(%[1" + + "]s 或 %[2]s)。签名。\x02聚合-匿名:版本,链和矿工算力(分桶)。\x02提示:我是在任何链上运行 Curio 的人。\x02没有。" + + "\x02获取矿工功率时出错:%[1]s\x02整理消息时出错:%[1]s\x02获取矿工信息时出错:%[1]s\x02签署消息时出错:%[1]s" + + "\x02发送消息时出错:%[1]s\x04\x00\x01 0\x02发送消息时出错:状态%[1]s,消息:\x02消息已发送。\x04\x00" + + "\x01 \x0a\x02文档:\x02'%[1]s'层存储通用配置。所有Curio实例都可以在其%[2]s参数中包含它。\x02您可以添加其他" + + "层进行每台机器的配置更改。\x02Filecoin %[1]s 频道:%[2]s 和 %[3]s\x02通过冗余增加可靠性:使用至少后层启动" + + "多台机器:'curio run --layers=post'\x02一个数据库可以服务多个矿工ID:为每个lotus-miner运行迁移。" + + "\x02请立即启动(或重新启动)%[1]s,因为数据库凭据已在%[2]s中。\x02等待%[1]s将扇区写入Yugabyte。\x02解释矿工I" + + "D时出错:%[1]s:ID:%[2]s\x02验证扇区时出错:%[1]s\x02扇区在数据库中。数据库已准备好用于%[1]s。\x02现在关闭l" + + "otus-miner和lotus-worker,改为使用%[1]s运行。\x02按回车继续\x02扇区已验证。发现了%[1]d个扇区位置。" + + "\x02已连接到Yugabyte。模式是当前的。\x02在数据库中启用扇区索引。\x02编码config.toml时出错:%[1]s\x02按回" + + "车键更新 %[1]s 以包含 Yugabyte 信息。在进行更改之前,将在该文件夹中写入备份文件。\x02扩展路径时出错:%[1]s\x02" + + "读取config.toml文件模式时出错:%[1]s\x02创建备份文件时出错:%[1]s\x02读取 config.toml 时出错:%[" + + "1]s\x02写入备份文件时出错:%[1]s\x02关闭备份文件时出错:%[1]s\x02写入config.toml时出错:%[1]s\x04" + + "\x00\x01 \x1b\x02重新启动Lotus Miner。\x02已连接到Yugabyte\x02开始之前,请确保您的密封管道已排空并关" + + "闭lotus-miner。\x02选择您的lotus-miner配置目录的位置?\x02其他\x02输入%[1]s使用的配置目录的路径" + + "\x04\x00\x01 \x1f\x02未提供路径,放弃迁移\x02无法读取提供的目录中的config.toml文件,错误:%[1]s\x02" + + "无法从目录创建repo:%[1]s。 中止迁移\x02无法锁定矿工repo。 您的矿工必须停止:%[1]s\x0a 中止迁移\x02读取矿工" + + "配置\x04\x00\x01\x0a\x15\x02步骤完成:%[1]s\x02初始化新的矿工角色。\x02输入创建新矿工所需的信息\x02" + + "所有者钱包: %[1]s\x02工人钱包: %[1]s\x02发送者钱包: %[1]s\x02扇区大小: %[1]d\x02继续验证地址并创" + + "建新的矿工角色。\x04\x00\x01 \x02矿工创建错误发生: %[1]s\x02输入所有者地址\x02未提供地址\x02解析地址失" + + "败: %[1]s\x02输入 %[1]s 地址\x02选择扇区大小\x0264 GiB\x0232 GiB\x028 MiB\x022 Ki" + + "B\x04\x00\x01 \x1a\x02扇区选择失败: %[1]s\x02无法访问数据库: %[1]s\x02连接到完整节点 API 时发生" + + "错误: %[1]s\x02预初始化步骤完成\x02生成密码的随机字节失败: %[1]s\x02请不要再次运行引导设置,因为矿工创建不是幂等的" + + "。 您需要运行 'curio config new-cluster %[1]s' 来完成配置。\x02无法获取 FullNode 的 API" + + " 信息: %[1]w\x02无法验证来自守护进程节点的授权令牌: %[1]s\x02无法生成默认配置: %[1]s\x02无法将 'base' " + + "配置层插入数据库: %[1]s\x02配置 'base' 已更新以包含此矿工的地址\x02从数据库加载基本配置失败:%[1]s\x02解析基" + + "本配置失败:%[1]s\x02重新生成基本配置失败: %[1]s\x02输入连接到您的Yugabyte数据库安装的信息(https://do" + + "wnload.yugabyte.com/)\x02主机:%[1]s\x02端口:%[1]s\x02用户名:%[1]s\x02密码:%[1]s" + + "\x02数据库:%[1]s\x02继续连接和更新架构。\x04\x00\x01 3\x02发生数据库配置错误,放弃迁移:%[1]s\x02输入Y" + + "ugabyte数据库主机(S)\x02未提供主机\x02输入Yugabyte数据库 %[1]s\x02未提供值\x02连接到Yugabyte数据" + + "库时出错:%[1]s\x02正在迁移%[1]d个扇区的元数据。\x02'base'配置已更新,包括该矿工的地址(%[1]s)及其钱包设置。" + + "\x02比较配置%[1]s和%[2]s。矿工ID之间除了钱包地址的变化应该是需要的运行者的一个新的、最小的层。\x02'base'配置已创建,以" + + "类似于这个lotus-miner的config.toml。\x04\x00\x01 \x15\x02层%[1]s已创建。\x04\x00" + + "\x01 \x13\x02要使用配置:\x02运行Curio:使用机器或cgroup隔离,使用命令(附带示例层选择):" - // Total table size 20695 bytes (20KiB); checksum: BB5CCE20 + // Total table size 20847 bytes (20KiB); checksum: 2761B228 \ No newline at end of file diff --git a/cmd/curio/internal/translations/locales/en/out.gotext.json b/cmd/curio/internal/translations/locales/en/out.gotext.json index 86b84e9a7..f18106460 100644 --- a/cmd/curio/internal/translations/locales/en/out.gotext.json +++ b/cmd/curio/internal/translations/locales/en/out.gotext.json @@ -89,9 +89,50 @@ "fuzzy": true }, { - "id": "Try the web interface with {Rendercurio_run___layersgui} for further guided improvements.", - "message": "Try the web interface with {Rendercurio_run___layersgui} for further guided improvements.", - "translation": "Try the web interface with {Rendercurio_run___layersgui} for further guided improvements.", + "id": "Where should we save your database config file?", + "message": "Where should we save your database config file?", + "translation": "Where should we save your database config file?", + "translatorComment": "Copied from source.", + "fuzzy": true + }, + { + "id": "Aborting migration.", + "message": "Aborting migration.", + "translation": "Aborting migration.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Error", + "string": "%[1]v", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "err.Error()" + } + ], + "fuzzy": true + }, + { + "id": "Error writing file: {Error}", + "message": "Error writing file: {Error}", + "translation": "Error writing file: {Error}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Error", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "err.Error()" + } + ], + "fuzzy": true + }, + { + "id": "Try the web interface with {Rendercurio_run___layersgui}", + "message": "Try the web interface with {Rendercurio_run___layersgui}", + "translation": "Try the web interface with {Rendercurio_run___layersgui}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -105,6 +146,13 @@ ], "fuzzy": true }, + { + "id": "For more servers, copy curio.env to /etc/curio.env and add the CURIO_LAYERS env to assign purposes.", + "message": "For more servers, copy curio.env to /etc/curio.env and add the CURIO_LAYERS env to assign purposes.", + "translation": "For more servers, copy curio.env to /etc/curio.env and add the CURIO_LAYERS env to assign purposes.", + "translatorComment": "Copied from source.", + "fuzzy": true + }, { "id": "You can now migrate your market node ({Boost}), if applicable.", "message": "You can now migrate your market node ({Boost}), if applicable.", @@ -208,23 +256,6 @@ "translatorComment": "Copied from source.", "fuzzy": true }, - { - "id": "Aborting migration.", - "message": "Aborting migration.", - "translation": "Aborting migration.", - "translatorComment": "Copied from source.", - "placeholders": [ - { - "id": "Error", - "string": "%[1]v", - "type": "string", - "underlyingType": "string", - "argNum": 1, - "expr": "err.Error()" - } - ], - "fuzzy": true - }, { "id": "Error saving config to layer: {Error}. Aborting Migration", "message": "Error saving config to layer: {Error}. Aborting Migration", @@ -973,9 +1004,9 @@ "fuzzy": true }, { - "id": "Owner Address: {String}", - "message": "Owner Address: {String}", - "translation": "Owner Address: {String}", + "id": "Owner Wallet: {String}", + "message": "Owner Wallet: {String}", + "translation": "Owner Wallet: {String}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -990,9 +1021,9 @@ "fuzzy": true }, { - "id": "Worker Address: {String}", - "message": "Worker Address: {String}", - "translation": "Worker Address: {String}", + "id": "Worker Wallet: {String}", + "message": "Worker Wallet: {String}", + "translation": "Worker Wallet: {String}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1007,9 +1038,9 @@ "fuzzy": true }, { - "id": "Sender Address: {String}", - "message": "Sender Address: {String}", - "translation": "Sender Address: {String}", + "id": "Sender Wallet: {String}", + "message": "Sender Wallet: {String}", + "translation": "Sender Wallet: {String}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1032,31 +1063,14 @@ { "id": "Ssize", "string": "%[1]d", - "type": "github.com/filecoin-project/go-state-types/abi.SectorSize", - "underlyingType": "uint64", + "type": "string", + "underlyingType": "string", "argNum": 1, "expr": "d.ssize" } ], "fuzzy": true }, - { - "id": "Confidence epochs: {Confidence}", - "message": "Confidence epochs: {Confidence}", - "translation": "Confidence epochs: {Confidence}", - "translatorComment": "Copied from source.", - "placeholders": [ - { - "id": "Confidence", - "string": "%[1]d", - "type": "uint64", - "underlyingType": "uint64", - "argNum": 1, - "expr": "d.confidence" - } - ], - "fuzzy": true - }, { "id": "Continue to verify the addresses and create a new miner actor.", "message": "Continue to verify the addresses and create a new miner actor.", @@ -1130,64 +1144,44 @@ "fuzzy": true }, { - "id": "Enter the sector size", - "message": "Enter the sector size", - "translation": "Enter the sector size", + "id": "Select the Sector Size", + "message": "Select the Sector Size", + "translation": "Select the Sector Size", "translatorComment": "Copied from source.", "fuzzy": true }, { - "id": "No value provided", - "message": "No value provided", - "translation": "No value provided", + "id": "64 GiB", + "message": "64 GiB", + "translation": "64 GiB", "translatorComment": "Copied from source.", "fuzzy": true }, { - "id": "Failed to parse sector size: {Error}", - "message": "Failed to parse sector size: {Error}", - "translation": "Failed to parse sector size: {Error}", + "id": "32 GiB", + "message": "32 GiB", + "translation": "32 GiB", "translatorComment": "Copied from source.", - "placeholders": [ - { - "id": "Error", - "string": "%[1]s", - "type": "string", - "underlyingType": "string", - "argNum": 1, - "expr": "err.Error()" - } - ], "fuzzy": true }, { - "id": "Confidence epochs", - "message": "Confidence epochs", - "translation": "Confidence epochs", + "id": "8 MiB", + "message": "8 MiB", + "translation": "8 MiB", "translatorComment": "Copied from source.", "fuzzy": true }, { - "id": "Failed to parse confidence: {Error}", - "message": "Failed to parse confidence: {Error}", - "translation": "Failed to parse confidence: {Error}", + "id": "2 KiB", + "message": "2 KiB", + "translation": "2 KiB", "translatorComment": "Copied from source.", - "placeholders": [ - { - "id": "Error", - "string": "%[1]s", - "type": "string", - "underlyingType": "string", - "argNum": 1, - "expr": "err.Error()" - } - ], "fuzzy": true }, { - "id": "Failed to create the miner actor: {Error}", - "message": "Failed to create the miner actor: {Error}", - "translation": "Failed to create the miner actor: {Error}", + "id": "Sector selection failed: {Error}", + "message": "Sector selection failed: {Error}", + "translation": "Sector selection failed: {Error}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1201,23 +1195,6 @@ ], "fuzzy": true }, - { - "id": "Miner {String} created successfully", - "message": "Miner {String} created successfully", - "translation": "Miner {String} created successfully", - "translatorComment": "Copied from source.", - "placeholders": [ - { - "id": "String", - "string": "%[1]s", - "type": "string", - "underlyingType": "string", - "argNum": 1, - "expr": "miner.String()" - } - ], - "fuzzy": true - }, { "id": "Cannot reach the DB: {Error}", "message": "Cannot reach the DB: {Error}", @@ -1566,6 +1543,13 @@ ], "fuzzy": true }, + { + "id": "No value provided", + "message": "No value provided", + "translation": "No value provided", + "translatorComment": "Copied from source.", + "fuzzy": true + }, { "id": "Error connecting to Yugabyte database: {Error}", "message": "Error connecting to Yugabyte database: {Error}", diff --git a/cmd/curio/internal/translations/locales/ko/messages.gotext.json b/cmd/curio/internal/translations/locales/ko/messages.gotext.json index 15732f0c2..2477002c4 100644 --- a/cmd/curio/internal/translations/locales/ko/messages.gotext.json +++ b/cmd/curio/internal/translations/locales/ko/messages.gotext.json @@ -1125,6 +1125,84 @@ "translation": "{NSectors} 섹터의 메타데이터를 이동 중입니다.", "message": "Migrating metadata for {NSectors} sectors.", "placeholder": null - } + }, + { + "id": "Where should we save your database config file?", + "translation": "데이터베이스 구성 파일을 어디에 저장해야 하나요?", + "message": "Where should we save your database config file?", + "placeholder": null + }, + { + "id": "Error writing file: {Error}", + "translation": "파일 쓰기 오류: {Error}", + "message": "Error writing file: {Error}", + "placeholder": null + }, + { + "id": "Try the web interface with {Rendercurio_run___layersgui}", + "translation": "{Rendercurio_run___layersgui}와 함께 웹 인터페이스를 시도해보세요", + "message": "Try the web interface with {Rendercurio_run___layersgui}", + "placeholder": null + }, + { + "id": "For more servers, copy curio.env to /etc/curio.env and add the CURIO_LAYERS env to assign purposes.", + "translation": "더 많은 서버를 위해 curio.env를 /etc/curio.env로 복사하고 목적을 할당하기 위해 CURIO_LAYERS 환경 변수를 추가하세요.", + "message": "For more servers, copy curio.env to /etc/curio.env and add the CURIO_LAYERS env to assign purposes.", + "placeholder": null + }, + { + "id": "Owner Wallet: {String}", + "translation": "소유자 지갑: {String}", + "message": "Owner Wallet: {String}", + "placeholder": null + }, + { + "id": "Worker Wallet: {String}", + "translation": "작업자 지갑: {String}", + "message": "Worker Wallet: {String}", + "placeholder": null + }, + { + "id": "Sender Wallet: {String}", + "translation": "발송자 지갑: {String}", + "message": "Sender Wallet: {String}", + "placeholder": null + }, + { + "id": "Select the Sector Size", + "translation": "섹터 크기 선택", + "message": "Select the Sector Size", + "placeholder": null + }, + { + "id": "64 GiB", + "translation": "64 GiB", + "message": "64 GiB", + "placeholder": null + }, + { + "id": "32 GiB", + "translation": "32 GiB", + "message": "32 GiB", + "placeholder": null + }, + { + "id": "8 MiB", + "translation": "8 MiB", + "message": "8 MiB", + "placeholder": null + }, + { + "id": "2 KiB", + "translation": "2 KiB", + "message": "2 KiB", + "placeholder": null + }, + { + "id": "Sector selection failed: {Error}", + "translation": "섹터 선택 실패: {Error}", + "message": "Sector selection failed: {Error}", + "placeholder": null + } ] } \ No newline at end of file diff --git a/cmd/curio/internal/translations/locales/zh/messages.gotext.json b/cmd/curio/internal/translations/locales/zh/messages.gotext.json index f21214484..64403f899 100644 --- a/cmd/curio/internal/translations/locales/zh/messages.gotext.json +++ b/cmd/curio/internal/translations/locales/zh/messages.gotext.json @@ -1095,6 +1095,84 @@ "translation": "正在迁移{NSectors}个扇区的元数据。", "message": "Migrating metadata for {NSectors} sectors.", "placeholder": null + }, + { + "id": "Where should we save your database config file?", + "translation": "我们应该把你的数据库配置文件保存在哪里?", + "message": "Where should we save your database config file?", + "placeholder": null + }, + { + "id": "Error writing file: {Error}", + "translation": "写入文件错误: {Error}", + "message": "Error writing file: {Error}", + "placeholder": null + }, + { + "id": "Try the web interface with {Rendercurio_run___layersgui}", + "translation": "尝试使用{Rendercurio_run___layersgui}的网页界面", + "message": "Try the web interface with {Rendercurio_run___layersgui}", + "placeholder": null + }, + { + "id": "For more servers, copy curio.env to /etc/curio.env and add the CURIO_LAYERS env to assign purposes.", + "translation": "对于更多服务器,将curio.env复制到/etc/curio.env并添加CURIO_LAYERS环境变量以分配用途。", + "message": "For more servers, copy curio.env to /etc/curio.env and add the CURIO_LAYERS env to assign purposes.", + "placeholder": null + }, + { + "id": "Owner Wallet: {String}", + "translation": "所有者钱包: {String}", + "message": "Owner Wallet: {String}", + "placeholder": null + }, + { + "id": "Worker Wallet: {String}", + "translation": "工人钱包: {String}", + "message": "Worker Wallet: {String}", + "placeholder": null + }, + { + "id": "Sender Wallet: {String}", + "translation": "发送者钱包: {String}", + "message": "Sender Wallet: {String}", + "placeholder": null + }, + { + "id": "Select the Sector Size", + "translation": "选择扇区大小", + "message": "Select the Sector Size", + "placeholder": null + }, + { + "id": "64 GiB", + "translation": "64 GiB", + "message": "64 GiB", + "placeholder": null + }, + { + "id": "32 GiB", + "translation": "32 GiB", + "message": "32 GiB", + "placeholder": null + }, + { + "id": "8 MiB", + "translation": "8 MiB", + "message": "8 MiB", + "placeholder": null + }, + { + "id": "2 KiB", + "translation": "2 KiB", + "message": "2 KiB", + "placeholder": null + }, + { + "id": "Sector selection failed: {Error}", + "translation": "扇区选择失败: {Error}", + "message": "Sector selection failed: {Error}", + "placeholder": null } ] } \ No newline at end of file diff --git a/go.mod b/go.mod index fd092ab84..ad3474816 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,7 @@ require ( github.com/BurntSushi/toml v1.3.0 github.com/KarpelesLab/reflink v1.0.1 github.com/charmbracelet/lipgloss v0.10.0 + github.com/codeskyblue/go-sh v0.0.0-20200712050446-30169cf553fe github.com/docker/go-units v0.5.0 github.com/dustin/go-humanize v1.0.1 github.com/elastic/go-sysinfo v1.7.0 @@ -25,6 +26,7 @@ require ( github.com/filecoin-project/lotus v1.27.0-rc1.0.20240527035155-18795706288e github.com/filecoin-project/specs-actors/v7 v7.0.1 github.com/gbrlsnchs/jwt/v3 v3.0.1 + github.com/georgysavva/scany/v2 v2.1.3 github.com/google/uuid v1.5.0 github.com/gorilla/mux v1.8.1 github.com/hashicorp/go-multierror v1.1.1 @@ -35,6 +37,7 @@ require ( github.com/ipfs/go-datastore v0.6.0 github.com/ipfs/go-ipld-cbor v0.1.0 github.com/ipfs/go-log/v2 v2.5.1 + github.com/jackc/pgerrcode v0.0.0-20240316143900-6e2875d9b438 github.com/libp2p/go-buffer-pool v0.1.0 github.com/manifoldco/promptui v0.9.0 github.com/minio/sha256-simd v1.0.1 @@ -78,6 +81,7 @@ require ( github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cilium/ebpf v0.9.1 // indirect + github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0 // indirect github.com/containerd/cgroups v1.1.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect @@ -123,7 +127,6 @@ require ( github.com/francoispqt/gojay v1.2.13 // indirect github.com/gdamore/encoding v1.0.0 // indirect github.com/gdamore/tcell/v2 v2.2.0 // indirect - github.com/georgysavva/scany/v2 v2.1.3 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/go-logr/logr v1.4.1 // indirect @@ -183,7 +186,6 @@ require ( github.com/ipni/go-libipni v0.0.8 // indirect github.com/ipni/index-provider v0.12.0 // indirect github.com/ipsn/go-secp256k1 v0.0.0-20180726113642-9d62b9f0bc52 // indirect - github.com/jackc/pgerrcode v0.0.0-20240316143900-6e2875d9b438 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 // indirect github.com/jackc/puddle/v2 v2.2.1 // indirect diff --git a/go.sum b/go.sum index 8e236975e..a51d8d478 100644 --- a/go.sum +++ b/go.sum @@ -181,6 +181,10 @@ github.com/cockroachdb/cockroach-go/v2 v2.2.0 h1:/5znzg5n373N/3ESjHF5SMLxiW4RKB0 github.com/cockroachdb/cockroach-go/v2 v2.2.0/go.mod h1:u3MiKYGupPPjkn3ozknpMUpxPaNLTFWAya419/zv6eI= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= +github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0 h1:sDMmm+q/3+BukdIpxwO365v/Rbspp2Nt5XntgQRXq8Q= +github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/codeskyblue/go-sh v0.0.0-20200712050446-30169cf553fe h1:69JI97HlzP+PH5Mi1thcGlDoBr6PS2Oe+l3mNmAkbs4= +github.com/codeskyblue/go-sh v0.0.0-20200712050446-30169cf553fe/go.mod h1:VQx0hjo2oUeQkQUET7wRwradO6f+fN5jzXgB/zROxxE= github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=