|
|
package main
import ( "fmt" "os" "time"
blockchainlib "./blockchainlib" p2plib "./p2plib" "github.com/fatih/color" )
var tp p2plib.ThisPeer var blockchain blockchainlib.Blockchain
func main() {
if len(os.Args) < 3 { color.Red("need to call:") color.Red("./peer client 3001 3002") os.Exit(3) }
color.Blue("Starting Peer") //read configuration file
readConfig("config.json")
//read the stored blockchain
err := blockchain.ReadFromDisk() check(err) blockchain.Print()
//initialize p2plib
configuredMsgCases := createMsgHandlerCases() tp = p2plib.InitializePeer(os.Args[1], "127.0.0.1", os.Args[2], os.Args[3], config.ServerIP, config.ServerPort, configuredMsgCases)
if tp.RunningPeer.Role == "client" { color.Red("http://" + config.IP + ":" + config.ServerRESTPort) fmt.Println(blockchain.GenesisBlock) blockchain.ReconstructBlockchainFromBlock("http://"+config.IP+":"+config.ServerRESTPort, blockchain.GenesisBlock) } color.Blue("initialized") go runRestServer()
fmt.Println(tp.Running) for tp.Running { time.Sleep(1000 * time.Millisecond) } }
|