Gocoin

提供: tezos-wiki
移動先: 案内検索

Go言語で書かれたオープンソースのBitcoinソリューション(golang) Goコンパイラが動作するすべてのプラットフォーム用に構築できます。 独自のライセンスを使用しますが、非営利目的での使用は自由です。

アーキテクチャ[編集]

Gocoinのアーキテクチャは、(Satoshiクライアントの)リファレンス実装とはまったく異なります。

ライブラリ[編集]

btc / chain / script[編集]

ソフトウェアの核心は基本的にブロックチェーンプロトコルパーサを提供するライブラリです。これには、スクリプト解析、ECDSA署名検証だけでなく、アドレス符号化、標準署名の解析、または特定のトランザクションの特定の入力に署名する必要のあるハッシュの抽出なども含まれます。

これは、比較的大きなライブラリであり、多くの有用なビットコイン機能を含んでいます。

パッケージ内には、永続的なストレージ・データベース(blockdb.go)のブロックもあります。これは索引付きの単純な単純ストレージ(拡張可能)です。それはスナッピー圧縮を使用して、ディスク容量の約30%を節約できます。

utxo[編集]

コアライブラリはUTXOデータベースに直接接続します。 このために、Gocoinは独自のデータベースエンジンを使用しています。これはBitcoinのUTXOデータベースの特定の特性に対応するように設計されています。

secp256k1[編集]

楕円曲線操作sipaによるsecp256k1ライブラリの速度を上げるために、Goに移植されました。

オンラインクライアント[編集]

オンラインクライアントは、常に実行されるサーバーソフトウェア(またはピアツーピアノード)の一種です。

ネットワーク関連の通信を処理し、コアlibに新しい受信ブロックチェーンデータを送り、ウォレットのアドレスの残高を監視し、トランザクションメモリプールとピアデータベースを管理します。また、インタラクティブなユーザーインターフェイスも提供します。

オフラインウォレット[編集]

ウォレット・アプリケーションは、秘密鍵をシード・パスワードから作成し、シード・パスワードとのトランザクションに署名します。 また、秘密鍵でテキストメッセージに署名し、生トランザクションをデコードすることもできます。

クライアントとは異なり、ウォレットは、継続的に実行されていることを意味するアプリではありません。 ユーザーは要求されたタスクを実行します。ウォレットはジョブを実行して終了します(コマンド・プロンプトに戻ります)。

その他のツール[編集]

また、Gocoinビットコインソフトウェアの不可欠な部分である、多かれ少なかれ便利な一連のツール( "'github.com/piotrnar/gocoin/tools' ')もあります。

たとえば、 btcversig 'はビットコインの署名の有効性を検証できます。これは参照クライアントの' verifymessage RPC-APIの代わりです。

一方、ツール type2determ 'は、ウォレット(プライベートキー)にアクセスする必要なく、タイプ2確定的アドレスを計算することができます。

機能[編集]

GocoinにはオリジナルのBitcoinクライアントとは区別される独自の機能がいくつかあります。

ノード/クライアント[編集]

  • 未使用の出力はすべてシステムメモリに保存されます。
  • P2PKH、P2SHまたはP2WPKHアドレスの現在の残高は、迅速なアクセスのためにメモリに保持されます。
  • Webインターフェイス(Webブラウザから)で監視および制御できます。
  • コールドストレージウォレットの独自の実装で動作します。
  • Webインターフェイスを使用すると、特定の入力(Coin Control)だけでなく、複数のトランザクション([[P2SH]))から生トランザクションを作成することができます
  • ブロックは圧縮形式([1]圧縮を使用)でディスクに保存され、領域の約20%を節約します。ディスクから(完全にまたは部分的に)パージすることもできます。
  • バージョン '1.6.4' まではステルスアドレスの監視とフェッチのバランスをサポートしていました([Dark Watlet]で実装されています)
  • 1.9.4以降のバージョンでは、ウォレットとクライアントの両方がネイティブsegwitアドレス(bech32としてエンコードされたP2WPKH)をサポートしています。

ウォレット[編集]

  • セキュリティ上の理由から、決してネットワークに接続されたことのないPCで使用されることになっています。
  • ウォレットは決定論的でシード・パスワードに基づいています。パスワードを覚えている限り、バックアップは必要ありません。
  • さらに、既存のBitcoin Walletから秘密鍵をインポートすることもできます([[Private key#Base 58 Wallet Import format | Base 58 Wallet Import format]形式にする必要があります)。
  • ハードウェア要件は非常に低い。に実行することができますすなわち、ラズベリーパイ
  • Type-2確定キー/アドレスを生成することができます
  • P2SH multisigトランザクション( OP_CHECKMULTISIG opcodeを使用するトランザクション)の署名を部分的にサポートします。
  • ダークウォレットに実装されたステルスアドレスへの支出をサポート

ノードレスモード[編集]

実行中のクライアント・ノードを持たなくても、Gocoinのウォレットを使用することができます。これは、ノードが非常に高度なハードウェアを必要とし、最初のブートストラップに多大な時間を必要とするため、便利なことかもしれません。

そのような場合、必要なバランスファイルは、一般的なブロックエクスプローラから「 'balio' 」というツールで取得されます。

要件[編集]

クライアント[編集]

64ビットプラットフォームと少なくとも8GBのシステムメモリが必要です。

ブロックチェーンデータを格納するファイルシステムは、4GBを超えるファイルを処理できる必要があります。

ウォレット[編集]

ウォレットアプリにはハードウェア要件はほとんどありません。特定のアーキテクチャー用にビルドすることができれば、そこで動作するはずです。

ゴーカインの財布は、ラズベリーパイのモデルAでも使用されています。

セキュリティ上の理由から、暗号化されたスワップ・ファイルを使用して、暗号化されたファイル・システムでWalletを実行することを強く推奨します。

制限事項[編集]

  • GUIはありませんが、オンラインノードにはGUIのように動作するWebインターフェイスがあります
  • IPv6なし
  • UPnPなし
  • 確認されていない取引はサポートされていません(残高には表示されません)
  • [[Protocol_specification#filterload、filteradd、filterclear、merkleblock |ブルームフィルタ]プロトコル([[BIP 0037]))と mempoolコマンド
  • アラートメッセージ
  • マルチスティックステルスアドレスのサポートはありません(まだ)

歴史[編集]

ゴコインは私的な目的のために一人の人間によって書かれました。

ソフトウェアの最初の一般公開は、2013年5月にBitcointalkフォーラムで発表されました。<ref> https://bitcointalk.org/index.php?topic=199306.0 </ ref> それ以来、ソフトウェアは積極的に維持され、さらに発展し、新しい機能を備え、さらに最適化され、問題か​​ら浄化されています。

クライアントがブロックチェーンに追いつくことができなかったのは、参照実装が受け入れるブロック(トランザクション)を拒否させていたチェーン解析プロトコルの実装の違いのためです。いずれの場合も、問題は1日以内に修正されました。第1のケースは2013年7月に起こり、修正はバージョン0.5.7で導入されました。 2回目は2014年3月でした。修正はリリース0.9.3で行われました。

外部リンク[編集]

参考文献[編集]

<リファレンス/>

カテゴリ:ソフトウェア Category:Clients カテゴリ:オープンソース カテゴリ:財布 カテゴリ:Google Go