记一次参加dorahacks黑客马拉松的经历

在6月2号,参加了dorahacks的黑客马拉松活动,即连续24小时编程比赛,打造一款产品。整体来说比赛一般,参与人数很少,并且小团体严重,后期感觉有互相换票的嫌疑,不过对于我自己来说,临时学习了区块链的知识,并与师弟一起,利用24小时,从零开发了一款基于区块链的APP(我负责后台,师弟负责前台)。


仓库地址

基于区块链的记忆app的服务端
基于区块链的心情漂流APP


针对blockchain做的改进

增加block属性

改进了block属性,以与记忆app(一款基于区块链的心情分享、漂流瓶社交应用)配合。

def new_block(self, proof: int, my_message: str, previous_hash: Optional[str]) -> Dict[str, Any]:
"""
生成新块

:参数proof: 工作量证明算法给出的证明
:参数previous_hash: 上一个块的哈希值
:return: 一个新块
"""

block = {
'index': len(self.chain) + 1,
'my_message': my_message,
'timestamp': time(),
'transactions': self.current_transactions,
'proof': proof,
'previous_hash': previous_hash or self.hash(self.chain[-1]),
}

加入web端,与flask交互

php实现 需要搭建apache+php环境。

修改了挖矿等方法的method

@app.route('/mine', methods=['GET','POST'])

post_test

用于模拟post,发送挖矿请求。


PHP界面的实现

效果如图:

区块链前端

基于folk的php代码,根据flask后台改造了区块链前端。

<div align="center">
<form class="form-inline" action="index.php?port=<?php echo $_REQUEST["port"]?>&mine=1" method="POST">
<div class="form-group">
<label >输入message:</label>
<input type="text" class="form-control" id="my_message" name="my_message">
</div>
<button type="submit" class="btn btn-primary">发送消息</button>
</form>
</div>

Author: Ykk
Link: https://ykksmile.top/posts/8806/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.