0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WeaveDB 技術概要とアーキテクチャ詳細

Posted at

WeaveDBの目的と主要機能

Web3アプリケーションではブロックチェーンで信頼性を担保しつつも、データ保存には依然として中央集権的なデータベースに依存する場合が多く、これが単一障害点(Single Point of Failure)となり得ます。

WeaveDBはこの問題を解決するために、ブロックチェーン上で動作しつつWeb2クラウドDB並みの性能とスケーラビリティを備えた完全分散型データベースを目指して開発されています。Arweaveブロックチェーン上のスマートコントラクトによって実装されたNoSQLデータベースであり、開発者が自由に利用できる高速かつ無料の分散型データレイヤーを提供します。

主な特徴

  • 高速なクエリ性能とトランザクション処理
  • 低コストで恒久的なデータ保存
  • ガス代の事前支払いと即時ファイナリティ
  • マルチチェーン対応の暗号ウォレット認証
  • Firestoreライクな分散型API
  • クロスチェーンデータブリッジ
  • データ暗号化のサポート
  • 無制限のスケーラビリティ
  • オンチェーンインデクサによる高速検索
  • スケジュール機能(Cron)
  • クエリトリガー
  • 柔軟なアクセス制御
  • 外部データ連携とゼロ知識証明対応

コア技術スタック(言語・ライブラリ・外部サービス)

  • ブロックチェーン基盤: Arweave
  • スマートコントラクト実行環境: Warp Contracts(旧SmartWeave)
  • プログラミング言語: JavaScript / TypeScript
  • データ構造とインデックス: JSONドキュメント + B+ツリー
  • FPJSON: JSONベースDSLによるルール・ロジック記述
  • JSONスキーマ/検証: JSON Schemaライクな方式
  • 暗号アルゴリズム対応: secp256k1, Ed25519, RSA, BabyJubJub
  • 外部サービス/ネットワーク: Bundlr, Lit Protocol, SnarkJS, Circom

全体的なアーキテクチャ

WeaveDBはモジュール式の4階層アーキテクチャを採用:

  1. データソース層:コアデータ格納用スマートコントラクト
  2. インデクサ層:B+ツリーなどのインデックス構築
  3. クエリパーサ層:クエリ解析・最適インデクサ選択
  4. 公開API層:NoSQL/SQL/GraphQL型APIの提供

この構造により、同一のデータを複数のアプリケーションで異なるAPIやインデックスで共有可能。

スマートコントラクトとArweaveの統合

  • WeaveDBインスタンス = Arweave上の1スマートコントラクト
  • トランザクションはWarpのSequencer経由で即時確定(~10ms)
  • 状態はクライアント側で遅延評価(Lazy Evaluation)
  • 書き込みにはBundlr経由でETH等の支払いが可能
  • KVストレージアダプタで大規模データも対応可能
  • スマートコントラクトのアップグレード(Evolve)可能

データモデルと処理フローの概要

  • データモデル: Firestoreライクなドキュメント指向(JSON)
  • スキーマ定義: JSON Schema形式(任意)

書き込みフロー

  1. クライアントからSDK経由でadd/set/updateなどを呼び出し
  2. JSON形式で署名されたクエリがWarpへ送信
  3. Warp Sequencerが即時確定しArweaveへ書き込み
  4. コントラクトがFPJSONでルール・トリガーを実行
  5. 状態更新結果が確定される

読み取りフロー

  1. クライアントはSDK経由でgetなどのクエリを実行
  2. 状態はWarpノードまたはローカルで遅延評価
  3. B+木インデクサを通じて高速検索

ソースコード構成と主要モジュールの役割

  • コントラクト本体: Reducer関数による状態遷移ロジック
  • FPJSONエンジン: DSL実行エンジン。権限・トリガー・ロジック定義
  • 認証・暗号モジュール: ウォレット署名検証、マルチ鍵対応
  • インデックス管理モジュール: B+ツリー構築、クエリ最適化
  • Cron・トリガー処理モジュール: 定期実行/イベント連動
  • 外部連携・ZK検証モジュール: リレー署名・zkJSONによる検証
  • クライアントSDK/開発者ツール: JavaScript SDK、Webコンソール

WeaveDBのモジュール構成により、開発者はスマートコントラクトの複雑さを意識せず、高性能かつ安全な分散型データベースを利用可能です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?