From 9fd1cc318b68caa42e4e2957fd7c1d441408bd6e Mon Sep 17 00:00:00 2001 From: Ljubisa Gacevic Date: Fri, 26 Sep 2025 13:42:07 +0200 Subject: [PATCH 1/3] fix(api): use replicas getter for pinning erasure-coded chunks --- pkg/api/chequebook.go | 1 - pkg/api/pin.go | 4 +++- pkg/api/pss.go | 3 +-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/api/chequebook.go b/pkg/api/chequebook.go index 33cd75d9767..219f9479089 100644 --- a/pkg/api/chequebook.go +++ b/pkg/api/chequebook.go @@ -22,7 +22,6 @@ import ( const ( errChequebookBalance = "cannot get chequebook balance" - errChequebookNoAmount = "did not specify amount" errChequebookNoWithdraw = "cannot withdraw" errChequebookNoDeposit = "cannot deposit" errChequebookInsufficientFunds = "insufficient funds" diff --git a/pkg/api/pin.go b/pkg/api/pin.go index 696f5185150..582710b5819 100644 --- a/pkg/api/pin.go +++ b/pkg/api/pin.go @@ -10,8 +10,10 @@ import ( "net/http" "sync" + "github.com/ethersphere/bee/v2/pkg/encryption/store" "github.com/ethersphere/bee/v2/pkg/file/redundancy" "github.com/ethersphere/bee/v2/pkg/jsonhttp" + "github.com/ethersphere/bee/v2/pkg/replicas" "github.com/ethersphere/bee/v2/pkg/storage" "github.com/ethersphere/bee/v2/pkg/storer" "github.com/ethersphere/bee/v2/pkg/swarm" @@ -52,7 +54,7 @@ func (s *Service) pinRootHash(w http.ResponseWriter, r *http.Request) { return } - getter := s.storer.Download(true) + getter := store.New(replicas.NewGetter(s.storer.Download(true), redundancy.DefaultLevel)) traverser := traversal.New(getter, s.storer.Cache(), redundancy.DefaultLevel) sem := semaphore.NewWeighted(100) diff --git a/pkg/api/pss.go b/pkg/api/pss.go index ef1c3a84d47..473fce3d8d0 100644 --- a/pkg/api/pss.go +++ b/pkg/api/pss.go @@ -24,8 +24,7 @@ import ( ) const ( - writeDeadline = 4 * time.Second // write deadline. should be smaller than the shutdown timeout on api close - targetMaxLength = 3 // max target length in bytes, in order to prevent grieving by excess computation + writeDeadline = 4 * time.Second // write deadline. should be smaller than the shutdown timeout on api close ) func (s *Service) pssPostHandler(w http.ResponseWriter, r *http.Request) { From 92ad754b9e3b7f54217e0f7a253eb6a6514dcc5c Mon Sep 17 00:00:00 2001 From: Ljubisa Gacevic Date: Mon, 29 Sep 2025 13:32:51 +0200 Subject: [PATCH 2/3] fix(api): use replicas.NewGetter for pinning --- pkg/api/pin.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkg/api/pin.go b/pkg/api/pin.go index 582710b5819..ec277cfeae2 100644 --- a/pkg/api/pin.go +++ b/pkg/api/pin.go @@ -10,7 +10,6 @@ import ( "net/http" "sync" - "github.com/ethersphere/bee/v2/pkg/encryption/store" "github.com/ethersphere/bee/v2/pkg/file/redundancy" "github.com/ethersphere/bee/v2/pkg/jsonhttp" "github.com/ethersphere/bee/v2/pkg/replicas" @@ -54,7 +53,7 @@ func (s *Service) pinRootHash(w http.ResponseWriter, r *http.Request) { return } - getter := store.New(replicas.NewGetter(s.storer.Download(true), redundancy.DefaultLevel)) + getter := replicas.NewGetter(s.storer.Download(true), redundancy.DefaultLevel) traverser := traversal.New(getter, s.storer.Cache(), redundancy.DefaultLevel) sem := semaphore.NewWeighted(100) @@ -109,8 +108,7 @@ func (s *Service) pinRootHash(w http.ResponseWriter, r *http.Request) { return } - err = putter.Done(paths.Reference) - if err != nil { + if err = putter.Done(paths.Reference); err != nil { logger.Debug("pin collection failed on done", "error", err) logger.Error(nil, "pin collection failed") jsonhttp.InternalServerError(w, "pin collection failed") From 116928a5fdd97c5478d081e9137e3a2d12ed97f2 Mon Sep 17 00:00:00 2001 From: Ljubisa Gacevic Date: Sat, 22 Nov 2025 14:20:46 +0100 Subject: [PATCH 3/3] fix(api): revert changes not related to PR --- pkg/api/chequebook.go | 1 + pkg/api/pin.go | 3 ++- pkg/api/pss.go | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/api/chequebook.go b/pkg/api/chequebook.go index 219f9479089..33cd75d9767 100644 --- a/pkg/api/chequebook.go +++ b/pkg/api/chequebook.go @@ -22,6 +22,7 @@ import ( const ( errChequebookBalance = "cannot get chequebook balance" + errChequebookNoAmount = "did not specify amount" errChequebookNoWithdraw = "cannot withdraw" errChequebookNoDeposit = "cannot deposit" errChequebookInsufficientFunds = "insufficient funds" diff --git a/pkg/api/pin.go b/pkg/api/pin.go index ec277cfeae2..f6c2a52fb1b 100644 --- a/pkg/api/pin.go +++ b/pkg/api/pin.go @@ -108,7 +108,8 @@ func (s *Service) pinRootHash(w http.ResponseWriter, r *http.Request) { return } - if err = putter.Done(paths.Reference); err != nil { + err = putter.Done(paths.Reference) + if err != nil { logger.Debug("pin collection failed on done", "error", err) logger.Error(nil, "pin collection failed") jsonhttp.InternalServerError(w, "pin collection failed") diff --git a/pkg/api/pss.go b/pkg/api/pss.go index 473fce3d8d0..ef1c3a84d47 100644 --- a/pkg/api/pss.go +++ b/pkg/api/pss.go @@ -24,7 +24,8 @@ import ( ) const ( - writeDeadline = 4 * time.Second // write deadline. should be smaller than the shutdown timeout on api close + writeDeadline = 4 * time.Second // write deadline. should be smaller than the shutdown timeout on api close + targetMaxLength = 3 // max target length in bytes, in order to prevent grieving by excess computation ) func (s *Service) pssPostHandler(w http.ResponseWriter, r *http.Request) {