diff options
Diffstat (limited to 'swarm/network')
-rw-r--r-- | swarm/network/depo.go | 2 | ||||
-rw-r--r-- | swarm/network/hive.go | 12 | ||||
-rw-r--r-- | swarm/network/kademlia/address.go | 2 | ||||
-rw-r--r-- | swarm/network/kademlia/kaddb.go | 8 | ||||
-rw-r--r-- | swarm/network/kademlia/kademlia.go | 2 | ||||
-rw-r--r-- | swarm/network/kademlia/kademlia_test.go | 10 | ||||
-rw-r--r-- | swarm/network/protocol.go | 2 | ||||
-rw-r--r-- | swarm/network/syncer.go | 11 |
8 files changed, 30 insertions, 19 deletions
diff --git a/swarm/network/depo.go b/swarm/network/depo.go index 8695bf5d9..17540d2f9 100644 --- a/swarm/network/depo.go +++ b/swarm/network/depo.go @@ -55,7 +55,7 @@ func (self *Depo) HandleUnsyncedKeysMsg(req *unsyncedKeysMsgData, p *peer) error var err error for _, req := range unsynced { // skip keys that are found, - chunk, err = self.localStore.Get(storage.Key(req.Key[:])) + chunk, err = self.localStore.Get(req.Key[:]) if err != nil || chunk.SData == nil { missing = append(missing, req) } diff --git a/swarm/network/hive.go b/swarm/network/hive.go index d37b7e400..2504a4610 100644 --- a/swarm/network/hive.go +++ b/swarm/network/hive.go @@ -70,19 +70,25 @@ type HiveParams struct { *kademlia.KadParams } -func NewHiveParams(path string) *HiveParams { - kad := kademlia.NewKadParams() +//create default params +func NewDefaultHiveParams() *HiveParams { + kad := kademlia.NewDefaultKadParams() // kad.BucketSize = bucketSize // kad.MaxProx = maxProx // kad.ProxBinSize = proxBinSize return &HiveParams{ CallInterval: callInterval, - KadDbPath: filepath.Join(path, "bzz-peers.json"), KadParams: kad, } } +//this can only finally be set after all config options (file, cmd line, env vars) +//have been evaluated +func (self *HiveParams) Init(path string) { + self.KadDbPath = filepath.Join(path, "bzz-peers.json") +} + func NewHive(addr common.Hash, params *HiveParams, swapEnabled, syncEnabled bool) *Hive { kad := kademlia.New(kademlia.Address(addr), params.KadParams) return &Hive{ diff --git a/swarm/network/kademlia/address.go b/swarm/network/kademlia/address.go index 16c5ce532..4c38a846f 100644 --- a/swarm/network/kademlia/address.go +++ b/swarm/network/kademlia/address.go @@ -67,7 +67,7 @@ func proximity(one, other Address) (ret int) { for i := 0; i < len(one); i++ { oxo := one[i] ^ other[i] for j := 0; j < 8; j++ { - if (uint8(oxo)>>uint8(7-j))&0x01 != 0 { + if (oxo>>uint8(7-j))&0x01 != 0 { return i*8 + j } } diff --git a/swarm/network/kademlia/kaddb.go b/swarm/network/kademlia/kaddb.go index 3e4b261fd..b37ced5ba 100644 --- a/swarm/network/kademlia/kaddb.go +++ b/swarm/network/kademlia/kaddb.go @@ -211,12 +211,12 @@ func (self *KadDb) findBest(maxBinSize int, binSize func(int) int) (node *NodeRe } // if node is scheduled to connect - if time.Time(node.After).After(time.Now()) { + if node.After.After(time.Now()) { log.Debug(fmt.Sprintf("kaddb record %v (PO%03d:%d) skipped. seen at %v (%v ago), scheduled at %v", node.Addr, po, cursor, node.Seen, delta, node.After)) continue ROW } - delta = time.Since(time.Time(node.Seen)) + delta = time.Since(node.Seen) if delta < self.initialRetryInterval { delta = self.initialRetryInterval } @@ -230,7 +230,7 @@ func (self *KadDb) findBest(maxBinSize int, binSize func(int) int) (node *NodeRe log.Debug(fmt.Sprintf("kaddb record %v (PO%03d:%d) ready to be tried. seen at %v (%v ago), scheduled at %v", node.Addr, po, cursor, node.Seen, delta, node.After)) // scheduling next check - interval = time.Duration(delta * time.Duration(self.connRetryExp)) + interval = delta * time.Duration(self.connRetryExp) after = time.Now().Add(interval) log.Debug(fmt.Sprintf("kaddb record %v (PO%03d:%d) selected as candidate connection %v. seen at %v (%v ago), selectable since %v, retry after %v (in %v)", node.Addr, po, cursor, rounds, node.Seen, delta, node.After, after, interval)) @@ -330,7 +330,7 @@ func (self *KadDb) load(path string, cb func(*NodeRecord, Node) error) (err erro } } n++ - if (node.After == time.Time{}) { + if node.After.IsZero() { node.After = time.Now() } self.index[node.Addr] = node diff --git a/swarm/network/kademlia/kademlia.go b/swarm/network/kademlia/kademlia.go index bf976a3e1..0abc42a19 100644 --- a/swarm/network/kademlia/kademlia.go +++ b/swarm/network/kademlia/kademlia.go @@ -52,7 +52,7 @@ type KadParams struct { ConnRetryExp int } -func NewKadParams() *KadParams { +func NewDefaultKadParams() *KadParams { return &KadParams{ MaxProx: maxProx, ProxBinSize: proxBinSize, diff --git a/swarm/network/kademlia/kademlia_test.go b/swarm/network/kademlia/kademlia_test.go index 417ccecae..88858908a 100644 --- a/swarm/network/kademlia/kademlia_test.go +++ b/swarm/network/kademlia/kademlia_test.go @@ -63,7 +63,7 @@ func TestOn(t *testing.T) { if !ok1 || !ok2 { t.Errorf("oops") } - kad := New(addr, NewKadParams()) + kad := New(addr, NewDefaultKadParams()) err := kad.On(&testNode{addr: other}, nil) _ = err } @@ -72,7 +72,7 @@ func TestBootstrap(t *testing.T) { test := func(test *bootstrapTest) bool { // for any node kad.le, Target and N - params := NewKadParams() + params := NewDefaultKadParams() params.MaxProx = test.MaxProx params.BucketSize = test.BucketSize params.ProxBinSize = test.BucketSize @@ -127,7 +127,7 @@ func TestFindClosest(t *testing.T) { test := func(test *FindClosestTest) bool { // for any node kad.le, Target and N - params := NewKadParams() + params := NewDefaultKadParams() params.MaxProx = 7 kad := New(test.Self, params) var err error @@ -198,7 +198,7 @@ var ( func TestProxAdjust(t *testing.T) { r := rand.New(rand.NewSource(time.Now().UnixNano())) self := gen(Address{}, r).(Address) - params := NewKadParams() + params := NewDefaultKadParams() params.MaxProx = 7 kad := New(self, params) @@ -232,7 +232,7 @@ func TestSaveLoad(t *testing.T) { r := rand.New(rand.NewSource(time.Now().UnixNano())) addresses := gen([]Address{}, r).([]Address) self := RandomAddress() - params := NewKadParams() + params := NewDefaultKadParams() params.MaxProx = 7 kad := New(self, params) diff --git a/swarm/network/protocol.go b/swarm/network/protocol.go index 2f880df57..a418c1dbb 100644 --- a/swarm/network/protocol.go +++ b/swarm/network/protocol.go @@ -309,7 +309,7 @@ func (self *bzz) handleStatus() (err error) { Version: uint64(Version), ID: "honey", Addr: self.selfAddr(), - NetworkId: uint64(self.NetworkId), + NetworkId: self.NetworkId, Swap: &bzzswap.SwapProfile{ Profile: self.swapParams.Profile, PayProfile: self.swapParams.PayProfile, diff --git a/swarm/network/syncer.go b/swarm/network/syncer.go index a3814e423..6d729fcb9 100644 --- a/swarm/network/syncer.go +++ b/swarm/network/syncer.go @@ -131,9 +131,8 @@ type SyncParams struct { } // constructor with default values -func NewSyncParams(bzzdir string) *SyncParams { +func NewDefaultSyncParams() *SyncParams { return &SyncParams{ - RequestDbPath: filepath.Join(bzzdir, "requests"), RequestDbBatchSize: requestDbBatchSize, KeyBufferSize: keyBufferSize, SyncBufferSize: syncBufferSize, @@ -144,6 +143,12 @@ func NewSyncParams(bzzdir string) *SyncParams { } } +//this can only finally be set after all config options (file, cmd line, env vars) +//have been evaluated +func (self *SyncParams) Init(path string) { + self.RequestDbPath = filepath.Join(path, "requests") +} + // syncer is the agent that manages content distribution/storage replication/chunk storeRequest forwarding type syncer struct { *SyncParams // sync parameters @@ -378,7 +383,7 @@ func (self *syncer) syncHistory(state *syncState) chan interface{} { } select { // blocking until history channel is read from - case history <- storage.Key(key): + case history <- key: n++ log.Trace(fmt.Sprintf("syncer[%v]: history: %v (%v keys)", self.key.Log(), key.Log(), n)) state.Latest = key |