post Image
ビットコインウォレットの開発にはどれがいいか(JSON-RPC,bitcoinjs-lib,bitcore-lib)

ビットコインウォレットの開発はどれがいいか

良いところ悪いところ上げておきます

■bitcoind + JSON-RPCを使った開発スタイル

bitcoindの持つ機能をAPIとして呼び出せる

pros

  • ビットコインの仕様をあまりしらなくても開発ができるので楽
  • json-rpcのライブラリは各言語に用意されている
  • ビットコインウォレットの設定は設定ファイルで出来るから楽
  • アルトコインもAPIはほとんど変わらない(Proof of StakeなどのコインでAPIが追加になっていたりするくらい)

cons

  • 開発機にbitcoindをインストールする必要があるのでブロックチェーンの同期が大変
  • ビットコインのRPCは負荷耐性が低いので負荷に弱い。本格的にやる場合はジョブキューなど併用
  • 入金用ウォレットでもウォレット機能を使うので秘密鍵をもつ必要があり、セキュリティ的に危ない
  • HDウォレットにできないので秘密鍵の管理が発行したビットコインのアドレス分管理しなくてはならない

■bitcoinjs-libを使った開発スタイル

ビットコインの機能を細分化しJSのライブラリとして実装されたもの

pros

  • javascriptだけで完結するプログラミングができる(ブラウザで使える)
  • アルトコインの追加が楽(最初からlitecoin、dogecoinのパラメータ有り)
  • 入金用ウォレットに秘密鍵をもつ必要がない
  • HDウォレットの実装ができる
  • マルチシグの実装ができる
  • 高度な実装ができる

cons

  • 鍵の生成や署名の作成が遅い
  • トランザクションを自分で作らないと行けないので大変
  • おつりの管理とか考える必要がある
  • 手数料の計算をしなくてはならない
  • ビットコイン特有な攻撃対策を実装しなくてはならない
  • ビジネスで使うにはどこかにブロックエクスプローラーを用意する必要がある(公共のものはリクエスト制限があったりする)

■bitcore-libを使った開発スタイル

ビットコインの機能を細分化しJSのライブラリとして実装されたもの

pros

  • JSで高速に動くようにチューニングされている(それでも遅いことには変わりないけど)
  • javascriptだけで完結するプログラミングができる(ブラウザで使える)
  • 入金用ウォレットに秘密鍵をもつ必要がない
  • HDウォレットの実装ができる
  • マルチシグの実装ができる
  • 高度な実装ができる

cons

  • 素のライブラリでアルトコインの追加は想定されていないのでカスタマイズする必要がある
  • トランザクションを自分で作らないと行けないので大変
  • おつりの管理とか考える必要がある
  • 手数料の計算をしなくてはならない
  • ビットコイン特有な攻撃対策を実装しなくてはならない
  • ビジネスで使うにはどこかにブロックエクスプローラーを用意する必要がある(公共のものはリクエスト制限があったりする)

■bitcoinj

javaで実装されたspvクライアントライブラリ
スタンドアローンで起動可能

pros

  • javaだけで完結するプログラミングができる
  • HDウォレットの実装ができる
  • 高度な実装ができる
  • SPVクライアントなのでブロックチェーン同期が速い
  • bitcoindはどこかにつながればいいのでなくても良い
  • フルマネージドなので実装が楽

cons

  • 素のライブラリでアルトコインの追加は想定されていないのでカスタマイズする必要がある
  • 独自にUTXOのウォレットデータベースを持っているので問題が起きたときに追いにくい
  • 秘密鍵を保有しなければならない

『 Bitcoin 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。