Carp
Carp (opens in a new tab) は DcSpark が開発した PostgreSQL インデクサー です。 PostgreSQL とは、オープンソースで開発されている RDBMS(リレーショナルデータベース) の一つで、多くの開発現場で利用されているデータベースシステムです。
Carp を使用すると、指定した Cardano Node が所有するデータベースにアクセスし、内蔵されている Oura (opens in a new tab) がルールに基づいてデータを解析し、PostgreSQL に整理して保存してくれます。
このページでは Carp を使用する手順の一例を紹介します。
動作環境
- Ubuntu Server 22.04
- Rust
- PostgreSQL
1. Ubuntu の更新
はじめに、Ubuntu を最新の状態に更新します。
sudo apt update -y && sudo apt upgrade -y
更新後、以下のコマンドで PostgreSQL を含む依存関係をインストールします。
sudo apt install -y git tmux curl postgresql
2. Rust 環境構築
Carp は Rust で書かれているため、Rust の環境構築を行います。
Rust のツールチェーンであるrustup
をインストールします。
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
インストールの準備ができると対話形式のプロンプトに切り替わるので 1 の default オプション 1) Proceed with installation (default)
を選択し Enter キーを押してください。
インストールが正常に終わると、Rust is installed now. Great!
というメッセージが表示されるので、以下のコマンドを入力し環境設定を反映します。
source "$HOME/.cargo/env"
rustc --version
rustup
のバージョンが表示されれば正常にインストールされています。
3. PostgreSQL のデータベースを作成する
PostgreSQL を起動します。
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl --no-pager status postgresql
active (exited)
が戻り値に含まれていれば PostgreSQL が起動している状態です。
データベースとユーザーを作成します。以下コマンド 3 行目のcreateuser
コマンドを実行すると新規ユーザーのログインパスワードを入力するように求められます。
入力した値は以降の環境設定時に使用するので、必ず控えておいてください。
sudo -u postgres createdb carp_mainnet
sudo -u postgres psql -c 'ALTER DATABASE carp_mainnet SET jit_above_cost = -1;'
sudo -u postgres createuser carp
sudo -u postgres psql -t -d carp_mainnet -c 'GRANT ALL ON SCHEMA public TO carp;'
4. Carp を構成する
- ...
dcSpark の Github から Carp のリポジトリを取得します。
cd $HOME
git clone https://github.com/dcSpark/carp.git
Oura で接続する Cardano node と PostgreSQL のデータベースを構成します。
nano $HOME/carp/indexer/configs/oura.yml
以下のコマンドでaliasを設定して直感的な起動コマンドを登録できます。
echo alias carp="'cd $HOME/carp/indexer; cargo run -- --plan execution_plans/default.toml --config-path configs/oura.yml'" >> $HOME/.bashrc
source $HOME/.bashrc
設定後はcarp
と入力するだけで起動できるようになります。