什么是 Hackathon?
Hackathon 即黑客马拉松,是一个流传于极客中的词汇。它是一种活动:很多人,在一段特定的时间内,相聚在一起,以他们想要的方式,去做他们想做的事情——整个编程的过程几乎没有任何限制或者方向。
一直都希望能体验一把 Hackathon 的刺激,可惜总不能如愿;不过机会总是会有的,8月初,从区块链技术社群“一块链习”中得到了消息,BitRun 将在月底于杭州举办一次48小时区块链开发大赛,不由得在心中蠢蠢欲动了。
一、组队
Hackathon 的灵魂是合作,48小时的短短时间,靠个人是无法取得成功的。虽说可以在现场组队,总还是没有知根知底的人来的信任。好在“一块链习”的伙伴都是经受过“白帽黑客大赛”的考验的,彼此之间都比较熟悉,于是4人迅速的集结了起来,再加上其中一位推荐了前端和UI,6人小分队正式成立。
MetaWorld
队名 MetaWorld,成员来自上海、湖南、杭州三地:XJ、XY、LQ、LS、LYC、DXC,大家组成了一个构成合理、分工明确、经验丰富的区块链开发团队。
其中:
- 智能合约研发、安全优化、测试:LQ、XY、LS
- 前端页面研发:DXC
- 美术和UI设计:LYC
- Nervos环境、合约部署、团队组织:XJ
而纵观全局,一共15支队伍,既有来自浙大、清华、北大等高校的学生,也有来自全国各地的开发者,高手云集。
二、比赛
比赛时间是2018.8.31-9.2,大家一路舟马劳顿,终于在比赛正式开始前集结了队伍。
第一天下午,比赛正式开始了:
- LQ提出了产品方案:一个类似昆特牌(gwent)的卡牌游戏
- 小组成员针对卡牌游戏方案进行了激烈的讨论
- 讨论后放弃该产品思路,原因是:玩家手牌上链之后,两个玩家通过合约可以互相看到对方手牌,这样的话会导致游戏可玩性降低
- LS提出了新的思路:设计一款类似于支付宝春节集五福类似的游戏,由此小组围绕该提议进行新的游戏方案设计和讨论
- 最终讨论的结果就是开发一款召唤神龙的区块链游戏:
游戏玩家在系统中购买龙珠,每集齐7颗不同龙珠,可召唤神龙一次,并获得平分奖池中大部分奖金的机会
游戏分轮次进行,除奖金底池以外,每一轮独立于其他轮。在当前轮次中任何方式取的龙珠都不会延续到下一轮,同样,之前的任何一轮取得龙珠也不会延续到当前轮。
每一轮游戏中,每位游戏玩家允许召唤神龙多次,但每轮游戏中神龙可最多被召唤7次,当神龙被召唤7次后,该轮游戏结束,分配奖池奖金,开启新一轮游戏。
游戏玩家可在每轮游戏过程中,出售自己手中的龙珠,价值由卖家自行定义。买家可在龙珠广告区中购买自己需要的龙珠,加速集齐7颗龙珠。
确定了题目,时间也已经来到了晚上。晚饭后经过短暂的休息,大家又充满激情的分别开始了实现方案的设计。
智能合约设计和实现
这部分的主导者是LQ,我和LS则是参与者。简单的谈论之后,我们确定了合约主要数据结构以及需要实现的合约主要功能函数:
- 龙珠购买函数
- 龙珠挂单函数
- 龙珠召唤函数
- 奖金分配函数
而我也进行了合约安全性方面的设计。
中奖概率设计
随后,在XJ的主导下,我、LS和DXC对中奖概率进行了充分的讨论,定下了各星龙珠的抽中概率为:
7星龙珠 1% 、6星龙珠 2%、5星龙珠 4%、4星龙珠 10%、3星龙珠 20%、2星龙珠 30%、 1星龙珠 33%
而且我确认了可以通过伪随机函数进行实现。
当所有的方案确定之后,也已经到了晚上10点多了。就感觉而言,似乎后端的智能合约部分并不太难,大量的工作量还是在前端部分,而且都压在了一个人身上。于是,第一天的晚上负责前端的DXC决定加会班了。
事实上,在第一天晚上做出如此选择的人还有不少,大家都充满激情。
加班.jpg
开发
在事实的开发过程中,总是会出现各种预料之外的情况;而解决各种各样的问题,总是让人感觉不到时间的流逝。
当前端、后端基本开发完毕,准备开始联调时,已经是第二天的晚上11点了;而第三天上午比赛就即将结束,看起来通宵已经是无法避免的了。抬眼望去,所有人都不约而同的做出了同样的选择。
联调的过程非常的艰难,除了自身代码的原因之外,项目方技术栈因为文档的不充分也给大家带来了一定的困扰。到了凌晨3、4点的时候还出现了一个小插曲,我们的前端DXC因为过于劳累,甚至大脑都宕机了:一个小时的时间愣是想不起来自己电脑的密码:)
值得一提的是美丽的UI小姐姐,一直工作到凌晨5点,天都开始泛白了才去开始休息,估计她男朋友都要心疼死了。
三、遗憾
非常遗憾,比赛截止时,还是有几个功能没有能完成调试,于是只能以不完整的形式来进行作品演示了。不过好的作品还是能得到大家的赞同的,在队长XJ演示完毕后,大家都报以了热烈的掌声。
大家的作品都很优秀,最终的结果出来后很可惜,我们未能有所斩获。但实际上我们心中还是有着小小不服的:
因为第三名北大和清华的联合队伍实际上对项目方的技术栈的利用的完成度没有我们的程度高,只是他们在展示中表现出了强大的原创美术功底,再加上充满动感的多媒体演示,完美的吸引了大家。
总结
这次的比赛举办方非常的给力,48小时让我们体验了一场完美的黑客马拉松,使所有人都能够专注于开发;而这还是他们第一次举办赛事,尤其是他们都还仅仅是浙大的学生。
DSC_2390.JPG
大家的激情同样感染了所有在场的项目方技术人员,作为开发者出身的他们,自发的和大家一起熬夜,攻克开发过程中的一个又一个难关,解决一个又一个bug。
还有一起组队的小伙伴,大家都非常的厉害和优秀,通过这一次的通力协作,相信在以后会碰撞出更多的创意和火花。
网友评论