// nolint: gosec
|
|
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"flag"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"log"
|
|
"net"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"github.com/tendermint/tendermint/crypto/ed25519"
|
|
"github.com/tendermint/tendermint/p2p"
|
|
)
|
|
|
|
func main() {
|
|
baseDir := flag.String("base", ".", `where the "corpus" directory will live`)
|
|
flag.Parse()
|
|
|
|
initCorpus(*baseDir)
|
|
}
|
|
|
|
func initCorpus(baseDir string) {
|
|
log.SetFlags(0)
|
|
|
|
// create "corpus" directory
|
|
corpusDir := filepath.Join(baseDir, "corpus")
|
|
if err := os.MkdirAll(corpusDir, 0755); err != nil {
|
|
log.Fatalf("Creating %q err: %v", corpusDir, err)
|
|
}
|
|
|
|
// create corpus
|
|
privKey := ed25519.GenPrivKey()
|
|
addrs := []*p2p.NetAddress{
|
|
{ID: p2p.NodeIDFromPubKey(privKey.PubKey()), IP: net.IPv4(0, 0, 0, 0), Port: 0},
|
|
{ID: p2p.NodeIDFromPubKey(privKey.PubKey()), IP: net.IPv4(127, 0, 0, 0), Port: 80},
|
|
{ID: p2p.NodeIDFromPubKey(privKey.PubKey()), IP: net.IPv4(213, 87, 10, 200), Port: 8808},
|
|
{ID: p2p.NodeIDFromPubKey(privKey.PubKey()), IP: net.IPv4(111, 111, 111, 111), Port: 26656},
|
|
{ID: p2p.NodeIDFromPubKey(privKey.PubKey()), IP: net.ParseIP("2001:db8::68"), Port: 26656},
|
|
}
|
|
|
|
for i, addr := range addrs {
|
|
filename := filepath.Join(corpusDir, fmt.Sprintf("%d.json", i))
|
|
|
|
bz, err := json.Marshal(addr)
|
|
if err != nil {
|
|
log.Fatalf("can't marshal %v: %v", addr, err)
|
|
}
|
|
|
|
if err := ioutil.WriteFile(filename, bz, 0644); err != nil {
|
|
log.Fatalf("can't write %v to %q: %v", addr, filename, err)
|
|
}
|
|
|
|
log.Printf("wrote %q", filename)
|
|
}
|
|
}
|