最近したblockchain + front endあたりのキャッチアップ
友だちに誘われてBlockchainなスタートアップに入ってみたんだけど、2週間が経過してだいぶ熟れてきた。どうやって何をキャッチアップしていったのかメモしてく。
P2P 周り
Blockchainそのものの前に、P2Pって何?っていうところから理解が必要だったので軽く調査した。Datprojectのtech stackを深掘りしていくことで全体像を把握していったんだけど、一番の疑問だったネットワークへの参加部分が一番興味深かった:
合わせて @kyorohiro さんのgitbookにも助けられた。ありがたや。
ついでに、先日リリースした Node.js のための小さな package manager の depjs では、P2P network 上にある dependency を install できるように Dat protocol のサポートをした。あと、今朝 Dat project のリーダーの Max が開発チームに参加してくれたので、もうひとがんばりしていきたい。
Blockchain 周り
Web3, ethereumjs, ethjsを中心に読み進めつつ、PoW/PoSの概念やICOの仕組み、ERC20とsolc-jsとかを順番に読んでいった。今は、周辺技術のOSSにpatchを書きはじめてるんだけど、これがまた飽きない。来年末くらいまでは少なくとも楽しめそう。
自社のCrypto Currency構築
まだリリースしてないプロダクトなのであんまり説明できないんだけど、0x protocol とか SWAP protocol あたりが必要でWhite paperを読んで、実装がない部分は自分たちで実装していってる。これも飽きない。まだ実装がない分野って面白い。
Front Endそのもの
最後に仕事でちゃんと使ったのBackbone.jsだったけど、Angular2 + ngrx + TypeScript にはすんなり入れたように思う。Decoratorsの@Effectとか@Injectableが分かったあとは、reducerを中心に考えることができるようになって、自分たちのアプリに必要な機能の設計をside effectを強く意識しながら0からできるようになった。
angular-cliがpeerDepsとdepsのconflictが非常に多かったので、そのうちpatch書いていきたい。
テスト環境
Front end 周りは protractor を使うことで、わざわざ手書きで document.querySelector
とかしなくても良くなったのでe2eテストは非常に快適。Smart contract周りは、Rinkby networkに向けてtransactionするテストを書いてるんだけど、今月中に testrpc と truffle を試して徐々に移行していく予定。
まだまだできることが大量にあるからあんまり人に言いたくないんだけど、ETHホント面白い。この調子でのめり込んで、そのOSSコミュニティに貢献していきたい。