githubリポジトリ変更

コピペ部分を消す
githubの活用

ドキュメント書く

Javadoc

やること

dl4jのインポート
サンプルデータを見る
形式を参考にデータを作成するプログラム
txのoutputに載せるアドレスをaesで暗号化しておけば、追跡不能になるかも。
スマートコントラクトについて調べて、実装できるものを作る
複数サーバで動かす
常時動かせるように調整

今日やること

ブラックリスト
複数ノードでバックエンド
マイニングアルゴリズムとtofuslot当たり演出
アビトラbot半分くらい作る

利点

銀行とかが利用するなら、ブロックチェーンのデータを非公開にしたい
どのデータを公開し、非公開にするか選べる

ブロックチェーンと何が違うか

ブロックチェーンといってもいいが、Bitcoinをクローンしたものではないため少し違うか
hyperledgerとかmijinとかに近いかも
スケーラブルなところが一番の利点か
JavaからScalaに変更も容易そうだし
ノードすべてが同じことをするのは無駄なので、分担を決める。
少し中央集権だが、どの仮想通貨も中央集権的な部分はあるので妥協する。
マイニングはユーザが行えるため、ユーザにも権限がある。権限がもっと明確にあればいいか。例えばシステム改変のための投票制度など株式のように。
PoI、ハーべスティングと何が違うか、DASHのスーパーノード?と何が違うか
スマートコントラクトが使えるのは当たり前
Webリクエストができるなど外部との通信を行えたら新しい。
使い道としてはWebサイトの魚拓とタイムスタンプを自動的に保存しておくなど
Webサイトに埋め込んで、支払いが簡単にできるウィジェットのようなものがあったら便利
Webで使われていることを前提にしているので開発が楽か。
これからWebで使われるサービスが増えていくだろう。

やること

Client
アドレスの生成をもっとセキュアに
アドレスのバックアップを画像で(ほぼできた)
マイニング成功時にあたり演出
マイニングのtargetを複数設定してマイニングプールのように
ハッシュ関数をもっとメモリを使うものに

これからやること2

Backend
difficultyの調節
UTXOのバージョン管理をFrontendに知らせるか?

Frontend
IPアドレスでのマイニングの制限
ブラックリストへの追加と削除
他ノードの管理(全部にアクセスするのか?)
HashServer
送金リクエストが来たらアクセスするためのTXHash?を返す?txSignatureでいいかも
TXHash?txSignature?でアクセスきたら承認数とか送信元/先を返すAPIのような働き

これからやること

Backend
addTransactionでUTXOが変わったらFrontendへBroadcast
(Workと同時だからNetworkObjectに二つ含めてもいいかも)
承認数が6を超えたらUTXOから削除
承認数がまだ6に達していないが既に使用したUTXOであればエラーとする
Blockがフォークしたとき、どちらも管理する。UTXOも、どこで使われたのか管理する。6承認で削除する。
承認待ちブロックMap<承認数, Map<前のブロックハッシュ, Map>>>とMapでできそう

できたこと

ブラウザでアドレスからUTXOリストを取得
宛先アドレスと数量を指定して必要なUTXOリストを添えてHashServerに送信
HashServerはUTXOが正しいか確認して、TX作成してBackendへ送信
BackendはUTXOが正しいか確認して、Scriptが正しいか確認して、ブロックへ追加
正しいTXなのでBackendでシェア。blockが変わりMerkleRootが変わったのでWorkをFrontendに送信。