mirror of https://github.com/vacp2p/research.git
Add geth logging and isolate problem
This commit is contained in:
parent
4d5a47b0e7
commit
ad8e36a39e
|
@ -9,7 +9,8 @@ import (
|
|||
"os"
|
||||
"time"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
//"log"
|
||||
"github.com/ethereum/go-ethereum/log"
|
||||
"strconv"
|
||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||
"github.com/ethereum/go-ethereum/p2p/nat"
|
||||
|
@ -29,11 +30,16 @@ import (
|
|||
// So A sends to B, and B receives it
|
||||
// Later also use Feeds to post to own so B can check/pull
|
||||
|
||||
var (
|
||||
// logger
|
||||
Log = log.New("hello-pss", "*")
|
||||
)
|
||||
|
||||
// XXX: Warning, this is bad design. Should use keystore for this.
|
||||
func getHexPrivateKey() string {
|
||||
privateKey, err := crypto.GenerateKey()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
Log.Crit("can't generate private key", err)
|
||||
}
|
||||
privateKeyBytes := crypto.FromECDSA(privateKey)
|
||||
|
||||
|
@ -43,7 +49,7 @@ func getHexPrivateKey() string {
|
|||
publicKey := privateKey.Public()
|
||||
publicKeyECDSA, ok := publicKey.(*ecdsa.PublicKey)
|
||||
if !ok {
|
||||
log.Fatal("error casting public key to ECDSA")
|
||||
log.Crit("error casting public key to ECDSA", err)
|
||||
}
|
||||
publicKeyBytes := crypto.FromECDSAPub(publicKeyECDSA)
|
||||
fmt.Println("Public Key: ", hexutil.Encode(publicKeyBytes[4:]))
|
||||
|
@ -56,21 +62,21 @@ func getHexPrivateKey() string {
|
|||
func getPrivateKeyFromFile(keyfile string) *ecdsa.PrivateKey {
|
||||
contents, err := ioutil.ReadFile(keyfile)
|
||||
if err != nil {
|
||||
log.Fatal("Unable to read keyfile", keyfile)
|
||||
log.Crit("Unable to read keyfile", keyfile)
|
||||
}
|
||||
println(string(contents))
|
||||
privateKeyBytes, err := hexutil.Decode(string(contents))
|
||||
if err != nil {
|
||||
log.Fatal("Unable to get private key bytes")
|
||||
log.Crit("Unable to get private key bytes", err)
|
||||
}
|
||||
privateKey, err := crypto.ToECDSA(privateKeyBytes)
|
||||
if err != nil {
|
||||
log.Fatal("Unable to get private key")
|
||||
log.Crit("Unable to get private key", err)
|
||||
}
|
||||
publicKey := privateKey.Public()
|
||||
publicKeyECDSA, ok := publicKey.(*ecdsa.PublicKey)
|
||||
if !ok {
|
||||
log.Fatal("error casting public key to ECDSA")
|
||||
log.Crit("error casting public key to ECDSA", err)
|
||||
}
|
||||
publicKeyBytes := crypto.FromECDSAPub(publicKeyECDSA)
|
||||
address := crypto.PubkeyToAddress(*publicKeyECDSA).Hex()
|
||||
|
@ -83,6 +89,7 @@ func getPrivateKeyFromFile(keyfile string) *ecdsa.PrivateKey {
|
|||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//
|
||||
func getp2pConfig(listenaddr string) p2p.Config {
|
||||
return p2p.Config{
|
||||
ListenAddr: listenaddr,
|
||||
|
@ -97,12 +104,13 @@ func newNode(port int) (*node.Node, error) {
|
|||
cfg.DataDir = fmt.Sprintf("%s%d", ".data_", port)
|
||||
|
||||
// XXX: Lol
|
||||
// XXX: cfg.P2P.ListenAddr = fmt.Sprintf(":%d", port), should work
|
||||
if port == 9600 {
|
||||
cfg.P2P = getp2pConfig(":30400")
|
||||
} else if port == 9601 {
|
||||
cfg.P2P = getp2pConfig(":30401")
|
||||
} else {
|
||||
log.Fatal("Ports be fucked up")
|
||||
log.Crit("Ports be fucked up", "yeah")
|
||||
}
|
||||
|
||||
cfg.HTTPPort = port
|
||||
|
@ -240,6 +248,21 @@ func run(port int, privateKey *ecdsa.PrivateKey) {
|
|||
node.Stop()
|
||||
}
|
||||
|
||||
func init() {
|
||||
// NOTE: taken from ethereum-samples
|
||||
hs := log.StreamHandler(os.Stderr, log.TerminalFormat(true))
|
||||
loglevel := log.LvlInfo
|
||||
// TODO: Setup flag and -v option
|
||||
// if *verbose {
|
||||
// loglevel = log.LvlTrace
|
||||
// }
|
||||
// XXX Trace for now
|
||||
loglevel = log.LvlTrace
|
||||
hf := log.LvlFilterHandler(loglevel, hs)
|
||||
h := log.CallerFileHandler(hf)
|
||||
log.Root().SetHandler(h)
|
||||
}
|
||||
|
||||
func main() {
|
||||
fmt.Printf("Hello PSS\n")
|
||||
|
||||
|
@ -247,6 +270,7 @@ func main() {
|
|||
// If 2 args, first is keyfile second port
|
||||
|
||||
/// XXX: Bad CLI design
|
||||
// TODO: Use golang flags
|
||||
// TODO: Pull this out to separate parseArgs function
|
||||
args := os.Args[1:]
|
||||
if len(args) == 1 {
|
||||
|
@ -254,9 +278,9 @@ func main() {
|
|||
// TODO: Use keystore or something
|
||||
privateKey := getHexPrivateKey()
|
||||
ioutil.WriteFile("new.key", []byte(privateKey), 0644)
|
||||
log.Fatal("Thanks for the fish, your private key is now insecurely stored in new.key")
|
||||
log.Crit("Thanks for the fish, your private key is now insecurely stored in new.key", args)
|
||||
} else {
|
||||
log.Fatal("Unknown argument, please use 'new' or two arguments (keyfile and port)")
|
||||
log.Crit("Unknown argument, please use 'new' or two arguments (keyfile and port)", args)
|
||||
}
|
||||
} else if len(args) == 2 {
|
||||
keyfile := args[0]
|
||||
|
@ -265,17 +289,21 @@ func main() {
|
|||
privateKey := getPrivateKeyFromFile(keyfile)
|
||||
port, err := strconv.Atoi(portArg)
|
||||
if err != nil {
|
||||
log.Fatal("Unable to parse port argument", portArg)
|
||||
log.Crit("Unable to parse port argument", portArg)
|
||||
}
|
||||
// Start engines
|
||||
run(port, privateKey)
|
||||
} else {
|
||||
log.Fatal("Wrong number of arguments, should be one (new) or two (keyfile and port)")
|
||||
log.Crit("Wrong number of arguments, should be one (new) or two (keyfile and port)", args)
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Here at the moment. Need to make sure it reads nodekey wrt right data dir
|
||||
// And then adjust ports. Then we should be able to run
|
||||
// TODO: Here at the moment. Need to make sure it reads nodekey wrt right data dir DONE
|
||||
// And then adjust ports DONE. Then we should be able to run
|
||||
// go run hello_pss.go alice and hello_pss.go bob, and then it should be able to send and recv
|
||||
//
|
||||
// Then also integrate feeds
|
||||
|
||||
|
||||
// XXX Ok the problem is https://github.com/ethereum/go-ethereum/blob/master/swarm/pss/pss.go#L766
|
||||
// Which happens due to not being connected, so manually and possibly some local network stuff here
|
||||
|
|
Loading…
Reference in New Issue