Open4

ラズパイでカルダノのデータベース作成まで

YoshikiYoshiki

環境

  • Raspberry Pi 4b
  • OS : Ubuntu 22.04 Server

PostgreSQL 環境構築

1, システムアップデート

sudo apt update -y && sudo apt upgrade -y

2, PostgleSQL インストール

sudo apt install -y postgresql

3,バージョン確認

psql --version

バージョン情報が返ってくればインストール完了🙌

YoshikiYoshiki

PostgreSQLを始める前に各種設定とsystemctlを使用したサービス確認コマンド等

PostgreSQL起動確認

sudo systemctl --no-pager status postgresql
  • active (exited)が戻り値に含まれていれば起動中。

サーバー起動時にPostgleSQLが自動で起動するようにする

sudo systemctl enable postgresql
YoshikiYoshiki

CardanoのインデクサーであるCarpを使用したいのでCarpのドキュメントのコマンドも引用します。

PostgreSQL ユーザー作成

sudo -u postgres createuser carp

作成したcarpにパスワードを設定する

sudo -u postgres psql -c "\password carp"

データベース作成

sudo -u postgres createdb carp_mainnet

Carp ドキュメントには以下のコマンドが手順に書かれている。
jit_above_costは、PostgreSQLのクエリプランナーによるジャストインタイム(JIT)コンパイルを制御するための設定で、コストを指定するもの。jit_above_cost を -1 に設定することで、JITコンパイルを無効にすることができる。(ChatGPT)

sudo -u postgres psql -c 'ALTER DATABASE carp_mainnet SET jit_above_cost = -1;'
YoshikiYoshiki

SQLプロンプトに切り替えてデータベースの一覧を表示したりSELECT文でクエリを実行したりする方法。

pstgresというロール名でSQLプロンプトに入る

sudo -u postgres psql

### 戻り値が以下のように変わったら成功
postgres=#
  • 現在のデータベース一覧を表示するにはpostgres=#の状態で\lを入力してEnter。
  • ロールの一覧を確認する場合はpostgres=#の状態で\duを入力してEnter。

carpのドキュメント通りに実行している場合はcardano_mainnetという名前のデータベースが表示される。
SQLプロンプトでcardano_mainnetのデータにアクセスするには、まずデータベースに入る必要がある。
SQLプロンプト上で\c carp_mainnetを入力しEnrerを押すと、データベース内に入りcardano_mainnet=#という表示に切り変わる。

  • データベースにどのようなテーブルがあるかを確認するには\dtと入力しEnter。
### Carpで作成したcardano_mainnetデータベースのテーブル一覧の例。

carp_mainnet=# \dt
                List of relations
Schema |           Name            | Type  | Owner 
--------+---------------------------+-------+-------
public | Address                   | table | carp
public | AddressCredentialRelation | table | carp
public | AssetMint                 | table | carp
public | Block                     | table | carp
public | Cip25Entry                | table | carp
public | Dex                       | table | carp
public | NativeAsset               | table | carp
public | PlutusData                | table | carp
public | PlutusDataHash            | table | carp
public | StakeCredential           | table | carp
public | Transaction               | table | carp
public | TransactionInput          | table | carp
public | TransactionMetadata       | table | carp
public | TransactionOutput         | table | carp
public | TransactionReferenceInput | table | carp
public | TxCredentialRelation      | table | carp
public | seaql_migrations          | table | carp
(17 rows)

carp_mainnet=# 
  • SQLプロンプトを終了するには\qを入力しEnter。