今年的年度 OSC 中国开源项目评选新策划了「最火热中国开源项目社区」奖项,并且增加了全新的“极客”玩法。在此背景下,开发者纷纷施展才华,积极为开源项目贡献“热度值”。
某位开发者在接到操作说明之后,用 .Net 7(C#)在 30 分钟内搞定了 Win 64 和 Linux x64 版本的脚本,并且还有余力进行代码优化。
极具“开源”精神的他更是直接将贡献热度的工具开源了出来:https://gitee.com/maikebing/oschina2022
“热度值”是评选「最火热中国开源项目社区」的核心指标,在评选期间,每个开源项目的主页都会添加 “热度” 挂件,如下图所示:
我们提供了两种方式让用户为开源项目贡献热度。
一、常规方式
用户登录帐号后,点击右侧的蓝色按钮即可为想要支持的开源项目贡献 “热度”。
每点击一次「贡献热度」按钮,随机给该项目的热度值加 1 或 10。该按钮支持连击。请注意:进度圈加载过程中,不要关闭页面,否则会导致丢失 “热度值”。
二、极客玩法
相比常规方式的手动 “点击按钮”,极客玩法让程序员能够用自己擅长的方式来贡献 “热度”,效率更高,更具可玩性。
上文提到,用户每次点击按钮所贡献的热度并不是固定的,因为我们采用 “工作量证明 (Proof-of-Work,PoW)” 设计了计算热度的规则,所以用户完成计算的工作量越大,能贡献的热度更高。
工作量证明是一种用来证明某项计算是困难,并且不能被快速完成的方法。它的基本思想是,为了完成一项特定的工作,必须要进行大量的计算。
工作量证明通常由两类主要参与方协作完成:提出者和验证者。提出者负责提交一个解决问题的证明,而验证者负责验证提交的证明是否正确。如果验证者发现证明是正确的,他们就会批准这个证明,并将其广播到网络中。
因此除了通过常规的点击按钮贡献热度,在 PoW 机制下,我们设计了另一种能贡献热度的玩法:
- 用户自行编写算法函数在本地完成 “计算”;
- 将 “计算” 的证明提交给 OSCHINA;
- 如果该 “计算” 的证明通过验证,则为对应开源项目添加相应的热度值。
具体来说就是:用户将 开源项目 ID(浏览器控制台输入 page.objId 获取)、用户 ID(浏览器控制台输入 page.g_user_id 获取)和 token (自定义随机字符串,不能重复,长度上限 255) 作为变量,然后自行编写算法函数,并根据上述变量生成哈希值,如果生成的哈希值满足以下条件,并通过服务器端的验证,即可成功为开源项目贡献热度。
具体操作查看:https://www.oschina.net/question/2918182_2327640
欢迎大家前往开源项目主页为喜爱的开源项目贡献热度!
同时,我们创建了讨论帖让大家分享各自编写的算法函数,欢迎一起来玩!
>> 算法讨论区
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>> 《2022 年度 OSC 中国开源项目评选》
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>