From Fedora Project Wiki

No edit summary
mNo edit summary
Line 33: Line 33:
Roughly it goes like this:
Roughly it goes like this:
1. Approximately 4 weeks for implementation of the peer-to-peer network protocol.
1. Approximately 4 weeks for implementation of the peer-to-peer network protocol.
2. Implementation and integration of a generic message-passing framework for Unix domain sockets.
2. Implementation and integration of a generic message-passing framework for Unix domain sockets.
3. Partial design and implementation of a peer-tracker protocol.
3. Partial design and implementation of a peer-tracker protocol.


Points 2 and 3 would span over the time remaining and would finish depending on how the progress for the first step goes.  
Points 2 and 3 would span over the time remaining and would finish depending on how the progress for the first step goes.  

Revision as of 16:37, 18 May 2010

For information how to complete this form, refer to Summer Coding 2010 step-by-step for students.

About you

Summer Coding 2010 student application - Vrinda Vasishth

About your project

1. What is the name of your project? CHASM: Cryptographic Hash Algorithm Secured Mirroring solution.

2. Does your project come from an idea on the Summer Coding 2010 ideas page? If so, provide a link for reference, as well as a link to any discussions with mentors about your proposal. https://fedoraproject.org/wiki/Summer_Coding_2010_ideas_-_CHASM

3. Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using? CHASM stands for the Cryptographic-Hash-Algorithm-Secured Mirroring solution, and provides the improvements to the current alternatives (Rsync).

Following is the outline of the project :

  1. Implementation of the peer-to-peer network protocol. It takes into account the state of the upstream's pool and cache to allow clients to maximize throughput.
  2. Implementation of a generic message-passing framework for Unix domain sockets (including the ability to send file descriptors easily).
  3. Partial design and implementation of a peer-tracker protocol.


We will be working in C++ to develop the network code.


4. What is the timeline for development of your project? Yet to be discussed in detail.

Roughly it goes like this: 1. Approximately 4 weeks for implementation of the peer-to-peer network protocol.

2. Implementation and integration of a generic message-passing framework for Unix domain sockets.

3. Partial design and implementation of a peer-tracker protocol.


Points 2 and 3 would span over the time remaining and would finish depending on how the progress for the first step goes.


5. Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant. I am good at programming in C++ and Python, and have solved various algorithmic problems in SPOJ and a SPOJ derivative-CodeChef. I do not have prior experience in working on system programming oriented project, but I am interested in system programming and know the basics of the same.

I have coded Image processing modules for the Satellite workbench, in Space Applications Centre, Indian Space Research Organisation, Ahmedabad, India.

My Linked-in profile http://in.linkedin.com/in/vrindavasishth


You and the community

1. If your project is successfully completed, what will its impact be on the Fedora community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Fedora community, at least one of whom should be a Fedora Summer Coding mentor. Provide email contact information for non-Summer Coding mentors.

i) Vrinda Vasishth (my answer): This project will overcome some of the existing drawbacks in rsync for mirroring. For a fedora user it would mean, faster propagation of updates. For the Fedora community, it would help in checking reliability of the mirrors, and speeding up the process to find differences made in the files.

ii) Ben Boeckel(mentor's response): on completion, this project will make the mirrors more reliable. Also, it will decrease the time it takes updates to be pushed out to mirrors; currently it takes 15 minutes to do a simple check if there is anything to do. Mirrors will also be able to verify that they have correct information.Users/developers will see a faster propagation of updates across servers.


2. What will you do if you get stuck on your project and your mentor isn't around?

I would utilise all possible resources I have to solve the issue. The mentor is a guide to the project and defines the workflow, and the student has to find out a way to do it. It is not possible for the mentor to be around always to solve the issues coming in the way, hence I would try not to be entirely dependant on the mentor to circumvent the issues, and crack them myself.


3. In addition to the required blogging minimum of twice per week, how do you propose to keep the community informed of your progress and any problems or questions you might have over the course of the project?

Twitter updates could work like a progress bar, and the blog updates would be detailed reports about the progress. Apart from this, using the mailing list for major milestones achieved will help in keeping the community informed about the progress.



Miscellaneous

We want to make sure that you are prepared before the project starts

1. Can you set up an appropriate development environment?

Yes, I can. Rather this work will be done prior to the coding period, without much trouble.

2. Have you met your proposed mentor and members of the associated community?

On IRC.

3. What is your t-shirt size?

Medium

4. Describe a great learning experience you had as a child.

My first experience of using a computer when I was 12 years old. It was introduced in the school curriculum that year and I still remember the awe of the screen glowing and talking to me. The first computer program I made was of drawing different shapes and figures using the turtle in LOGO. I learnt the fundamental of breaking down problems in into smaller units and then coding them. The learning curve has been going up and up since then, and I have happy memories of the good start I had.


Comments

Use the Talk:Summer Coding 2010 student proposal application to actually make comment, which then appear here on the main proposal page. You can use this link to make a new comment].

plus talk