aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2016-07-20 00:53:22 +0800
committerGitHub <noreply@github.com>2016-07-20 00:53:22 +0800
commit65f340bb95bd10f59b3086f322e751bf46a4e446 (patch)
tree713dab2610fcb8bf0aa835d61eecca1a7be85f5a
parentfe564613870e268399b2919a04aa8c7e40c45dd8 (diff)
parent91130ea3fce93a747a9ac0df9453a6f0d6a6c0e1 (diff)
downloadgo-tangerine-65f340bb95bd10f59b3086f322e751bf46a4e446.tar
go-tangerine-65f340bb95bd10f59b3086f322e751bf46a4e446.tar.gz
go-tangerine-65f340bb95bd10f59b3086f322e751bf46a4e446.tar.bz2
go-tangerine-65f340bb95bd10f59b3086f322e751bf46a4e446.tar.lz
go-tangerine-65f340bb95bd10f59b3086f322e751bf46a4e446.tar.xz
go-tangerine-65f340bb95bd10f59b3086f322e751bf46a4e446.tar.zst
go-tangerine-65f340bb95bd10f59b3086f322e751bf46a4e446.zip
Merge pull request #2821 from Arachnid/discover-enode
cmd/bootnode: Add support for outputting a node's ID on the command line
-rw-r--r--cmd/bootnode/main.go28
1 files changed, 16 insertions, 12 deletions
diff --git a/cmd/bootnode/main.go b/cmd/bootnode/main.go
index 7d3f9fdb3..40d3cdc17 100644
--- a/cmd/bootnode/main.go
+++ b/cmd/bootnode/main.go
@@ -20,6 +20,7 @@ package main
import (
"crypto/ecdsa"
"flag"
+ "fmt"
"os"
"github.com/ethereum/go-ethereum/cmd/utils"
@@ -32,7 +33,8 @@ import (
func main() {
var (
listenAddr = flag.String("addr", ":30301", "listen address")
- genKey = flag.String("genkey", "", "generate a node key and quit")
+ genKey = flag.String("genkey", "", "generate a node key")
+ writeAddr = flag.Bool("writeaddress", false, "write out the node's pubkey hash and quit")
nodeKeyFile = flag.String("nodekey", "", "private key filename")
nodeKeyHex = flag.String("nodekeyhex", "", "private key as hex (for testing)")
natdesc = flag.String("nat", "none", "port mapping mechanism (any|none|upnp|pmp|extip:<IP>)")
@@ -45,22 +47,19 @@ func main() {
glog.SetToStderr(true)
flag.Parse()
- if *genKey != "" {
- key, err := crypto.GenerateKey()
- if err != nil {
- utils.Fatalf("could not generate key: %v", err)
- }
- if err := crypto.SaveECDSA(*genKey, key); err != nil {
- utils.Fatalf("%v", err)
- }
- os.Exit(0)
- }
-
natm, err := nat.Parse(*natdesc)
if err != nil {
utils.Fatalf("-nat: %v", err)
}
switch {
+ case *genKey != "":
+ nodeKey, err = crypto.GenerateKey()
+ if err != nil {
+ utils.Fatalf("could not generate key: %v", err)
+ }
+ if err = crypto.SaveECDSA(*genKey, nodeKey); err != nil {
+ utils.Fatalf("%v", err)
+ }
case *nodeKeyFile == "" && *nodeKeyHex == "":
utils.Fatalf("Use -nodekey or -nodekeyhex to specify a private key")
case *nodeKeyFile != "" && *nodeKeyHex != "":
@@ -75,6 +74,11 @@ func main() {
}
}
+ if *writeAddr {
+ fmt.Printf("%v\n", discover.PubkeyID(&nodeKey.PublicKey))
+ os.Exit(0)
+ }
+
if _, err := discover.ListenUDP(nodeKey, *listenAddr, natm, ""); err != nil {
utils.Fatalf("%v", err)
}