---
title: "CryptoKittiesの開発元Dapper Labs、インフラにAlchemyを採用"
description: "自社製ソリューションや他社プロバイダーの利用をやめ、Alchemyのみに切り替えたことで、Dapper Labsは以前抱えていた課題をすべて解決しました。"
---

# CryptoKittiesの開発元Dapper Labs、インフラにAlchemyを採用

<ImageBlock
  src="https://media.alchemy.com/1703096808-dapper-hero.png"
  alt="Dapper Labs 導入事例ヒーロー画像"
  width={1500}
  height={996}
  priority
/>

Dapper Labsは、クリプト分野で最も成功したアプリの数々を手がけるチームだ。彼らのトレーディングコレクティブルゲームCryptoKittiesは、$28M\+を売り上げ、160万\+匹のkittiesを繁殖させた。DapperはCheeze Wizardsとiridescence(ブロックチェーン上で世界初のデジタル衣服)も生み出した。次にDapperが展開するのは、NBA Top Shotと、オープンワールド向けブロックチェーンFlowだ。現在、Dapper Labsはブロックチェーンの最も信頼性が高く一貫したビューを提供するためにAlchemyを利用している。

<StatsCardDeck
  items={[
    { title: "2 Devs", description: "Re-resourced" },
    { title: "7 Million", description: "Queries Per Day" },
    { title: "1231 ETH", description: "Transactions" },
  ]}
/>

## 他のソリューションでは、Dapperはダウンタイム、輻輳、nonce管理の問題に直面していた

Alchemyと提携する前、Dapper Labsの開発者は自前でノードを運用するなど、他のインフラソリューションを試していた。他の外部プロバイダーでは、Dapperはネットワーク全体での輻輳を経験した。パフォーマンスは不安定で、完全なダウンタイムや同期外れが何時間も続くこともあった。nonceサービスの質も悪く、Dapperはpending nonceの取得自体をやめ、代わりに自分たちでnonceを管理するようになった。

パフォーマンスがあまりにも悪かったため、Dapperは自ら対処に乗り出した。parityノードを試した後、Dapperは独自のgethノードクラスタを運用することに落ち着いた。初期セットアップは、2人の開発者がフルタイムで2週間かけて完了させたもので、ロードバランシングではなく即座にフェイルオーバーするノードクラスタを使っていた。Dapperのノードが同期外れになると、次のノードにフェイルオーバーする仕組みだった。Dapperは同時に1つのノードのみを参照するようにしており、これにより一貫性の問題は解消された。ノードを社内で運用することで安定性はやや向上し、一定の署名能力もDapperに与えられた。しかし、それでもノードは同期外れになったり、ピア接続を失ったりすることがあった。

> "CryptoKittiesで考えられるすべてのstateの問題が実際に起きた。ノードが同期外れになると、ユーザー体験とdApp全体がおかしくなった。"
>
> — ERIC LIN, DAPPER

問題の診断は難しかった。結局、原因は自前のgethノードの安定性にあった。Dapperは1回あたり1〜2時間のダウンタイムを経験していた。これを解決するため、Dapperはチェーンの先頭をEtherscanと照合するヘルスチェックを追加した。それでもピア接続は説明もなく切れることがあった。ある時点で、チームは社内運用とアウトソースの組み合わせを使っていた。それでも自前のノードの方がパフォーマンスは良かった。さらに、Dapperは自社のノードの問題をより早く修正できた。

ノードの問題はCryptoKittiesのユーザーに影響を与え、ユーザーは体験に不満を持つようになった。CryptoKittiesにはコミュニティマネージャーはいたが、個別の顧客問題をトラブルシュートするサポートチームはいなかった。ノードが壊れると、CryptoKittiesは処理が滞った。チェーンがデータベースより先行し、kittenの誕生が起きないという事態になった。トランザクションはチェーンには書き込まれているのに、CryptoKittiesのユーザーにはそれが見えなかった。例えば、あるCryptoKittyが2人に所有されているように見えたり、実際には既に売却済みの猫がオークションに出品されているように見えたりした。

Dapperチームはエンジニアが午前2時に叩き起こされる事態を受け、ローテーションを導入せざるを得なかった。ノードが同期外れになると、スクリプトが次のノードを指すようにする仕組みだった。このスクリプトは非常に重要で、ノードは真夜中を含めて常に障害を起こしがちだったからだ。フォークやアップグレードに関しては、CryptoKittiesチームは一度のアップグレードで済み、ハードフォークへの対応に煩わされることはなかった。

> "オンコール対応とノードのメンテナンスを担当していたのは常に1人か2人だけだったので、かなり負担の大きい作業だった。"
>
> — ERIC LIN, DAPPER

## DapperはAlchemyで問題を経験しておらず、リソースを他の領域に再配分できた

社内ソリューションや他のプロバイダーから切り替え、Alchemyのみを利用するようになって以来、Dapper Labsは以前のこうした課題をすべて解決した。Alchemyでは、開発者体験は優れたものだった。Alchemyへの移行があまりにも安定していたため、Dapperはこれを計画ロードマップに組み込んだ。

Dapper Labsチームは、ほぼすべてのリソースを他の領域に再配分することができた。ノード対応に当たっていた2人の開発者は、現在R&Dや他のゲーム・体験の構築に取り組んでいる。Alchemyチームのおかげで、Dapperは非常に手厚くサポートされていると感じている。さらに、Dapperチームはブロックチェーン開発における追加の側面、特にインフラの安定性について心配する必要がなくなり、安心感を得ている。
