Skip to content

Commit

Permalink
move to goal node generate-p2pid subcommand
Browse files Browse the repository at this point in the history
  • Loading branch information
algorandskiy committed Jul 29, 2024
1 parent eccb057 commit dc8b3e0
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 69 deletions.
1 change: 1 addition & 0 deletions cmd/goal/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ func init() {
nodeCmd.AddCommand(catchupCmd)
// Once the server-side implementation of the shutdown command is ready, we should enable this one.
//nodeCmd.AddCommand(shutdownCmd)
nodeCmd.AddCommand(p2pID)

startCmd.Flags().StringVarP(&peerDial, "peer", "p", "", "Peer address to dial for initial connection")
startCmd.Flags().StringVarP(&listenIP, "listen", "l", "", "Endpoint / REST address to listen on")
Expand Down
66 changes: 66 additions & 0 deletions cmd/goal/p2pid.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
// Copyright (C) 2019-2024 Algorand, Inc.
// This file is part of go-algorand
//
// go-algorand is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// go-algorand is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with go-algorand. If not, see <https://www.gnu.org/licenses/>.

// generate a new p2p private key and print out peerID to stdout

package main

import (
"fmt"
"os"
"path"

"github.com/algorand/go-algorand/cmd/util/datadir"
"github.com/algorand/go-algorand/config"
"github.com/algorand/go-algorand/network/p2p"
"github.com/algorand/go-algorand/util"
"github.com/libp2p/go-libp2p/core/peer"
"github.com/spf13/cobra"
)

var p2pID = &cobra.Command{
Use: "generate-p2pid",
Short: "Generate a new p2p private key",
Long: "Generate a new p2p private key (saved to " + p2p.DefaultPrivKeyPath + ") and print out peerID to stdout",
Args: validateNoPosArgsFn,
Run: func(cmd *cobra.Command, args []string) {
exist := false
datadir.OnDataDirs(func(dataDir string) {
privKeyPath := path.Join(dataDir, p2p.DefaultPrivKeyPath)
if util.FileExists(privKeyPath) {
exist = true

Check warning on line 44 in cmd/goal/p2pid.go

View check run for this annotation

Codecov / codecov/patch

cmd/goal/p2pid.go#L39-L44

Added lines #L39 - L44 were not covered by tests
}

peerKey, err := p2p.GetPrivKey(config.Local{P2PPersistPeerID: true}, dataDir)
if err != nil {
fmt.Fprintf(os.Stderr, "Error obtaining private key: %v\n", err)
os.Exit(1)

Check warning on line 50 in cmd/goal/p2pid.go

View check run for this annotation

Codecov / codecov/patch

cmd/goal/p2pid.go#L47-L50

Added lines #L47 - L50 were not covered by tests
}
peerID, err := peer.IDFromPublicKey(peerKey.GetPublic())
if err != nil {
fmt.Fprintf(os.Stderr, "Error obtaining peerID from a key: %v\n", err)
os.Exit(1)

Check warning on line 55 in cmd/goal/p2pid.go

View check run for this annotation

Codecov / codecov/patch

cmd/goal/p2pid.go#L52-L55

Added lines #L52 - L55 were not covered by tests
}

fmt.Printf("PeerID: %s\n", peerID.String())
if !exist {
fmt.Printf("Private key saved to %s\n", privKeyPath)
} else {
fmt.Printf("Used existing key %s\n", privKeyPath)

Check warning on line 62 in cmd/goal/p2pid.go

View check run for this annotation

Codecov / codecov/patch

cmd/goal/p2pid.go#L58-L62

Added lines #L58 - L62 were not covered by tests
}
})
},
}
69 changes: 0 additions & 69 deletions cmd/p2pid/main.go

This file was deleted.

0 comments on commit dc8b3e0

Please sign in to comment.