You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1005 B

6 years ago
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "time"
  6. blockchainlib "./blockchainlib"
  7. p2plib "./p2plib"
  8. "github.com/fatih/color"
  9. )
  10. var tp p2plib.ThisPeer
  11. var blockchain blockchainlib.Blockchain
  12. func main() {
  13. if len(os.Args) < 3 {
  14. color.Red("need to call:")
  15. color.Red("./peer client 3001 3002")
  16. os.Exit(3)
  17. }
  18. color.Blue("Starting Peer")
  19. //read configuration file
  20. readConfig("config.json")
  21. //read the stored blockchain
  22. err := blockchain.ReadFromDisk()
  23. check(err)
  24. blockchain.Print()
  25. tp = p2plib.InitializePeer(os.Args[1], "127.0.0.1",
  26. os.Args[2], os.Args[3], config.ServerIP, config.ServerPort)
  27. if tp.RunningPeer.Role == "client" {
  28. color.Red("http://" + config.IP + ":" + config.ServerRESTPort)
  29. fmt.Println(blockchain.GenesisBlock)
  30. blockchain.ReconstructBlockchainFromBlock("http://"+config.IP+":"+config.ServerRESTPort, blockchain.GenesisBlock)
  31. }
  32. color.Blue("initialized")
  33. go runRestServer()
  34. fmt.Println(tp.Running)
  35. for tp.Running {
  36. time.Sleep(1000 * time.Millisecond)
  37. }
  38. }