Käynnissä

Network programing in c++ (http filesystem using fuse)

There is a FUSE based filesystem called httpFS.

Search google for httpfs.

I need you to enhance its functionality.

There is no need for you to understand how filesystems work, the code enhancement is mainly about sockets and connections. So you need to know how to use sockets in c++.

There are currently two tasks to do:

Firstly, the httpfs filesystem re-connects for every 4k block of data. Your goal is to modify the code so it can reuse the previously created connection (keep alive) and there needs to be some read-ahead mechanism, so if the filesystem reads 4KB, the actual connection reads eg. 40KB and caches it somewhere in RAM so subsequent reads from consecutive position gets the data right away.

Secondly, the httpfs filesystem currently supports one argument - a remote URL for one file, for example URL to an ISO image. I need you to implement a mirrors support, as explained below:

When the FUSE filesystem is mounted, it looks like it contains the single file from the URL already downloaded - but the file is not downloaded (can have several gigabytes). Instead, when any application accesses the file, it download the actually read()'ed parts (4K blocks) in background, instead of downloading the whole file. This is already implemented and works.

I need you to enhance the code in a way that user will provide three URLs - the URL for iso image like before, but then also an URL which will contain list of alternate URLs of the same file, and third URL which will contain md5 checksums for all 4k blocks of the iso file. With this, the fuse filesystem will then be able to download random parts from random URLs, and check if any given 4k block has a valid checksum.

You must keep in mind that:

- the code must re-download the list of mirrors periodically from time to time, because it may change every few minutes, so the list of mirrors needs to be updated in memory

- the list of md5 checksums will never be updated, so once you download it, there is no need to re-download it again.

- any of the URLs in mirrors list may not be accessible after some time, so once it is not accessible, it must remember the URL in some sort of blacklist to never try it anymore

- it must keep open several connections at the same time. There must be a connections pool. It will probably never read from different connections at the same time, but it should keep them open and randomly pick from which one it's going to read now.

- it must handle properly connection timeouts, to easily detect that any given URL is no longer accessible. Also if a md5 checksum if not verified, it should consider that URL as broken, and blacklist it.

You should not mind parallel processing because, as far as I am aware of, FUSE filesystems do not support parallel filesystem access.

Taidot: C++ -ohjelmointi, Linux

Näytä lisää: programming tasks in c++, programming one for all remote, programing code, parallel programming in c, one for all remote programming, network after work, how to programing, how to do programing, goal programming example, gets in c programming, gets c programming, c# parallel programming, code programing, argument programming, windows fuse filesystem, fuse filesystem linux, fuse filesystem, fuse http filesystem, phanton algorithm sensor network works, network security projects implemented college, duplicate user name check using ajax php, programing code network access turbo, create network using nntool, slow http network linux

Tietoa työnantajasta:
( 67 arvostelua ) Sumperk, Czech Republic

Projektin tunnus: #10525845

Myönnetty käyttäjälle:

threadnix

Hi, I have experience in different libraries and APIs in C/C++, including networking technologies. I'm interest of your project.

220 $ USD 20 päivässä
(0 arvostelua)
0.0

11 freelancers are bidding on average $526 for this job

526 $ USD 7 päivässä
(44 arvostelua)
5.9
hbxfnzwpf

I am very proficient in c and c++. I have 16 years c++ developing experience now, and have worked for more than 6 years. My work is online game developing, and mainly focus on server side, using c++ under Linux environ Lisää

300 $ USD 7 päivässä
(57 arvostelua)
6.1
rajeshpal007

Hi, I can do this. We are a team of 5 Experts in IoT, Embedded , Telecom, File System, Security & Scalable Server Professional in Linux, Unix, Windows, OSx, MacOS With C, Cpp, Shell Script, Python, Perl, django Lisää

1052 $ USD 10 päivässä
(15 arvostelua)
4.6
Anurag7

Hi, I have 11 years of experience and understood your requirement. I work in distributed domain only. Your project is interesting and I like to work on it. Thanks, Anurag

500 $ USD 7 päivässä
(15 arvostelua)
4.4
beApart

Hi. We have already done 2. QT c++ app. that redirects soccets between serverside c++ app and PHP website to make OpenScad integration to the website. For analising user 3d models on a server side website to view Lisää

888 $ USD 10 päivässä
(1 arvostelu)
3.3
prashushinde9

Hello, I understood the initial scope of this project. Although i want to discuss further this job in order to prepare the final concept for this project. After Complete discussion over the call or in chat, i Lisää

515 $ USD 18 päivässä
(1 arvostelu)
3.3
finomen812

I can do this. I have some experience with torrent client that perform download like you described. Although, I've developed service that uses FUSE to create user-friendly access to files stored in distributed databa Lisää

444 $ USD 14 päivässä
(2 arvostelua)
3.2
sgatich

Hi. I'm a programmer from Russia with strong skills in C++. You can read full list of my skills on my profile page. My plan is following. If you don't mind, I want to use Qt library. First, it provides instruments for Lisää

500 $ USD 20 päivässä
(2 arvostelua)
2.8
300 $ USD 3 päivässä
(8 arvostelua)
2.7
Akimkin

Hi! I'm a system software engineer with the experience of working with plenty of Linux stuff on C including kernel modules. In order to complete this task I'll need to know the exact version of httpfs you're working Lisää

511 $ USD 28 päivässä
(0 arvostelua)
0.0
fahdhtolba

Hello , I have bachelor's degree in computer science and i have been programming in C/C++ for both linux and windows for more than 6 years now.I have written various network applications some of which are down to the Lisää

333 $ USD 10 päivässä
(0 arvostelua)
0.0
josephlua1119

Hello How are you?. I have full experiences in mobile game and app development. I have already seen your project very carefully. I think it is good idea and is very fit my skills. please link: Logo PORTFOLIO: h Lisää

888 $ USD 10 päivässä
(0 arvostelua)
0.0
SUPERDEVELOP

hello, i' ve just checked your project report, i' m able to help you with c++ coding, please come in contact with me if you need to test my ability and i wanna discuss more project details, i' ll look forward to y Lisää

555 $ USD 10 päivässä
(1 arvostelu)
0.0
bsimov

Hi, I am a software developer with 15 years of experience programming in C and C++ under UNIX and Linux. I will be happy to work on this project. Hope to hear from you soon, Boris

500 $ USD 14 päivässä
(0 arvostelua)
0.0