kkmory;

エンジニア系ふわふわ大学生(だった)の雑記帳

bitcoin/bitcoinの安定版をMacOSでビルドするときの話

開発者は皆、一生に一度はBitcoin Coreを手元のMacでビルドしたくなるときがあるはず。今日はそんな時のための備忘録。

github.com


ハマったところ

安定版を入れたいときは該当のタグをチェックアウトしましょう。
masterをそのままビルドしたら開発版でした。

$ git checkout v0.18.0

手順

ビルドにつかうやつ

berkeley-dbは4系を使いましょう。

brew install automake berkeley-db4 libtool boost miniupnpc openssl pkg-config protobuf python qt libevent qrencode
ビルドする
# 適当なディレクトリにクローンしてくる
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin  

# 安定版を使いたいときは該当のタグをチェックアウトする
git checkout v0.18.0
./autogen.sh
./configure
make -j4
make install

# ちゃんとインストール先が見れたらOK
which bitcoind
which bitcoin-cli
which bitcoin-qt

今年を振り返り。

ということで、書きます。

 

総括

年始には人生初の開発アルバイトを経験し、それ以降2社でインターンとして開発を経験しました。実務での経験は新鮮で、技術的な部分はもちろん、プロジェクトの回し方とか社内サービスの開発とか1人で開発していては得られない部分を多く学ぶことができたかなと。

ただ、今年はどちらかというと上記のアウトプットよりもインプット中心の年になったかなという所感です。テック系の勉強会に行き始めたり、RubyKaigiに行ったり、Hi-Conに行ったり。2019年は2018年のインプットをもとに、コード書くとか記事書くとか、OSSにコントリビュートしてみるとか、アウトプットをもっと増やしたいですね。

では、1月ごとに2018年を振り返っていきましょう

 

1月

九州アプリチャレンジキャラバンで「福岡ビジネスデジタルコンテンツ賞2018審査会出場権」をいただき、博多駅で発表を行いました。しかしながら、いろいろと準備不足な部分があり課題をいろいろと感じました。

 

2月

めちゃくちゃ私用ですが、初の一人海外で台湾へ行きました。ご飯おいしかったし街の密集感とかカオス感とかフォトジェニックさがとてもエモかった(語彙力)
なお、髪色が迷走し始めたのはこのときです。

 

3月

TORYUMON学生スタッフ。
起業イベント「TORYUMON」の学生スタッフをやりました。福岡の学生スタートアップ界隈に知り合いが増えたり、ここで現在のインターンのお話をいただいて今に至ります。もっと言えば、起業を現実的に考え始めた原点です。

 

4月

1社目のアルバイト先を退職し、現職でのインターンをはじめました。
Ethereumやっていき!っていうテンションが一番高かったのはたぶんこの頃。Goを書き始めたのもこのころ。

 

5月

「何してたっけ?」と写真を見返していたら遊んでばかりいました。

 

6月

RubyKaigiです。初カンファレンスでRubyのことがもっと好きになったし、OSSにコントリビュートすることを具体的に意識し始めたのはこのころ。人とのつながりも増えました。

今年のRubyKaigiは福岡!!!ホームグラウンド!!!ということで早速チケットを取りました。遠征を考え中の方はホテルを早めに抑えないとアパホテル4万とか悲惨なことになりますのでどうぞお早めに...

rubykaigi.org

 

7月

期末考査とライブとボルダリング。たのしかった(語彙力)

 

8月

CyberAgentで1ヶ月の就業形インターン

Hi-Ether Meetup Fukuokaで登壇したり。

techmory.hateblo.jp

 

9月

前半は引き続きCAのインターン。Hi-Ether Meetup Tokyoに行ったり。
後半なにしてたっけ? 

techmory.hateblo.jp

10月

前回に続きTORYUMON学生スタッフ。前日に熱を出して大変でした。
ここで、弊社CEOがピッチで賞を複数受賞。起業を決意します。
あとはAppleWatch4をお買い上げ。

 

11月

Hi-Con。卒研や個人的に今後ウォッチしていきたい分野がなんとなく決まってきた感じです。最近コントラクト書いてないので2019年はなにかメインネットにデプロイしてみたいなぁと。

あとはGo-Con。Gopherくんかわいい。

techmory.hateblo.jp

 

12月

CA社のk8s勉強会に参加し、初めてk8sをさわってみたり。
後半はやけに体調崩しがちだった。
そして、27日に登記しました。続報はしばし待たれよ。

 

さいごに

どうぞ皆さま、よいお年をおむかえください。

さぁ2019もやっていくぞ!!!

 

Wantedlyのスカラシップ枠でGoConに行ってきた話(前編)

ウォンテッドリー株式会社さんのスカラシップ枠に採用していただき、Go Conference 2018 Autumn に参加してきました!

 

f:id:morrrry:20181126185544j:plain

カンファレンス後はブログでアウトプット!ということで前編と後編に分けてカンファレンスのレポート等々をやっていきます。前編では、僕が特に気になったセッションのまとめを、後半では前半で取り上げきれなかったセッションのサマリーを紹介できればと思います。

(Hi-Conのレポートはまだか?とツッコミが入りそうですがそれは一旦横に置いておくことにしましょう。)

今回は主に、Web API関連のセッションを取り上げたいと思います。


Microservices実装ガイド in Go at Mercari

株式会社メルカリさんのスポンサーセッション。

今回のセッションでは、Microserviceをどのように実装しているのかを中心に紹介していました。メルカリではMicroserviceを作る共通のテンプレートプロジェクトをcloneし、一旦 rm .git した上で再度git initして実装を行うフローになっているとのこと。

テンプレートプロジェクトは、gRPCサーバーがリクエストで飛んできたメッセージをそのままレスポンスするシンプルな機能に加え、ロギングや認証、ミドルウェアといった基本機能を加えた構成になっているということです。

このフローで開発を行うことによって、
・独立したチーム作ることを助ける(チームは独立すべき)
・別のチームに移っても構造が理解しやすい

また、Golangを採用して、
・ネットワークレイヤーが書きやすい
・それなりに早い
・シングルバイナリなので実行環境を作るのが楽

というメリットがあったそうです。

テンプレートプロジェクトが更新された場合は、Microservice側からテンプレートプロジェクトを cherry-pick することで対応しているそうです。

Protocol buffersについてはこちら

 

Linting, Slicing, and Dicing OpenAPI documents


OpenAPIからRESTやProtocol Buffersのデータを自動出力してくれるライブラリの紹介。今はginでAPIを書いて、Swaggerでドキュメントを書くみたいな感じで開発を進めていますが、OpenAPIからコードジェネレートしてくれるのはいいなーと思いました。使ってみよ。



Consider pluggable CLI tool implementation

 

スピーカーはウォンテッドリーの@izumin5210さん。
スライドがおしゃれでめっちゃ好き。

grapiは、Rails generate 的な、gRPCサーバーの scaffolding tool / template generator。glapiの generator 部分を pluggable にするために採用した手法、実装時に意識したことなどについての紹介です。

セッション中に何度か言及されていたRails generateのUXの良さはRailsを長くやっている身としては首が千切れるくらいにうなずける内容で、そんなGeneratorがGoにもあればなーという思いはずっと持っていました。

pluggable するために求める条件、類似のツールをさわってみた所感、そしてpluggableにするための実装といった一連の話は興味深かったです。grapiも使ってみたいなーと思いました。


API Testing the Hard Way

 

まぁテストは書きますよね。でも意外といい感じのサンプルって転がってないですよね。ということで、このセッションでは、ユニットテストからインテグレーションテストまで、Goのテストに関するノウハウを紹介されていました。

RailsRspec+Factorybotはテストを書く上で最強で、テストを書くのも苦にならないと思っているのですが、GoでAPIのテストを書くのはちょっとつらいなと感じています。このセッションで、APIのテストについて体系的に学べたのでとてもよかったです。

セッションで言及されていたライブラリはこの辺。

 

今日は一旦ここまで。

ちなみに、この記事は海風が吹き荒れる羽田空港の展望デッキで、タイムラプスを撮りながら書き上げました。各方面から何やってるんだって言われそうだ......

後編はあさってには書き上げたいと思います。
明日の勉強会の登壇資料が1byteもできていないので...

がんばるぞい