分数链最终制品 Demo

作者: Nino_Lau | 来源:发表于2018-12-25 01:43 被阅读48次
logo

经过一个月的鏖战,我人生的第一个 Dapp 做好了,取名叫 ScoreChain 。关于这个Dapp,您可以从 Wiki 获得这个项目的工程进度(虽然只有一个月的进度)。项目的使用请看 README,这个文档主要是用来帮助大家熟悉这个Dapp的功能(当然功能很简单啦,大家都会用,主要是用来进行成果展示的啦;我很乐意分享我一个月的成果)。

怎样运行项目,怎样打开小狐狸 MetaMask 🦊 啥的我就不说了,READMEWiki 都写的很清楚了。故事就从 localhost:3000 之后讲起。。。

历史遗留问题解决

上次我的部署报告说了我目前还存在的问题:

  • 一个账户只能给一个人打分;
  • 打分功能还未实现。

我对这两个问题下了大功夫,翻烂了前端后端接口,终于找到了修正方案。

用户多次打分

app.js 这个文件中的这段代码,规定了一个账户只能打分一次:

then(function(hasSelected) {
      if(hasSelected) {
          // 只能打分一次
        $('form').hide();
      }
      loader.hide();
      content.show();
    })

但是一旦把hide改成了show,无限打分丧失了区中心化的透明度——TA可以无限打分。所以现在的方案是:一个账户干脆就打分一次,每个TA分配 studentNum 个打分机会。如果TA和某个学生有不共戴天之仇,也可以对一个学生使劲打低分,但是当TA人数较多,或者每个TA被授予的打分机会比较少的时候(每个人算力相似),这个问题就不会很严重。

打分功能实现

打分的实现和选学生一样,也是用框框选。之前一直想用具体数字,因为实现难度大(还是因为我菜鸡🐔)干脆就跟选学生一起用选择框算了。你们一定会质疑打分的准确性,但是事实上,这个问题根本不存在,为什么呢?

  1. 同样,当TA人数较多,或者每个TA被授予的打分机会比较少的时候(每个人算力相似),这个问题就不会很严重。
  2. 而且,哪个TA会真的在乎打了74还是71呢?如果说100确实和95不太一样, 我们当然也可以按着正态分布化档。

ScoreChain 开辟公平打分新时代

Score Chain 的诞生是历史上开天辟地的大事,标志着学生的分数不再是模糊的了。TA们不敢再胡打分了,因为每一次打分都会被追溯,每一次希望的扼杀都会被裁决!

现在我们来看看这个”惊天地,泣鬼神“的伟岸著作吧!

npm run dev

调好小狐狸 🦊,现在显示界面如下。我们来看看选择框里出现了什么吧!

image

Select Student 框框里可以选择被打分的学生,而Select Score可以选择打分的分数。现在大家还没有被打分,所以被打分次数和总分都是0,平均分NAN。我们尝试去打几个分(这里为了打分方便,我暂时设置为可以重复打分):

image

Alex 这个可怜孩子只被打了一次分,我们给他打了一个分。打完分之后,他分数变了:


image

注:我们假设这个系统在用户足够多的情况下,每个学生打分次数相似,来保证公平性。如白皮书所示,这个系统将会作为一个数据库,存放学生的作业链接。因此,这里的审计员——打分者,不仅仅可以是TA还可以是更加广泛的角色——比如学生自身。在这种方案下,一些问题(学生结盟)将会变得更多,系统的安全性将会受到挑战。

以太坊实在是太慢了,趁现在网速好多打了几个分。

image

相关文章

  • 分数链最终制品 Demo

    经过一个月的鏖战,我人生的第一个 Dapp 做好了,取名叫 ScoreChain 。关于这个Dapp,您可以从 W...

  • rustyline 介绍

    最近在写区块链的教学demo的时候,需要编写一个cli客户端和用户进行交互,最终找到了rustyline,按照官方...

  • 区块链Demo

    刚接触区块链,百度了下,发现有人用Golang编写了一些区块链的链构建过程和工作量证明的代码,发现工作量证明的代码...

  • 食物链之外

    这个世界除了食物链,还有智识链,幸福链。 食物链,比如财富、权力、美貌、分数等,等级分明,竞争残酷,弱肉强食。大部...

  • Hyperledger Fabric 1.4 产品链搭建教程 (

    本文为Hyperledger Fabric 1.4 产品链搭建教程系列第二篇,介绍MyFabric Demo链的启...

  • Hyperledger Fabric 1.4 产品链搭建教程 (

    本文为Hyperledger Fabric 1.4 产品链搭建教程系列第一篇,介绍MyFabric Demo链的各...

  • tabelVew嵌套CollectionView

    重要的写在前面,写了一个tabelVew嵌套CollectionView的使用方法,相关的demo请点击demo链...

  • 供应链Demo

    本文为以服装行业为产品创作供应链管理中WMS模块,含部分原型、流程图、状态图等。

  • RxSwift5.0核心逻辑理解

    Demo代码实现内容 序列继承链 (class)Observable遵循了(protocol)Observable...

  • Flutter | 自定义 TabBar Indicator:底

    最终效果: 完整 demo 地址:https://github.com/CaiWanFeng/flutter-ui...

网友评论

    本文标题:分数链最终制品 Demo

    本文链接:https://www.haomeiwen.com/subject/jecxlqtx.html