diff --git a/exchange/bitswap/strategy/ledger.go b/exchange/bitswap/strategy/ledger.go index 684d383ef..649c1e73e 100644 --- a/exchange/bitswap/strategy/ledger.go +++ b/exchange/bitswap/strategy/ledger.go @@ -46,6 +46,15 @@ type ledger struct { sentToPeer map[u.Key]time.Time } +type debtRatio struct { + BytesSent uint64 + BytesRecv uint64 +} + +func (dr *debtRatio) Value() float64 { + return float64(dr.BytesSent) / float64(dr.BytesRecv+1) +} + func (l *ledger) SentBytes(n int) { l.exchangeCount++ l.lastExchange = time.Now() diff --git a/exchange/bitswap/strategy/math.go b/exchange/bitswap/strategy/math.go deleted file mode 100644 index c5339e5b3..000000000 --- a/exchange/bitswap/strategy/math.go +++ /dev/null @@ -1,34 +0,0 @@ -package strategy - -import ( - "math" - "math/rand" -) - -type strategyFunc func(*ledger) bool - -// TODO avoid using rand.Float64 method. it uses a singleton lock and may cause -// performance issues. Instead, instantiate a rand struct and use that to call -// Float64() -func standardStrategy(l *ledger) bool { - return rand.Float64() <= probabilitySend(l.Accounting.Value()) -} - -func yesManStrategy(l *ledger) bool { - return true -} - -func probabilitySend(ratio float64) float64 { - x := 1 + math.Exp(6-3*ratio) - y := 1 / x - return 1 - y -} - -type debtRatio struct { - BytesSent uint64 - BytesRecv uint64 -} - -func (dr *debtRatio) Value() float64 { - return float64(dr.BytesSent) / float64(dr.BytesRecv+1) -} diff --git a/exchange/bitswap/strategy/math_test.go b/exchange/bitswap/strategy/math_test.go deleted file mode 100644 index 58092bc09..000000000 --- a/exchange/bitswap/strategy/math_test.go +++ /dev/null @@ -1,17 +0,0 @@ -package strategy - -import ( - "testing" -) - -func TestProbabilitySendDecreasesAsRatioIncreases(t *testing.T) { - grateful := debtRatio{BytesSent: 0, BytesRecv: 10000} - pWhenGrateful := probabilitySend(grateful.Value()) - - abused := debtRatio{BytesSent: 10000, BytesRecv: 0} - pWhenAbused := probabilitySend(abused.Value()) - - if pWhenGrateful < pWhenAbused { - t.Fail() - } -}