Nissenice發帖(New Study About The Emule Credit System)轉了一篇論文,本人將其粗略翻譯了一下。才疏學淺必多有不當,歡迎多提意見。
文件名為:[淺析P2P文件共享系統中用於維繫系統公平的信用系統][Yunshao Li, Don Gruenbacher][2010][Ejack譯].pdf
百毒文庫鏈接:http://wenku.baidu.com/view/cc89727da26925c52cc5bf32.html
納米盤鏈接:http://d.namipan.com/d/b409da2e880258fccb8cd8b3fec6d84d0e1c5189bffc0500
另外附上本人的讀後感。
胡言亂語一句先:
某日張飛飢腸轆轆倒伏路旁。關羽路過,給了張飛一張餅。
張飛衷心感謝關羽,關羽卻說:「要不是當初劉備玄德給我一張餅,我早就餓死了,哪裡還能給你餅吃!」
張飛動情地說:「日後不論雲長還是玄德遇到難處,燕人必當傾力以助!」
儘管這篇論文中的數學模型進行了太多不切實際的假設,導致其結論很難站得住腳,但是文章作者所提出的對信用系統的改進方案卻很有意義。
概而言之作者的思路就是「散播信用積分」(請注意,這個概念跟SA的信用傳播通道沒有什麼關係),簡單來說就是允許有效的上傳者聲明一個或多個他所知道的良好上傳者。整體思路大體如下僅供參考:
- a) A向B上傳了180kB的文件塊;
- b) 在驗證此180kB數據塊都是有效數據之後,B將認為A是有效的上傳者,記錄其信用積分。之後B向A發送一個CREDITSPD_REQ報文請求其提供優良的共享者(一個或多個Userhash);
- c) A可能會有以下的反應:
c-1) 如果A的客戶端支持「信用傳播」新功能,並且記錄了一些對其上傳貢獻較大的用戶,那麼就會通過CREDITSPD_RES報文給B發送用戶C的userhash(或是多個用戶userhash的列表);
c-2) 如果A的客戶端支持「信用傳播」新功能,但是他本身主要上傳、很少下載,那麼可以無需應答。B等待超時後不再索取;
c-3) 如果A的客戶端較舊,那麼因為無法解析CREDITSPD_REQ就不會應答。B等待超時後不再索取;
- d) B如果得到了A的應答知道了C,就記錄C的積分(即記錄一些從C的下載,例如180kB/4)。
通過這種方式我們就能夠實現信用積分的傳播,讓良好上傳者能夠在更多用戶間擁有口碑,促進大家養成規規矩矩上傳的習慣。同時並未更改原有的信用工作方式:仍然是下載方保留上傳者的積分,不必擔心被盜、被黑或者是唱雙簧偽造積分之類的問題。
當然,這種方式下理論上系統內的信用積分並不平衡,上傳的數據量總是會造成更多的積分。不過考慮到現實系統中信用積分實際上一直是在流失(用戶hash變更,或者上傳給了吸血騾、肉包子打狗),這樣的改造我認為沒什麼害處。
請注意,我們的目的仍然是重「信用」而不是重「積分」,只是想略微改善當前信用僅局限於兩人之間的情況,同時避免複雜而又脆弱的「上傳貢獻分」制度。
31條評論隱藏
那樣社區吸血會不會更猖獗?中國人很善於「買賣信用」。
只有有效的上傳者提供的share helper才被採信。
吸血騾不上傳的話,任他巧舌如簧也不搭理便是了。
也不用在信用和積分上咬文嚼字了,客戶間量化完了不還是數字指標?
官方的策略就看客戶和客戶之間的,而不看對群體貢獻,在用戶數目如此多的現在,作用其實微乎其微,到哪裡都要排隊。把信用在集體里傳播,有違初衷,但大部分人覺得這麼做更公平。
Kad雖然能傳播很多文件信息,但要是用來傳播用戶信用,效率是首要問題:一是客戶多(絕大多數人已知客戶比共享文件多),二是單個信用的傳播要比傳播單個文件的信息量大很多。其他問題像如何防作弊?信用信息保存期限怎麼定?
peer to peer演化成group to group?
信用傳播?還是點對點的信用可信。關羽可能是劉備的托。
從理論上講,這樣有利於節省優秀上傳者的時間、提高整個電騾網路的效率,當他給某個用戶提供了良好的服務(即上傳),整個電騾網路就知道了他的信用很好,會優先鏈接上傳或者下載給他,而不需要重新的去驗證他的信用!
但,這樣做就必須有可靠地方法確保這個優秀電騾用戶的信息不會被偽造。更要確保這個優秀電騾用戶的信息不是兩個吸血客戶端合謀偽造的!
這就好比美國這樣的信用社會必須保證有機制對付信用卡造假這樣的信用犯罪,否則就會導致整個社會的崩潰!
我已經說過了,只有某個用戶A剛剛對你完成1個塊有效上傳,才採信其推薦的優秀電騾用戶B,並且傳播的積分是1/4個塊。
假設吸血騾企圖瞞騙你,那麼必須對你上傳有效數據……即便全世界的吸血騾聯合起來進行社區吸血,其必須上傳數據量N才能得到N*1.25的積分……這個上傳下載比已經遠非吸血騾所預期的效益了
@Ejack 其實估計大家都沒仔細讀文 😀
@Ejack
該用戶在我的客戶端並未受到完整的免檢、優先的待遇而只是增加了其對A的上傳量的4分之1的積分在我的客戶端記錄里?這樣他等於在我這裡增加了額外的積分,從而獲得我的優先上傳?
@rcrp_bsgbc
是「在我的客戶端記錄里增加了1/4個塊(180kB/4)的積分」,前提是A剛剛傳給我有效的1個塊。
@Ejack
我就是這個意思,原諒我可憐的國語表達能力!
您有沒有覺得,現在的電騾積分制度過多了?有沒有必要統一一下?
現在的電騾積分有沒有參考各個客戶端的總下載上傳比和本次運行的下載上傳比,如果沒有,您認為是否有必要增加?以額外獎勵那些上傳大於下載的騾子?
@jjj
呔,爾少挑撥離間、煽風點火!
@rcrp_bsgbc
積分制度多是因為各個設計者的側重點不同、使用前提也不同。例如Lovelace本身就具有較強的懲罰性,例如Eastshare的完全線性……環境不同,選擇的mod不同,選擇的積分系統也有可能不同。山無定型,水無定勢。
電騾的信用積分都需要參考總下載上傳比,不過好像都沒有參考本次運行的下載上傳比。官方的信用系統已然是這麼設計,參見以下譯文:
https://www.emulefans.com/credit-system/
你想多了 🙂
沒看明白啊 😈
我今天發現個好驢,叫zz-r,鼎鼎大名的modder morph4u寫的,最新v3.5基於emule0.50a,向大家強力推薦!:
http://www.sb-innovation.de/attachments/f44/2795d1273834106-emule-0-50a-zz-r-3-5-emule.v0.50a.zz-r.v3.5.rar
當一個MoD增加功能時,eMule官方有兩個要求,必須做到:
1.不能因增加任何功能而加重伺服器的負載
2.不能因增加任何功能而加重其他客戶端的負載
如果增加這項功能,會增加客戶端A的負載,當然如果官方認為此合理,吸收也就沒什麼了,就像文件請求一樣多幾個request
國外的這些軟體維護者原則性很強,基本不改設計軟體的初衷:MLdonkey始終不支持客戶端之間的加密,不是技術上無法實現,因為它實現了和伺服器端的加密,為的是防止版權伺服器的惡意檢索;但是客戶端的加密會增加包開銷,所以死活不加
@a
這是個吸血驢,請勿推廣
@Ejack
你也想多了!呵呵!! 🙂
某日張飛飢腸轆轆倒伏路旁。關羽路過,給了張飛一張餅。
張飛衷心感謝關羽,關羽卻說:「要不是當初劉備玄德給我一張餅,我早就餓死了,哪裡還能給你餅吃!」
張飛動情地說:「日後不論雲長還是玄德遇到難處,燕人必當傾力以助!」
沒什麼好說的,這個故事就包含有電騾分享精神。
學習學習!!! 💡
eMule信用基本無意義,我在一個人那裡下了100G電影,而他卻對我的100G動畫毫不感興趣;我上傳了100G動畫,接受我上傳的10000個人卻沒有我想要的電影。按照eMule信用,我的情況糟透了,下了越多,排隊時間越長。還不如每次啟動隨機新建個userhash,0積分比-10000積分的強多了。在PT網站的積分比eMule有效多了
P2P說白了還是要注重文件的傳播傳播度。
@Jurio 我覺得這很有意義,為啥別人欠你的人情要另一個陌生人還呢?其實很有社會研究意義,比如這篇文章。
@Jurio 信用是一個重要的指標,一定程度上規矩了用戶。但它不是全部,這種理想化的東西缺陷也不少。
像隔壁討論中有個@ChenbuEr,不管他是不是迅雷的托,且假定他不是吧,他一味吹捧官方eMule的積分制,「推崇官方電騾的所有做法」,反對反吸血給積分制度的補充,也無視了其他各種積分演算法,那也不正常
這些各種積分、反吸血目標都是ed2k網路的公平平等,都很重要,過於重視或輕視貶低單獨某一個功能都不正常
@a
你推薦的這個超級邪惡
迅雷都吸不過他
現在用 7.2EES 好好 不想改變什麼
@Jurio 你提出的這個問題很是個問題,所以參考一個客戶端的總上傳量是很有必要的!
@fiveblue 無用,太好造假了。
罵的人總是容易更多,作者不必在意~
頂
@a
有 zz-r 3.5版的源代碼沒有?