Kitcoin
kyontan.icon レクリエーションネタです
きっと仮想通貨なので、 きっとこいん です。
いわゆるブロックチェーンの基礎の基礎を試しに実装してみた
ソースコード
デプロイした
ユーザを作るためにはとりあえず下にアクセスする
仕様
ハッシュ関数: SHA256
マイニングでは、ハッシュ値の先頭に0が一定数以上並んだ際に認められる
0が並んだ数だけキットコインがもらえる
人の財布から人の財布に金を勝手に移動できる
手数料の 10% はマイニングした人がもらえる
自分の財布には移動できない
APIs
GET /
code:response.json
{
"blocks": [
{
"prev": "",
"nonce": "NCCMMANCCMCCMCCMCCMMAMMANCC",
"miner": "kyontan",
"msg": "Genesis block!",
"datetime": "2017-12-26T18:36:32+00:00",
"hash": "000e2ed804af26fd0c2a95984b9aa38aabafc9d963a6c1ea5acb18390b079ad3"
}
],
"users": []
}
GET /users/:id
ユーザのあるブロックにおけるウォレット残高が見られる
例
code:response.json
{
"name": "gurapomu",
"is_new_user": false,
"balance": {
"00a220ff4691e95dd75e0ace4806e4811787931c0f4475e4c7fc027d04d07108": 2,
"000e2ed804af26fd0c2a95984b9aa38aabafc9d963a6c1ea5acb18390b079ad3": 0
}
}
GET /blocks
あるブロックにおける各ユーザのウォレット残高が見られる
POST /blocks
マイニングをしたらここに POST する
code:curl でのブロックの作り方(sh)
POST パラメータ
nonce
SHA256(prev + nonce) が 00... になるような nonce
prev
一つ前のブロック
miner
あなたのID
msg
適当な文字列
ここに "a,b,2" とか書くと a さん b に 2kitcoin 移動する
(10% は手数料として miner に入る)
GET /blocks/:hash
json整形ブックマークレットのご紹介hogas.icon