Change log to node's URL (#3255)

This commit is contained in:
Nishant Das
2019-08-21 21:00:22 +05:30
committed by terence tsao
parent 3cb32c3792
commit 0f123ae562
3 changed files with 45 additions and 14 deletions

View File

@@ -10,10 +10,10 @@ go_library(
visibility = ["//visibility:private"],
deps = [
"//shared/version:go_default_library",
"@com_github_ethereum_go_ethereum//crypto:go_default_library",
"@com_github_btcsuite_btcd//btcec:go_default_library",
"@com_github_ethereum_go_ethereum//p2p/discv5:go_default_library",
"@com_github_ipfs_go_log//:go_default_library",
"@com_github_libp2p_go_libp2p_crypto//:go_default_library",
"@com_github_libp2p_go_libp2p_core//crypto:go_default_library",
"@org_uber_go_automaxprocs//:go_default_library",
],
)
@@ -31,10 +31,10 @@ go_image(
visibility = ["//visibility:private"],
deps = [
"//shared/version:go_default_library",
"@com_github_ethereum_go_ethereum//crypto:go_default_library",
"@com_github_btcsuite_btcd//btcec:go_default_library",
"@com_github_ethereum_go_ethereum//p2p/discv5:go_default_library",
"@com_github_ipfs_go_log//:go_default_library",
"@com_github_libp2p_go_libp2p_crypto//:go_default_library",
"@com_github_libp2p_go_libp2p_core//crypto:go_default_library",
"@org_uber_go_automaxprocs//:go_default_library",
],
)
@@ -66,7 +66,9 @@ go_test(
embed = [":go_default_library"],
deps = [
"//shared/iputils:go_default_library",
"@com_github_btcsuite_btcd//btcec:go_default_library",
"@com_github_ethereum_go_ethereum//p2p/discv5:go_default_library",
"@com_github_libp2p_go_libp2p_core//crypto:go_default_library",
"@org_uber_go_automaxprocs//:go_default_library",
],
)

View File

@@ -12,16 +12,15 @@ package main
import (
"crypto/ecdsa"
"crypto/rand"
"crypto/x509"
"flag"
"fmt"
"net"
curve "github.com/ethereum/go-ethereum/crypto"
"github.com/btcsuite/btcd/btcec"
"github.com/ethereum/go-ethereum/p2p/discv5"
logging "github.com/ipfs/go-log"
crypto "github.com/libp2p/go-libp2p-crypto"
"github.com/libp2p/go-libp2p-core/crypto"
"github.com/prysmaticlabs/prysm/shared/version"
_ "go.uber.org/automaxprocs"
)
@@ -34,9 +33,6 @@ var (
log = logging.Logger("prysm-bootnode")
)
// ECDSACurve is the default ecdsa curve used(secpk2561)
var ECDSACurve = curve.S256()
func main() {
flag.Parse()
@@ -52,7 +48,7 @@ func main() {
listener := createListener(defaultIP, *port, privKey)
node := listener.Self()
fmt.Printf("Running bootnode: /ip4/%s/udp/%d/discv5/%s\n", node.IP.String(), node.UDP, node.ID.String())
fmt.Printf("Running bootnode, url: %s", node.String())
select {}
}
@@ -76,22 +72,23 @@ func createListener(ipAddr string, port int, privKey *ecdsa.PrivateKey) *discv5.
func extractPrivateKey() *ecdsa.PrivateKey {
var privKey *ecdsa.PrivateKey
var err error
if *privateKey != "" {
b, err := crypto.ConfigDecodeKey(*privateKey)
if err != nil {
panic(err)
}
privKey, err = x509.ParseECPrivateKey(b)
unmarshalledKey, err := crypto.UnmarshalPrivateKey(b)
if err != nil {
panic(err)
}
privKey = (*ecdsa.PrivateKey)((*btcec.PrivateKey)(unmarshalledKey.(*crypto.Secp256k1PrivateKey)))
} else {
privKey, err = ecdsa.GenerateKey(ECDSACurve, rand.Reader)
privInterfaceKey, _, err := crypto.GenerateSecp256k1Key(rand.Reader)
if err != nil {
panic(err)
}
privKey = (*ecdsa.PrivateKey)((*btcec.PrivateKey)(privInterfaceKey.(*crypto.Secp256k1PrivateKey)))
log.Warning("No private key was provided. Using default/random private key")
}
return privKey

View File

@@ -1,9 +1,13 @@
package main
import (
"crypto/ecdsa"
"crypto/rand"
"testing"
"github.com/btcsuite/btcd/btcec"
"github.com/ethereum/go-ethereum/p2p/discv5"
"github.com/libp2p/go-libp2p-core/crypto"
"github.com/prysmaticlabs/prysm/shared/iputils"
_ "go.uber.org/automaxprocs"
)
@@ -53,3 +57,31 @@ func TestBootnode_OK(t *testing.T) {
t.Errorf("Wanted node ID of %s but got %s", listenerNode.ID, nodes[1].ID)
}
}
func TestPrivateKey_ParsesCorrectly(t *testing.T) {
privKey, _, err := crypto.GenerateSecp256k1Key(rand.Reader)
if err != nil {
t.Fatal(err)
}
marshalledKey, err := crypto.MarshalPrivateKey(privKey)
if err != nil {
t.Fatal(err)
}
encodedKey := crypto.ConfigEncodeKey(marshalledKey)
*privateKey = encodedKey
extractedKey := extractPrivateKey()
rawKey := (*ecdsa.PrivateKey)((*btcec.PrivateKey)(privKey.(*crypto.Secp256k1PrivateKey)))
r, s, err := ecdsa.Sign(rand.Reader, extractedKey, []byte{'t', 'e', 's', 't'})
if err != nil {
t.Fatal(err)
}
isVerified := ecdsa.Verify(&rawKey.PublicKey, []byte{'t', 'e', 's', 't'}, r, s)
if !isVerified {
t.Error("Unmarshalled key is not the same as the key that was given to the function")
}
*privateKey = ""
}