Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P2P State Channel M2 Evaluation #1229

Merged
merged 2 commits into from
Dec 2, 2024
Merged
Changes from 1 commit
Commits
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
43 changes: 43 additions & 0 deletions evaluations/p2pStateChannels_2_piewol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Evaluation

- **Status:** in progress
- **Application Document:** [P2P State Channels](https://github.com/w3f/Grants-Program/blob/master/applications/P2PStateChannels.md)
- **Milestone:** 2
- **Previously successfully merged evaluation:** All by PieWol

| Number | Deliverable | Accepted | Link | Evaluation Notes |
| ------ | ----------- | :------: | ---- |----------------- |
| **0a.** | License | <ul><li>[x] </li></ul> | [License file](https://github.com/peer3to/state-channels-plus/blob/master/LICENSE) | MIT, compiling the solidity contracts emits warnings about unspecified licenses. |
| **0b.** | Documentation | <ul><li>[ ] </li></ul> |https://github.com/peer3to/state-channels-plus/blob/master/docs/mfsDocs.md | inline documentation is sparse |
| **0c.** | Testing and Testing Guide | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/tree/master/test | ok |
| **0d.** | Docker | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/blob/master/Dockerfile | ok |
| **0e.** | Article | <ul><li>[] </li></ul> | https://docs.google.com/document/d/1qS7ZY8noaObP5Ze1mVOaydDBih4jHYym4qacAx46Fas | See notes |
| **1** | Networking and Discovery | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/blob/master/src/transport/HolepunchTransport.ts https://github.com/peer3to/state-channels-plus/blob/master/src/Holepunch.ts | ok |
| **2** | P2P State Machine | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/blob/master/src/evm/EvmStateMachine.ts| ok |
| **3** | Agreement Tracking | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/blob/master/src/AgreementManager.ts | ok |
| **4** | Dispute Handling | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/blob/master/src/DisputeHandler.ts | ok |
| **5** | Virtual Clock | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/blob/master/src/Clock.ts | ok |
| **6** | Observing & Notifying | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/blob/master/src/P2pEventHooks.ts | ok |



## General Notes
There are some TODOs left in the code. Some seem to be minor. There is one in the StateManager.ts in the playTransaction() function.

```//TODO! calculate who didn't sign so we stop signing their blocks```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This TODO here is an optimization to not cooperate with peers who didn't cooperate with you - if you still cooperate with them you just potentially save them some fees :D since they might have all signatures and won't have to post calldata on-chain as part of the liveness logic
Actually the code for this is already there - https://github.com/peer3to/state-channels-plus/blob/43189afeeb92da7d0586b2441e4540af059ec67f/src/StateManager.ts#L510 - I just had other critical things to implement

Many TODOs are there as guidance for future functionality

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it, glad to hear that.


This one sounds pretty important to punish inactive signers.

There are also some typos in the code. It would improve the quality of the code a lot if you could fix them.

E.g. ``rechallengeRecusrisve()``in ``DisputeHandler.ts``

There is also a lot of functions without proper inline documentation. Please add more inline documentation.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've fixed that typo and added more inline docs

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks


## Article
Usually this delivery shall be a fully fledged article which covers various aspects of your project. Something to be posted on plattforms like medium. This is too short to be an article in my opinion. The current text is closer to a twitter post than an article.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure I'll update the text and let you know :D

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice one

## Tests
the tests are still passing since there have been no changes since the delivery of m1