-
Notifications
You must be signed in to change notification settings - Fork 39
GSOC
We want people who will succeed at this project and stay as part of our development community after the GSoS — the people who are both motivated and capable.
You’ll prove your ability by doing the work. The more work you put into an application, the better your chances of success. Be prepared to spend from two days up to a week on your application. Show your prior code. Study the literature. Read the code https://github.com/clostra/newnode . Prepare a plan. Ask us questions: Stanislav Shalunov [email protected], Greg Hazel [email protected], ask for invite to Slack. Write code. Can you write a prototype that implements some part of the functionality we are asking for? If not, you probably won't be able to do the project. If you can, and do so, you stand out from the crowd immediately. If you can, and don't, you've just harmed your chances. Present a detailed plan with a good schedule.
Having performed similar work in the past is a good predictor of your ability to perform such work in the future. Even better is work on the suggested project: if you can show that you're already doing the work that needs to be done, and you have done it successfully, you may already have convinced us you can do it.
Description: Distributed Hash Tables face threats from various attack types, such as Sybil, Eclipse, Routing and Storage, and more. Ways to combat these attacks is an area of active research and development in the field. We will investigate and implement some methods for detecting these attacks and shutting them down.
Skills: C, hashing, knowledge of tokens and two-factor authentication, principles of least privilege, etc.
Difficulty: Medium
Mentor: Greg Hazel,Stanislav Shalunov
Description: Given a vast network of nodes, there are a variety of ways to select peers to keep in the routing table, as well as a large number of routes to evaluate and update. Methods employed must optimize proximity of neighbor nodes, and resilience to network failure.
Skills: C, P2P networking, proximity optimization, network resilience
Difficulty: Medium
Mentor: Greg Hazel,Stanislav Shalunov
Description: Nodes receive requests for large files, and can request parts of those files from multiple peers. Deciding when to split up the request, the number of parts, and number of redundant requests will help optimize delivery.
Skills: C, P2P/D2D networking, mesh networking, CDNs, caching Web proxies, request redirectors
Difficulty: Medium to hard
Mentor: Greg Hazel,Stanislav Shalunov
Description: Prefetching routes and node neighbors are a powerful tool for increasing performance. Various techniques will be explored and implemented to warm up caches in advance of user need.
Skills: C, prefetching in a mesh network, far- and near-side throttling, stream prefetchers, global history buffers, indirect prefetching
Difficulty: Medium to hard
Mentor: Greg Hazel,Stanislav Shalunov
Description: Using transport protocol encryption identical to BitTorrent is one way to appear as a needle in a haystack. Another way is to use WebRTC as a transport, to fit into a different haystack.
Skills: C, JavaScript, TP encryption, WebRTC
Difficulty: Medium
Mentor: Greg Hazel,Stanislav Shalunov
Description: Pluggable transports are a generic mechanism that transform network traffic using sub-processes. Here we will develop the API to support various open source PTs.
Skills: C, Pluggable Transports, PT APIs
Difficulty: Medium
Mentor: Greg Hazel,Stanislav Shalunov