github.com/number571/tendermint@v0.34.11-gost/test/fuzz/p2p/addrbook/init-corpus/main.go (about) 1 // nolint: gosec 2 package main 3 4 import ( 5 "encoding/json" 6 "flag" 7 "fmt" 8 "io/ioutil" 9 "log" 10 "net" 11 "os" 12 "path/filepath" 13 14 "github.com/number571/tendermint/crypto/gost512" 15 "github.com/number571/tendermint/internal/p2p" 16 "github.com/number571/tendermint/types" 17 ) 18 19 func main() { 20 baseDir := flag.String("base", ".", `where the "corpus" directory will live`) 21 flag.Parse() 22 23 initCorpus(*baseDir) 24 } 25 26 func initCorpus(baseDir string) { 27 log.SetFlags(0) 28 29 // create "corpus" directory 30 corpusDir := filepath.Join(baseDir, "corpus") 31 if err := os.MkdirAll(corpusDir, 0755); err != nil { 32 log.Fatalf("Creating %q err: %v", corpusDir, err) 33 } 34 35 // create corpus 36 privKey := gost512.GenPrivKey() 37 addrs := []*p2p.NetAddress{ 38 {ID: types.NodeIDFromPubKey(privKey.PubKey()), IP: net.IPv4(0, 0, 0, 0), Port: 0}, 39 {ID: types.NodeIDFromPubKey(privKey.PubKey()), IP: net.IPv4(127, 0, 0, 0), Port: 80}, 40 {ID: types.NodeIDFromPubKey(privKey.PubKey()), IP: net.IPv4(213, 87, 10, 200), Port: 8808}, 41 {ID: types.NodeIDFromPubKey(privKey.PubKey()), IP: net.IPv4(111, 111, 111, 111), Port: 26656}, 42 {ID: types.NodeIDFromPubKey(privKey.PubKey()), IP: net.ParseIP("2001:db8::68"), Port: 26656}, 43 } 44 45 for i, addr := range addrs { 46 filename := filepath.Join(corpusDir, fmt.Sprintf("%d.json", i)) 47 48 bz, err := json.Marshal(addr) 49 if err != nil { 50 log.Fatalf("can't marshal %v: %v", addr, err) 51 } 52 53 if err := ioutil.WriteFile(filename, bz, 0644); err != nil { 54 log.Fatalf("can't write %v to %q: %v", addr, filename, err) 55 } 56 57 log.Printf("wrote %q", filename) 58 } 59 }