标题: [技术贴] 关于CPID (Cross-Project ID)
Youth
管理员
Rank: 7Rank: 7Rank: 7Rank: 7
勿忘国耻~振兴中华



UID 1613
精华 31
积分 10025
帖子 9692
阅读权限 102
注册 2004-6-30
来自 上海
发表于 2006-2-10 18:25  资料  主页 短消息  加为好友 
[技术贴] 关于CPID (Cross-Project ID)

转自http://boinc-doc.net/boinc-wiki/index.php?title=CPID

Cross-Project Identification of Participants

用户的跨项目标识符(CPID)

Accounts on different BOINC Powered Projects are considered equivalent if they have the same email address (the BOINC Developers had considered other concepts, but they all lead to extreme complexity).

不同BOINC项目的帐号,只要使用了相同的email地址,就认为是由同一个用户创建的。

BOINC Powered Projects can't export email addresses in statistics files; email addresses are private. It's also not desirable to export hashed email addresses, because spammers could enumerate feasible email addresses and compare them with the hashed addresses.

但BOINC项目网站不能在对外提供的统计信息文件中提供email地址,因为email地址是不方便公开的。就算对其进行某些处理,也不能防止别有用心的人想方设法找出原始的email地址。

To solve these problems the BOINC System uses the following system:

为了解决这个问题,BOINC采用了如下的方法:

Each Account is assigned a "Cross-Project Identifier" (CPID) when it's created; it's a long random string.

每个帐号在被创建时被随机分配一个字符串,即跨项目标识符,简称CPID。

When a Scheduling Server replies to an Scheduler Request Message (Scheduler RPC)), it includes the Account's Cross-Project Identifier and hashed e-Mail address.

当调度服务器回应客户端的请求时,将在回应中包含这个帐号的CPID和处理过的email地址。

The BOINC Manager stores the Cross-Project Identifier and hashed e-Mail address of each Account to which it's attached in the Client State File.

客户端将服务器发送过来的CPID及处理过的email地址保存在配置文件中。

When the BOINC Daemon sends an Scheduler Request Message to a Scheduling Server, it includes the greatest (in terms of numeric comparison) Cross-Project Identifier from among Projects with the same hashed e-Mail address.

当客户端向服务器发送请求时,它将对比本机中其它项目的处理过的email地址,如果和当前项目相同,它将从中找出最大的CPID,并在请求中包含这个CPID。

Note: This method was depreciated at approximately Version 4.3x of the BOINC Client Software. Later Versions pass the oldest Cross-Project Identifier. This prevents the Cross-Project Identifier from changing when adding Projects.

注意:前段所述仅适用于4.3x之前版本的客户端。之后的版本在请求中包含的是本机最早注册的项目的CPID,这样就不会发生加入新项目后导致CPID被改变的情况了。

程序中的相关代码如下:

   // Of the projects with same email hash as this one,
    // send the oldest cross-project ID.
    // Use project URL as tie-breaker.
    //

    PROJECT* winner = p;
    for (i=0; i<projects.size(); i++ ) {
        PROJECT* project = projects[i];
        if (project == p) continue;
        if (strcmp(project->email_hash, p->email_hash)) continue;
        if (project->user_create_time < winner->user_create_time) {
            winner = project;
        } else if (project->user_create_time == winner->user_create_time) {
            if (strcmp(project->master_url, winner->master_url) < 0) {
                winner = project;
            }
        }
    }
    fprintf(f,
        "<cross_project_id>%s</cross_project_id>\n",
        winner->cross_project_id
    );

If the Scheduling Server receives a Cross-Project Identifier different from the one in its BOINC Database, it updates the BOINC Database with the new Cross-Project Identifier.

如果调度服务器收到的请求中包含的CPID与服务器上保存的不同,它就将新的CPID保存下来。

User elements in the XML download files include a hash of (email address, Cross-Project Identifier); this "export" Cross-Project Identifier serves as a unique identifier of all accounts with that email address. The last step, hashing with the e-Mail address, prevents people from impersonating other people.

This system provides cross-project identification based on e-Mail address, without publicizing any information from which actual e-Mail addresses could be derived.

系统就这样提供了一种基于email地址的跨项目标识方案,同时也并没有对外泄漏任何关于email地址的信息。

Note:
There is a Cross-Project Identifier that is internal to Projects, and a second one that is used to tie together XML data exports. When you are using the Cross-Project Identifier for statistic sites you will have to use the second value which you will have to obtain using information such as your name (or alias if you use one).

[ Last edited by Youth on 2006-2-11 at 10:15 ]





欢迎所有 BOINC 用户加入 Team China 团队 | my Stats | Panda loves BOINC ~~
顶部
[广告] SETI@home Astropulse 优化计算程序,推荐使用!
Youth
管理员
Rank: 7Rank: 7Rank: 7Rank: 7
勿忘国耻~振兴中华



UID 1613
精华 31
积分 10025
帖子 9692
阅读权限 102
注册 2004-6-30
来自 上海
发表于 2006-2-10 18:26  资料  主页 短消息  加为好友 
我今天尝试boincstats的签名,搜索用户名Yin Gang,居然出来两个条目(不久以前还没这种情况),一个条目关联了大多数项目,一个条目只关联了Rosetta、Predictor、WCG这几个项目,研究了半天没明白怎么回事后,突然发现这正好就是我在本本上所参加的项目,而且WCG还是前两天才加入的。结合上面的文章,发现问题就出在WCG:一方面我刚注册这个项目的BOINC版本,所以新生成了一个CPID;但另一方面,WCG的传统版本我大概04年底就注册了,而其BOINC版本所用的帐号创建时间正是这个时间,于是就导致本本上的客户端将这个新CPID作为最早的CPID发送给了各个项目的服务器,于是就有了前面的问题。

解决方法:在客户端加入SETI项目,这个可是最早注册的帐号了,然后耐心等待一切回复正常:)


图片说明:

前面两张图就是由于CPID不同导致的,因为我在多台机器上同时算einstein,导致einstein的cpid变来变去,就两张图里面都有了。

最后一张图里总分的排名是黄颜色,也是由这个问题引起的。

[ Last edited by Youth on 2006-2-11 at 10:16 ]



查看积分策略说明
附件
2006-2-10 18:26
user_117603.png (3.04 KB)
 
2006-2-10 18:26
user_524669.png (2.6 KB)
 
2006-2-10 18:26
comb-855.jpg (17.63 KB)
 




欢迎所有 BOINC 用户加入 Team China 团队 | my Stats | Panda loves BOINC ~~
顶部
Youth
管理员
Rank: 7Rank: 7Rank: 7Rank: 7
勿忘国耻~振兴中华



UID 1613
精华 31
积分 10025
帖子 9692
阅读权限 102
注册 2004-6-30
来自 上海
发表于 2006-2-11 10:16  资料  主页 短消息  加为好友 
今天早上起来看已经正常了



查看积分策略说明
附件
2006-2-11 10:16
user_117603.png (3.51 KB)
 




欢迎所有 BOINC 用户加入 Team China 团队 | my Stats | Panda loves BOINC ~~
顶部
tiger
论坛知事
Rank: 3Rank: 3Rank: 3



UID 6255
精华 1
积分 477
帖子 351
阅读权限 10
注册 2005-7-5
来自 北京
发表于 2006-2-13 11:50  资料  短消息  加为好友 
有个相关信息 http://www.equn.com/forum/viewth ... mp;page=1#pid182668
或,
直接登录BOINC主站,登录“Your account 您的帐号”,
在页面中部 “Account statistics”有Cross-project statistics,
及:Cross-project ID: b6cb880dd24cedca425cb2cb0e44****





[img]http://setistat.kanuuli.de/userstats.php?l=5&id=148[/img][img]http://setistat.kanuuli.de/userstats.php?l=3&id=148&tc=0,0,255&bc=255,0,0&lng=en&gf=jpg[/img] [img]http://www.boincstats.com/signature/user_470736.gif[/img]
顶部
Youth
管理员
Rank: 7Rank: 7Rank: 7Rank: 7
勿忘国耻~振兴中华



UID 1613
精华 31
积分 10025
帖子 9692
阅读权限 102
注册 2004-6-30
来自 上海
发表于 2006-2-13 12:00  资料  主页 短消息  加为好友 
嗯,CPID就是在官方网站的个人页面查看到的一长串字母数字





欢迎所有 BOINC 用户加入 Team China 团队 | my Stats | Panda loves BOINC ~~
顶部
cnchina
资深顾问
Rank: 5Rank: 5
半年长假~


UID 12674
精华 3
积分 1215
帖子 1046
阅读权限 10
注册 2007-3-10
来自 EY☆汕頭
发表于 2007-9-22 20:06  资料  短消息  加为好友 
只要在某一臺活著的機子上加入你所有的項目(不想算的就禁止下載)就好了
CPID亂了,就點一下“重試所有連接”,過一會,各網的就統一了。





顶部
 



当前时区 GMT+8, 现在时间是 2008-12-2 09:12
沪ICP备05042587号

本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - 中国分布式计算总站 - Archiver - WAP