tktechblog

日々の記録用です。blockchain,bitcoin,ethereumメインです。

mining/geth/開発環境

今日は基本的にはtestnet上でのgethの調整をしていた。

反省点

  • 開発始める前の時点で明確な完成像がぼやけていた気もする。
  • kpiが以前に比べて不明確。
  • 目標設定の具体化と定期的な振り返りのタイミングを明確化した方が良いなと感じた。kgi/kpi/kdi/todoとpdcaを複数年、年次、四半期、月次、週次、日毎に見返すために大枠をしっかりと形作り直した方が良い気もした。
  • わかっていると思っているようなことでも、いざコードレベルで分析をしたり、実際に実装をしてみると理解のぼやけてるポイントがわかってきたりする。関連している事柄の何が重要な意味を持っているのかもわかるようになる。

geth

今日はgethを結構触っていた。deploy時のgas不足を多く指摘されていた。また、miningの同期がしっくりいくときといかない時があるので、その部分の解像度をあげる努力をした方が良いなとも感じた。

見るところ

  • gas不足
  • security
  • 一つ一つのwordの意味
  • go-etherのレポジトリとsled

parity

parityに関してはerrorが出るのはいつも同じところで f:id:doobiedo222:20180819203840p:plain このparity signer:pendingというところ。parityもpolkadotへの事も考えて深く調べていきたい。また、チェーンの同期自体はこちらの方が早いので、gethやinfuraとの特性も深掘りしつつ、それぞれを実装している中で使い分けていきたい。

vyper

vyperに関しては、まだ発展途上な感は否めないが、一応コントラクトの実装例などもあるのでpythonベースという事で触っていきたい。

  • pythonなので環境依存の問題が多くあるので、virtualenvのような仮想環境は使う。また、macoslinux場で開発するのかは全体通しても考えた方が良いかも

全体の開発

  • nodeの同期のことも考えてクラウド(aws)などでチェーン同期することを検討したい。プライベート、テストネットくらいなら良いが、メインネットくらいになってくると結構きつい
  • コンテナ化するかとか、macoslinux上で開発するかなど考える。gaeベースでインフラを構築しつつ、web部分はpython(django)かruby(rails)でサーバーサイドで作って、データもs3とかで持たせておく?gcsとかでも良いかも。また、コンテナ化することを考えてdockerfileでまとめておくか、vagrantでbox単位で管理するか、gkeで全てgcp上で管理するかなども考えても良いかもしれない。
  • contractの発行や検証に関しては、vimatomのようなeditorよりもremixの方が良いので、細かい作業はbrowser-solidityでやる。そのため接続手順を復習。
  • コードを多めにかく場合はatomvimでかく。
  • 全体のアーキテクチャーテンプレート(基本形)は自分の中で作っておく。

やること

  • KPIの明確化、振り返り周期の設定(PDCAサイクルを立てる)
  • KPIの達成へ最短距離で近づけることに集中する。それ以外のことは全てやらない。やるべきことに集中して、やる必要のないことを切り離す。
  • 振り返りの段階で、KPI達成に影響していることなのか、達成に意味が薄い、意味がないものなのかを判断する。良いPDCAのサイクルの構築と、サイクルを多く回すこと、決めたことは必ずプロトタイプではなく、作品としてリリースできるところまで持っていくPDCAサイクルをやりきる。
  • よくわからないことはとりあえずアウトプット→思考の流れで解像度を高める。
  • あとは気合。