Toon posts:

[soft ontw]Compleet nieuw p2p ontwerpen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik emule nu al een tijdje en op zich vind ik het een mooi programma. Goede downloads, veel te krijgen en bijna geen fakes. Maar het heeft ook een paar nadelen. FF een klein lijstje:
- MD4 hashes. Deze zijn, zover ik begrepen heb, redelijk gevoelig voor fraude. Dummy files, zouden goede geldige hashes kunnen krijgen waardoor je download uiteindelijk corrupt raakt.
- Geen encryptie. Verbindingen zijn niet ge-encrypt (zover ik weet). Deze zijn dus vrij makkelijk af te 'luisteren'.
- Geen anonimiteit. Vrij belangrijk tegenwoordig, met al die big-brother praktijken.
- Niet populaire files zijn wel te vinden, maar soms toch niet te downloaden als er maar een x aantal users de file hebben.

Er zullen ongetwijfeld nog meer nadelen aan emule kleven, maar dit vond ik ff de belangrijkste. Wat is nu mijn idee? Waarom niet met een paar andere mensen die in VC++ kunnen programmeren een super mooie en goede client (en server) schrijven? De bedoeling van deze draad is, om te kijken of er mensen interesse zouden hebben in zo'n client en of er mensen zijn, die mee willen helpen met het proggen van de client én server....

Welke ideeen heb ik zoal voor de client:
- File cache. De server houdt statestieken bij van files (hash code) over een periode van bv twee dagen. Aan de hand van die statestieken kan hij bepalen of een file zeldzaam is of niet. Samen met andere servers geven ze een x aantal clients de opdracht om op de achtergrond stukken van die file (of zelfs helemaal) te downloaden (client krijgt dan prioriteit bij de aanbieder om te downloaden). De gebruiker van de client weet hier niks van (hij weet alleen dat er en cache transfer bezig is en met hoeveel KB/sec). De clients worden dus gebruikt als een soort cache. Als een file voor bv 1 a 2 maanden niet opgevraagd is, dan wordt de file verwijderd uit de cache van de client. De cache is overigens ge-encrypt en de gebruiker van de client kan niet zien welke files er in de cache staan. Hij heeft hier geen controle over. Dit brengt mij meteen bij hetvolgende punt, namelijk....

- Privacy en anonimiteit. Omdat de cache ge-encrypt is en omdat de gebruiker van de client niet weet wat er in de cache staat, kan deze nooit verantwoordelijk gehouden worden voor de inhoud. Omdat er ook geen verschil zichtbaar is tijdens het zoeken van files of deze in de cache staan of aangeboden worden, kan men nooit met zekerheid zeggen, dat de file expres geshared wordt of niet. Men heeft dus niks aan een ip-adres.

- Alle gegevens van en naar clients/servers, zijn ge-encrypt. Afluisteren is dus (theoretisch) onmogeljk.

- Een hash manier (bv MD5) die zo secure is, dat deze niet te faken is. Dummy files op het netwerk zetten heeft zo geen nut.

- User rating van files. Door files te raten, kan men zien hoe de kwaliteit van de file is. Bv is de file wat de titel zegt dat ie is? Is het beeld van een film van goede kwaliteit? Enz...

- Credits systeem zoals bij emule. Leechers hebben op deze manier veel minder kans van slagen.

- Intelligent source exchange. Als een client bv een file vraagt aan de server, zal deze clients kiezen die de file hebben, en die de server nog niet zovaak doorgegeven heeft aan een client die de file zocht (zo werkt de emule/edonkey sever ook zeg maar). Echter, als een client aan een andere client vraagt, of deze nog sources kent voor de gevraagde file, dan zal deze ook clients doorgeven, die bij hem in de qeue staan, maar nog niet gedownload hebben. Omdat deze clients de file uiteindelijk ook zullen krijgen (of stukken ervan), wordt de load beter verdeeld tussen clients. Ik heb nog niet heel erg goed nagedacht over source exchange, omdat ik dat pas wil doen, als het project doorgaat.

- Tijdens zoeken en downloaden van de files, zijn de aanbieders niet bekend (ip kan altijd via een omweg opgevraagd worden). Zoals boven eerder vermeld, is het ook niet belangrijk of iemand een ip weet of niet, omdat diegene die download nooit met zekerheid kan zeggen of de aanbieder de file echt aanbied, of omdat deze in uit de cache komt.

- Eventueel opensource. Ik heb nog niet zoveel ervaring met opensource, en omdat encryptie belangrijk is, wil ik niet dat dit naar buiten zou komen. Misschien dat iemand die mij wil helpen in het project daar meer van weet...

- Beschrijvingen en dergelijke aan de files meegeven. Net zoiets als kazaa. Dit is duidelijker voor degene die de file wil downloaden. Gegevens van bv bitrate, fps, compressie, enz worden voor veel files al door de client weergegeven.


Voor de server heb ik ook nog ideeen, maar ik begin zere vingers te krijgen, dus misschien een andere keer. Wat ik dus wil weten van jullie:
- Zijn jullie geinteresseerd in zo'n applicatie? (Ik weet dat er in principe zoiets al is, namelijk freenet)
- Ik kan dit zeker niet alleen. Wie wil mij actief meehelpen met het ontwerpen van protocol, client, server, etc?

Het is iig een leerzaam project en een flinke uitdaging! :)

Verwijderd

sorry hoor maar als het zo simpel was .......

  • Dark4ever
  • Registratie: September 2002
  • Laatst online: 25-08 18:17

Dark4ever

Huh?

wat je ook zou kunnen doen is een emule mod schrijven die met md5 enz kan werken... Als het goed werkt komt die mod vanzelf bij de main verzie van eMule... En dan heb je 1 al heel veel gebruikers die dat p2p progie gebruiken en 2 heel veel steun van anderen mensen...

btw mocht iemand dit topic willen delete... ditp2p progie wordt natuurlijk alleen gebruikt voor legale files O-) O-)

[ Voor 19% gewijzigd door Dark4ever op 29-01-2003 16:51 ]


  • Jorn
  • Registratie: Juni 2001
  • Laatst online: 08:14
Verwijderd schreef op 29 januari 2003 @ 16:05:
sorry hoor maar als het zo simpel was .......
Wat dan?

Het spijt me hoor, maar iemand komt met een idee en jij boort het meteen weer de grond in?


Voor de topicstarter:

Leuk idee, ik merk dat je er al over na gedacht heb.
Het zou je kunnen lukken, immers, kazaa e.d. zijn vast ook op zo'n manier bedacht.
Ik kan helaas niet helpen met programmeren, omdat ik de programmeertaal niet ken.

Iig cuc-6 _/-\o_ :Y) _/-\o_

* Erkens is een sukkel en ramt in mirc op f5 :+
* XTerm GROOOOOOTE kuis houden op hd's :)


  • Zoefff
  • Registratie: September 2001
  • Laatst online: 13:27

Zoefff

❤ 

Ik ben het helemaal met dark4ever eens. Volgens mij kan je veel beter beginnen met het maken van een eMule mod met deze functies erin, dan een compleet nieuw netwerk opzetten, wat heel veel tijd kost.

Voordeel is ook dat je meteen een gigantisch netwerk achter je hebt liggen, met veel gebruikers en gesharede files. En als je er nou in mocht slagen om bijvoorbeeld die encryptie erin te krijgen, of 1 van die andere dingen, dan denk ik dat de officiele eMule makers dat ook wel graag over willen nemen...

Overigens zijn er geruchten dat MD5 word ingebouwd in de nieuwere eMules, vanaf 27 oid...

Mocht je er echter wel mee aan de slag gaan, kan ik je niet helpen met proggen, maar ik wil zeker wel met je meedenken hoor :)

[ Voor 10% gewijzigd door Zoefff op 29-01-2003 16:57 ]


FotoblogWerkaandemuur.nlMoestuincursus.nlTwitter


Verwijderd

Topicstarter
Thanx. Maar er zijn een paar dingen in emule die me niet bevallen, zoals geen anonimiteit. MD5 kan je zomaar niet in emule stoppen omdat het netwerk/protocol dat niet ondersteunt. Willen ze md5 erin bakken, dan ben je niet meer compatible. Maar ik ken het emule/edonkey protocol niet zo goed, dus misschien heb ik het wel mis. Iig is MD5 niet het enige wat ik erin wil hebben. Het zijn nog veel meer ideeen en verbeteringen (in mijn ogen).

Ik denk dat er een nieuw netwerk ontwikkeld kan worden wat aan de huidige 'eisen' voldoet. In theorie is het niet zo heel moeilijk lijkt me. Ik heb er iig genoeg ideeen over. Ik weet echter wel, dat het niet zomaar gedaan is hoor!

Freenet is een mooi voorbeeld, maar je hoort er vrij weinig over. Als ik een client en server kan schrijven (met behulp van anderen), en het is goed, dan krijg je vanzelf wel aanhangers... Kijk maar naar emule...

Nogmaals, emule modden is a) niet leuk; b) zoveel mensen doen het al; c) het netwerk ondersteunt bepaalde dingen niet (zoals load balancing, betere source sharing. Niet de schuld van de emule programmeurs, maar ze willen natuurlijk compatible blijven met edonkey.

Mocht dit programma er komen, dan is dat meer bedoeld voor de ervaring (netwerk communicatie, protocol ontwikkeling, fout afhandeling, security, enz) en voor de lol. Sharen van bestanden is bijzaak :) En dan zijn de bestanden die geshared worden natuurlijk wel allemaal legaal.

[ Voor 10% gewijzigd door Verwijderd op 29-01-2003 17:27 ]


  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 29-08 20:52

leuk_he

1. Controleer de kabel!

********* waarschuwing kick van oud topic! ***************

Dit is precies iets wat ik nu al een tijdje van plan was. Ik heb een tijdje in freenet meegedraait, maar daar lagen de prioriteiten anders (en het is in java geschreven en daar heb ik geen ervaring mee)

Trineous, Ben je hier nog mee bezig geweest?

Mijn basis ideeen:
-Taal:(portable) C (evt beetje c++)
-Lenen van andere source, dan pas e.v.t. zelf maken. (wat impliceert dat het open source moet zijn als je legaal wil gaan)
-dichter bij freenet (anoniem) dan kazaa (gebruikersgemak, maar niet anoniem)

Lees je ook een in in freenet:
freenetproject.org (sha1 hashes & ssk keys)
egtp (network protocol protocol van mnet)
chord
bittorrent (protocol bevat aantal simpele anti leech network optimlaisaties)

Ik zoek nog een goed stukje over emule, maar het lijkt meer een ftp protocol met een rating systeem.

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


  • KoalaBear84
  • Registratie: Augustus 2002
  • Laatst online: 01-09 10:27
Hier heb ik ook al meerdere malen over zitten denken. Ik programmeer zelf in Delphi (Pascal). Delphi lijkt zeer veel op C++.

Maar ik heb het dan meer op een klein netwerk gericht, dus meer zoiets voor een LAN schrijven. Hier kun je sommige thuis goed mee expirimenteren. Zoiets zou leuk zou leuk zijn voor een netwerk van 100 PC's. Het is wel zo dat je dan best veel bestanden moet delen om aan zoekresultaten te komen, dus echt goed zal het niet werken. Hetgene wat mij aan een 'netwerk'/'protocol' voor internet het moeilijkst lijkt is omdat er zoveel clients kunnen zijn en hoe je ertussen clients en clients,clients en servers en servers en servers communiceert (het protocol). Oftewel, ik zou wel iets willen weten over hoe Kazaa nu ECHT werkt, dus hoe je aan een supernode (server lijkt mij) komt. Het zou mooi zijn als je helemaal nix lokaal hebt, dus dat je een soort broadcast doet naar een bepaalde ip range en dat je dan antwoord kan krijgen van servers en clients. Dan kunnen clients je weer doorverwijzen naar een server.

Ik weet weinig van protocollen af, dus ik weet ook niet hoe het met broadcasten werkt... Zo'n project is natuurlijk het mooiste omdat je zoals Trineous zegt er veel van kunt leren. Dan ben je echt met communicatie tussen PC's bezig. Dat heeft me altijd al wel geinterreseerd.

<Homepage>


  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 29-08 20:52

leuk_he

1. Controleer de kabel!

[quote]AniMatrix schreef op 26 September 2003 @ 16:52:

Maar ik heb het dan meer op een klein netwerk gericht, dus meer zoiets voor een LAN schrijven. Hier kun je sommige thuis goed mee expirimenteren. Zoiets zou leuk zou leuk zijn voor een netwerk van 100 PC's.
[quote]

100? op een lan, daar hoef je niets nieuws voor te verzinnen. Tenzij je encrypty & anonimiteti belangrijk vindt.

Daar kun je protocollen uit de vorige eeuw mee doen. Gnucluous (open source, ben te lui om de spelfou eruit te halen.) zou b.v. daar aardig voor voldoen.
(je mist dan encryty & anonimiteit, maar zoeken werkt dan wel aardig. )

Daar kun je ook vinden hoe dit werkt. (c++ me COM wrappers)
Ik weet weinig van protocollen af, dus ik weet ook niet hoe het met broadcasten werkt... Zo'n project is natuurlijk het mooiste omdat je zoals Trineous zegt er veel van kunt leren. Dan ben je echt met communicatie tussen PC's bezig. Dat heeft me altijd al wel geinterreseerd.
Ik zit meer op de lijn van trinious. Ik zou hem erover ge-emailt hebben, maar helaas staat zijn e-mail niet in zijn profiel.

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.

Pagina: 1