Skip to content

feat(dot/network/shim): implement NetworkPeers.ReportPeer on translation shim type#4848

Open
Aliexe-code wants to merge 3 commits intoChainSafe:developmentfrom
Aliexe-code:feat/report-peer-4799
Open

feat(dot/network/shim): implement NetworkPeers.ReportPeer on translation shim type#4848
Aliexe-code wants to merge 3 commits intoChainSafe:developmentfrom
Aliexe-code:feat/report-peer-4799

Conversation

@Aliexe-code
Copy link
Copy Markdown

Changes

  • Add handler field to TranslationShim struct to hold reference to *peerset.Handler
  • Update NewTranslationShim and NewSyncShim constructors to accept *peerset.Handler parameter
  • Implement ReportPeer method with type translations:
    • Translate network.ReputationChange to peerset.ReputationChange
    • Translate peerid.PeerID to peer.ID via embedded field access
    • Call peerset.Handler.ReportPeer to adjust peer reputation
    • Panic if handler is nil (defensive check)
  • Add comprehensive unit tests for ReportPeer (nil handler and success cases)

Tests

go test ./dot/network/shim/... -v
Coverage: 100% for ReportPeer function (exceeds 70% requirement)

Issues
#4799

…ncing interfaces

Add foundation implementation of translation shim that implements both
gossip.Network and gossip.Syncing interfaces. This shim serves as a bridge
between the new interface definitions and the existing Gossamer network
implementation.

The shim is placed in a separate package (dot/network/shim) to avoid circular
dependencies between internal/client/network and dot/network packages.

Both TranslationShim and syncShim types are provided:
- TranslationShim implements gossip.Network with 19 methods
- syncShim implements gossip.Syncing[common.Hash, uint] with 4 methods
- All methods currently panic as this is a foundational implementation
- Future PRs will replace panic implementations with actual translations

This implementation addresses issue ChainSafe#4798 and provides the foundation for
subsequent network layer refactoring work.

Acceptance criteria met:
- Implements Network interface
- Implements Syncing interface
- All methods panic as required for foundation implementation
- 100% test coverage with 26 test cases
- Passes all linting checks
…ainSafe#4799)

Implement ReportPeer method on TranslationShim that:
- Translates network.ReputationChange to peerset.ReputationChange
- Translates peerid.PeerID to peer.ID via embedded field access
- Calls peerset.Handler.ReportPeer to adjust peer reputation
- Panics if handler is nil

Changes:
- Add handler field to TranslationShim struct
- Update constructors to accept *peerset.Handler parameter
- Implement ReportPeer with type translations
- Add comprehensive unit tests (100% coverage for ReportPeer)

Acceptance criteria:
- [x] ReportPeer adjusts peer reputation of given peer
- [x] 100% coverage for ReportPeer function

Related: ChainSafe#4798
@haikoschol
Copy link
Copy Markdown
Contributor

Thanks for submitting this @Aliexe-code. Unfortunately work on Gossamer is paused indefinitely. Unlikely that we will get around to reviewing this anytime soon, sorry. 😞

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants