node-3.go 757 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package main
  2. import (
  3. "log"
  4. "math/big"
  5. "os"
  6. "os/signal"
  7. chord "trial/achord"
  8. "trial/achord/models"
  9. // "strconv"
  10. "time"
  11. )
  12. func createNode(id string, addr string, sister *models.Node) (*chord.Node, error) {
  13. cnf := chord.DefaultConfig()
  14. cnf.Id = id
  15. cnf.Addr = addr
  16. cnf.Timeout = 10 * time.Millisecond
  17. cnf.MaxIdle = 100 * time.Millisecond
  18. n, err := chord.NewNode(cnf, sister)
  19. return n, err
  20. }
  21. func createID(id string) []byte {
  22. val := big.NewInt(0)
  23. val.SetString(id, 10)
  24. return val.Bytes()
  25. }
  26. func main() {
  27. joinNode := chord.NewInode("1", "0.0.0.0:8001")
  28. h, err := createNode("8", "0.0.0.0:8003", joinNode)
  29. if err != nil {
  30. log.Fatalln(err)
  31. return
  32. }
  33. c := make(chan os.Signal, 1)
  34. signal.Notify(c, os.Interrupt)
  35. <-c
  36. h.Stop()
  37. }