コインベースのブロックチェーンインフラストラクチャ

コインベースには、独自のセキュリティとインフラストラクチャの要件がいくつかあります。これらの要件の1つは、当社のインフラストラクチャ内のすべてのサーバーが短期間(30日以内)で不変であることです。ほとんどのアプリケーションのデプロイプロセスはかなり簡単です。12要素アプリはロードバランサの背後にブルー/グリーンデプロイされています。このプロセスは、ブロックチェーンノードを検討するときに、はるかに困難になります。

ブロックチェーンノードは、ネットワーク全体で状態の更新を検出、検証、および中継します。私たちがサポートしているさまざまな暗号通貨ネットワークに耳を傾けます。誰かがCoinbaseに資金を送ったとき、私たちはノードをリッスンすることによってその取引を検出し、誰かがCoinbaseから資金を送ったとき、私たちは私たちのノードの1つを通してその取引を放送します。そのため、ブロックチェーンノードを効果的に管理できることは、当社の中核事業運営にとって重要です。

高レベルでのブロックチェーン展開の構造は次のとおりです。

単一のEC2インスタンスから始めます。インスタンスが起動して準備ができたら、ノードバイナリを起動できます。




空の(新しい)ノードがEC2にスピンアップします。

ノードが起動すると、ネットワーク上の他のノードに接続します。




新しいノードはネットワークにアクセスし、相手となる他のノードを見つけます。

ネットワーク上の他のノードはチェーンのコピーを完全に同期しており、ネットワークを介してブロックの送信を開始します。




これらのノードには特定のチェーンのコピーがあり、完全に同期していると仮定すると、ブロックにワイヤを送り始めます。

最初のブロックが送信され、新しいノードがそれを検証します。




新しいノードは1ブロックを取得して検証します。

さらなるブロックが新しいノードに送信されます。




その後、ノードは別のブロックを取得します。

すべてのブロックは送信され、検証され、そして今や完全に同期している。




すべてのブロックが送信され、検証され、完全に同期するまで。

フルノードは通常、ブロックチェーンの完全コピーをディスク上に保持します。多くの場合、これはネットワーク上で同期する必要がある何百ギガバイトにもなります。特定のチェーンと実装によっては、完全同期にかかることがあります。!暗号通貨エコシステムの開発のペース、インフラストラクチャの安全性と信頼性の制約、およびノー​​ドのアップグレードが急務となっていることを考慮すると、すべての展開でネットワークから完全に同期することは安全ではありません。早く。その結果、Snapchainと呼ばれる新しいブロックチェーンノードのバックアップおよび展開システムを設計しました。




EC2のgethノードでのディスク使用量が952GBの使用率を示しています。

Snapchainは2種類のブロックチェーンノードを起動します –スナップショットノードはチェーンを完全に同期し、EBSボリュームの形式でコピーを作成します。長命ノードはこれらのEBSボリュームを使用して、数日ではなく数分で展開を完了します。 Snapchainを使用すると、バージョンアップ、ネットワーク内のイベントに対応して、または新しい種類の構成に対応して開発する場合と同様に、ブロックチェーンノードをすばやく迅速に展開できます。

これら2種類の設定がどのように機能するかについての詳細のいくつかに興味があるなら、あなたはビデオを見ることができます(始めます22時08分

AWSへのSnapchainの展開により、Network Load Balancers(NLB)を使用してエンジニアのニーズに合わせて拡張することができます。これらのNLBにより、静的IPを持ち、需要に合わせて拡張し、青/緑の展開を実行できます。

あるバージョンから別のバージョンへの典型的な配置(例は次のとおりです。1.0.01.1.0)次のように動作します。

ノードは、チェーンのバイナリ、ノードとやり取りするためのAPI、および同期されたチェーンを持つデータボリュームとともに、NLBの背後にあります。




NLBの背後に単一ノードを持つ現在のアクティブ展開。

実際には、ノードを複数のアベイラビリティゾーン(AZ)に配置することによって、冗長性を確保するために複数のノードが存在する可能性があります。




NLBの背後に複数のノードを持つ現在のアクティブ展開。

新しいインスタンスが起動され、ブロックチェーンの構造の下で前述したフローに従います。




新しいインスタンスが起動し、同期しています。

新しいインスタンスの準備が整い、正常になったら、それがNLBに追加されます。




新しいインスタンスは現在、NLBの背後にあります。

一連のチェックに合格すると、新しいバージョンは切り取られる準備が整い、NLBを使用することでこれが簡単になります。




チェックに合格し、NLBは新しいバージョンに切り取られます。

展開の最終段階では、開始したときと同じようにNLBの背後にインスタンスがあります。




新しいバージョンを表示した最終的な導入状況。

さらに、Snapchainはブロックチェーンに依存しないインフラストラクチャです。主な設計目標の1つは、ブロックチェーン固有のコードとインフラストラクチャの量を最小限に抑えることでした。こうすることで、新しいブロックチェーンノードをもっと早く追加することができます。




13分以内に展開されているbitcoindを表示しています。

Snapchainやそのような製品に興味をお持ちですか?私たちは狂ったように雇っています!暗号通貨に興味があるだけなのか、経験豊富なブロックチェーン開発者なのかにかかわらず、coinbase.com/careers何かがあなたの興味を刺激するかどうかを見るために。我々はいくつかの開口部を持っています。シニアインフラエンジニア。デジタル通貨でできることのほんの一部に過ぎません。オープンな金融システムを構築する手助けをしてください。

特に明記しない限り、ここに提供されるすべての画像はコインベースによるものです。

コメントを残す