Skip to content

Commit

Permalink
Merge pull request #71 from renproject/feat/updater
Browse files Browse the repository at this point in the history
Reduce connection time for new darknode
  • Loading branch information
tok-kkk committed Jun 4, 2020
2 parents 4c7be1f + d04cf05 commit d1e9f2e
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 6 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## 0.1.10
- Improve P2P logic to reduce connection times for new Darknodes

## 0.1.9

- Update to Darknode v0.2.14
Expand Down
10 changes: 5 additions & 5 deletions updater/updater.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,13 @@ func (updater *Updater) updateMultiAddress(ctx context.Context) {
updater.logger.Errorf("cannot marshal query peers params: %v", err)
return
}
addrs, err := updater.multiStore.RandomAddrs(3)
addrs, err := updater.multiStore.BootstrapAll()
if err != nil {
updater.logger.Errorf("cannot get query addresses: %v", err)
return
}

// Collect all peers connected to Bootstrap nodes.
phi.ParForAll(addrs, func(i int) {
multi := addrs[i]

Expand All @@ -96,7 +97,7 @@ func (updater *Updater) updateMultiAddress(ctx context.Context) {
return
}

// Parse the response and write any multi-addresses returned by the node to the store.
// Parse the response
raw, err := json.Marshal(response.Result)
if err != nil {
updater.logger.Errorf("[updater] error marshaling queryPeers result: %v", err)
Expand All @@ -107,7 +108,6 @@ func (updater *Updater) updateMultiAddress(ctx context.Context) {
updater.logger.Warnf("[updater] cannot unmarshal queryPeers result from %v: %v", multi.String(), err)
return
}

for _, peer := range resp.Peers {
multiAddr, err := addr.NewMultiAddressFromString(peer)
if err != nil {
Expand All @@ -122,12 +122,12 @@ func (updater *Updater) updateMultiAddress(ctx context.Context) {
})

// Print how many nodes we have connected to.
all, err := updater.multiStore.AddrsAll()
size, err := updater.multiStore.Size()
if err != nil {
updater.logger.Errorf("cannot get query addresses: %v", err)
return
}
updater.logger.Infof("connected to %v nodes", len(all))
updater.logger.Infof("connected to %v nodes", size)
}

func (updater Updater) isBootstrap(addr addr.MultiAddress) bool {
Expand Down
2 changes: 1 addition & 1 deletion updater/updater_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import (

func initUpdater(ctx context.Context, bootstrapAddrs addr.MultiAddresses, pollRate, timeout time.Duration) store.MultiAddrStore {
logger := logrus.New()
multiStore := store.New(kv.NewTable(kv.NewMemDB(kv.JSONCodec), "addresses"), nil)
multiStore := store.New(kv.NewTable(kv.NewMemDB(kv.JSONCodec), "addresses"), bootstrapAddrs)
for _, addr := range bootstrapAddrs {
multiStore.Insert(addr)
}
Expand Down

0 comments on commit d1e9f2e

Please sign in to comment.