aboutsummaryrefslogtreecommitdiffstats
path: root/eth/downloader/peer.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-04-18 07:10:32 +0800
committerobscuren <geffobscura@gmail.com>2015-04-18 07:10:32 +0800
commit2339ee9910c10fa498f4a4ebc25f6a780ccf78e9 (patch)
tree11b9a6a3244990d3a3ea888d85eaeafad4aeebef /eth/downloader/peer.go
parent73eb8e8c20b784e3a43f826e51a81326619d98ef (diff)
parent2c2ddcbf8885bf509741105ec57967fe78c744fe (diff)
downloadgo-tangerine-2339ee9910c10fa498f4a4ebc25f6a780ccf78e9.tar
go-tangerine-2339ee9910c10fa498f4a4ebc25f6a780ccf78e9.tar.gz
go-tangerine-2339ee9910c10fa498f4a4ebc25f6a780ccf78e9.tar.bz2
go-tangerine-2339ee9910c10fa498f4a4ebc25f6a780ccf78e9.tar.lz
go-tangerine-2339ee9910c10fa498f4a4ebc25f6a780ccf78e9.tar.xz
go-tangerine-2339ee9910c10fa498f4a4ebc25f6a780ccf78e9.tar.zst
go-tangerine-2339ee9910c10fa498f4a4ebc25f6a780ccf78e9.zip
Merge branch 'develop' into downloader-proto
Conflicts: eth/downloader/downloader.go
Diffstat (limited to 'eth/downloader/peer.go')
-rw-r--r--eth/downloader/peer.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/eth/downloader/peer.go b/eth/downloader/peer.go
index f66e5afd8..4cd306a05 100644
--- a/eth/downloader/peer.go
+++ b/eth/downloader/peer.go
@@ -95,3 +95,23 @@ func (p *peer) fetch(chunk *chunk) error {
return nil
}
+
+// promote increases the peer's reputation
+func (p *peer) promote() {
+ p.mu.Lock()
+ defer p.mu.Unlock()
+
+ p.rep++
+}
+
+// demote decreases the peer's reputation or leaves it at 0
+func (p *peer) demote() {
+ p.mu.Lock()
+ defer p.mu.Unlock()
+
+ if p.rep > 1 {
+ p.rep -= 2
+ } else {
+ p.rep = 0
+ }
+}