情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

暗号通貨開発日誌 2日目

2016/02/27

ちょっと別企画の準備をしていたので日が空いてしまいましたが、開発日誌2日目を書きたいと思います。

今後暫くは暗号通貨の開発に専念したいと思いますので、開発日誌の更新頻度も上げられたらと思います。

さて、現在開発している汎用ブロックチェーンプラットフォームですが、オープンソースで開発していくつもりで、既にソースコードはGitHubで公開しています。

agora
https://github.com/pizyumi/agora

言語はScalaです。興味のある人は見てみると面白いかもしれません。

ライセンスは取り敢えずMITライセンスということにしておきますが、今後変更する可能性もあります。

ちなみに、名前は適当に決めました。ちょっとギリシャ語を名前に使ってみたいと思っていて適当に検索したらagoraという言葉が出てきて、言いやすいし覚えやすいしこれで良いかという感じで決まりました。

一応コードネームということにしておきましょう。後でもっと良さそうな名前に変えるかもしれません。


次の話。

最近やったことと言えば、POWブロックの生成ですかね。

現在のコードはコンパイルして実行するとコマンドの入力を待機するようになっていて、コマンドを入力すると色々な処理を実行することができるようになっているのですが、create pow genesis blockというコマンドとcreate pow normal blockというコマンドを新たに追加しました。

これはPOWのジェネシスブロックと普通のブロックを生成することができるコマンドです。生成されるブロックは「妥当」なブロックです。ブロックには妥当なブロックと不当なブロックがあります。要はそのプロトコルにおいて「まともな」ブロックが妥当なブロックでまともでない(システムが受理できない)ブロックが不当なブロックです。

妥当な普通のPOWブロックを生成するためには「採掘」という手順が必要なのですが(採掘について知らない人は適当に調べてください。ここでは説明しません)、このコマンドは採掘も行って妥当なブロックを生成します。

実際にコマンドを実行してみると下のような結果になります。

  • create pow genesis blockの場合
create pow genesis block
index: 0
id: 8305E2BF3AD2FE231BDCE53E2CBE112D644EEC6167F7A9DDBFE735363C35E6DC
parent id: <null>
trustworthiness: 0
seed: seed
timestamp: Thu Jan 01 09:00:00 JST 1970
target: 007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
nonce: 00
  • create pow normal blockの場合
create pow normal block
index: 759470321
id: 00465B3DCD774ED14E2EF2D95C53D348D8331AC7EAA0B93460214097CCAAC740
parent id: 9971810E238275C8C2E84CDEB4182C5388894AA9F439A6AE333C0873CA8F2D2E
trustworthiness: 11
data: 9D47B39D1853BE99A0F2EB57EE91842618FD4C30321EF803005702C2A0FCFFAE
timestamp: Thu Feb 25 17:36:41 JST 2016
target: 007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
nonce: 0442

ブロックを生成することができるようになったので、この部分とブロックチェーンの部分を繋げれば、1ノードでのブロックチェーンのシステムを作ることができるようになります。

次はその辺りを作りたいと思います。

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-, 暗号通貨, 開発