Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
58a5ac5
feat(pullsync): add chunk checksum for divergent SOC sync (SWIP-101)
martinconic Jul 17, 2026
d2bc639
fix(storer): harden chunk sum migration, repair and index maintenance…
martinconic Jul 24, 2026
11eef37
test(storer): add divergence sync test, fuzz targets and sum index in…
martinconic Jul 24, 2026
5b10033
Merge remote-tracking branch 'origin/master' into feat/pullsync-chunk…
sbackend123 Aug 10, 2026
1fcfef4
feat: chunks convergence (#5557)
sbackend123 Aug 13, 2026
396aa6b
fix(storer/reserve): enforce deterministic equal-timestamp stamp-hash…
martinconic Aug 14, 2026
6b5c623
fix(storer/reserve): evaluate divergent SOC tie-break on same-stamp i…
martinconic Aug 14, 2026
5da7779
test(storer/reserve): clone test chunks in order convergence harness
martinconic Aug 14, 2026
f2d7856
fix(storer/reserve): drop stamp-hash slot tie-break and share helpers
sbackend123 Sep 6, 2026
b334a93
fix: documentation
sbackend123 Sep 7, 2026
a005e6e
fix(storer): keep reserve indexes consistent on losing SOC puts and s…
martinconic Sep 7, 2026
b962640
Merge remote-tracking branch 'origin/master' into feat/pullsync-chunk…
martinconic Sep 7, 2026
e3c211c
fix(storer/reserve): evaluate cross-stamp divergence on same-slot re-…
martinconic Sep 8, 2026
b5070a5
fix(storer/migration): tolerate unreadable chunks and report progress…
martinconic Sep 8, 2026
80561c6
fix(pullsync): skip malformed offer chunks and unify benign put error…
martinconic Sep 8, 2026
39e873d
fix(storer/migration): fix repair zero-hash stamp recovery and guard …
martinconic Sep 8, 2026
619272e
docs(storer/reserve): update stale comments to reflect evaluateSOCDiv…
martinconic Sep 8, 2026
76d6098
docs: add explanatory comments across reserve, pullsync, and migratio…
martinconic Sep 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions .github/workflows/beekeeper.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ env:
SETUP_CONTRACT_IMAGE: "ethersphere/bee-localchain"
SETUP_CONTRACT_IMAGE_TAG: "0.9.4"
BEELOCAL_BRANCH: "main"
BEEKEEPER_BRANCH: "master"
BEEKEEPER_BRANCH: "feat/pullsync-chuns-convergence"
BEEKEEPER_METRICS_ENABLED: false
REACHABILITY_OVERRIDE_PUBLIC: true
BATCHFACTOR_OVERRIDE_PUBLIC: 2
Expand Down Expand Up @@ -152,12 +152,16 @@ jobs:
- name: Test gsoc
id: gsoc
run: timeout ${TIMEOUT} beekeeper check --cluster-name local-dns --checks=ci-gsoc
- name: Test socmatrix
id: socmatrix
# Check allows up to 60m; wall clock is typically ~20–30m (16 scenarios + sync-wait).
run: timeout 60m beekeeper check --cluster-name local-dns --checks=ci-socmatrix
- name: Test pushsync (chunks)
id: pushsync-chunks-1
run: timeout ${TIMEOUT} beekeeper check --cluster-name local-dns --checks=ci-pushsync-chunks
run: timeout ${TIMEOUT} bash -c 'until beekeeper check --cluster-name local-dns --checks=ci-pushsync-chunks; do echo "waiting for pushsync-chunks..."; sleep .3; done'
- name: Test pushsync (light mode chunks)
id: pushsync-chunks-2
run: timeout ${TIMEOUT} beekeeper check --cluster-name local-dns --checks=ci-pushsync-light-chunks
run: timeout ${TIMEOUT} bash -c 'until beekeeper check --cluster-name local-dns --checks=ci-pushsync-light-chunks; do echo "waiting for pushsync-light-chunks..."; sleep .3; done'
- name: Test retrieval
id: retrieval
run: timeout ${TIMEOUT} beekeeper check --cluster-name local-dns --checks=ci-retrieval
Expand Down Expand Up @@ -199,6 +203,7 @@ jobs:
if ${{ steps.pss.outcome=='failure' }}; then FAILED=pss; fi
if ${{ steps.soc.outcome=='failure' }}; then FAILED=soc; fi
if ${{ steps.gsoc.outcome=='failure' }}; then FAILED=gsoc; fi
if ${{ steps.socmatrix.outcome=='failure' }}; then FAILED=socmatrix; fi
if ${{ steps.pushsync-chunks-1.outcome=='failure' }}; then FAILED=pushsync-chunks-1; fi
if ${{ steps.pushsync-chunks-2.outcome=='failure' }}; then FAILED=pushsync-chunks-2; fi
if ${{ steps.retrieval.outcome=='failure' }}; then FAILED=retrieval; fi
Expand Down
7 changes: 7 additions & 0 deletions pkg/pullsync/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ type metrics struct {
MissingChunks prometheus.Counter // number of reserve get errs
ReceivedZeroAddress prometheus.Counter // number of delivered chunks with invalid address
ReceivedInvalidChunk prometheus.Counter // number of delivered chunks with invalid address
DivergentRejected prometheus.Counter // number of delivered chunks that lost the divergence tie-break
Delivered prometheus.Counter // number of chunk deliveries
SentOffered prometheus.Counter // number of chunks offered
SentWanted prometheus.Counter // number of chunks wanted
Expand Down Expand Up @@ -57,6 +58,12 @@ func newMetrics() metrics {
Name: "received_invalid_chunks",
Help: "Total invalid chunks delivered.",
}),
DivergentRejected: prometheus.NewCounter(prometheus.CounterOpts{
Namespace: m.Namespace,
Subsystem: subsystem,
Name: "divergent_rejected",
Help: "Total delivered chunks discarded for losing the divergence tie-break.",
}),
Delivered: prometheus.NewCounter(prometheus.CounterOpts{
Namespace: m.Namespace,
Subsystem: subsystem,
Expand Down
120 changes: 33 additions & 87 deletions pkg/pullsync/pb/pullsync.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions pkg/pullsync/pb/pullsync.proto
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@ message Get {

message Chunk {
bytes Address = 1;
bytes BatchID = 2;
bytes StampHash = 3;
bytes Sum = 2;
}

message Offer {
Expand Down
Loading
Loading