代码拉取完成,页面将自动刷新
package main
import (
"bufio"
"fmt"
"math/big"
"os"
"strings"
"gitee.com/thubcc/blockchain/constant"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/p2p"
"github.com/ethereum/go-ethereum/p2p/enode"
"github.com/ethereum/go-ethereum/p2p/nat"
"github.com/ethereum/go-ethereum/params"
)
func main() {
logHandler,err := log.NetHandler("udp", "localhost:9000", log.JSONFormat())
if err != nil {
fmt.Println(err)
}
log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(6),logHandler))
peer := enode.MustParse(constant.DefaultNode)
var peers = []*enode.Node{peer}
for _,mainnode := range params.MainnetBootnodes {
peer := enode.MustParse(mainnode)
peers = append(peers,peer)
}
prk,_ := big.NewInt(0).SetString(constant.DefaultPrivateKeyStart,16)
asymKey,_ := crypto.ToECDSA(prk.Bytes())
var nullRun = func(p *p2p.Peer,rw p2p.MsgReadWriter) error {return nil}
protocol := p2p.Protocol{
Name:"nil",
Version:1,
Length:256,
Run:nullRun,
}
maxPeers := 50
var server = &p2p.Server{
Config: p2p.Config{
PrivateKey: asymKey,
MaxPeers: maxPeers,
Name: common.MakeName("p2p find", "6.0"),
Protocols: []p2p.Protocol{protocol},
NAT: nat.Any(),
BootstrapNodes: peers,
StaticNodes: peers,
TrustedNodes: peers,
},
}
server.Start()
defer server.Stop()
input := bufio.NewReader(os.Stdin)
fmt.Println()
for {
fmt.Printf("~Q for exit:")
txt, err := input.ReadString('\n')
if err != nil {
fmt.Println("\n ~Q for exit:",err)
} else {
txt = strings.TrimRight(txt, "\n\r")
if txt == "~Q" {
break
}
fmt.Println(txt)
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。