UbuntuにNeo4jをセットアップして、ブロックチェーンのトランザクションを可視化する
Ubuntuバージョン
lsb_release -a
検証環境はこちら
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.2 LTS
Release: 24.04
Codename: noble
Javaのインストール
sudo apt update
Java21インストール
sudo apt install openjdk-21-jdk
インストール確認
java --version
インストール確認
openjdk 21.0.10 2026-01-20
OpenJDK Runtime Environment (build 21.0.10+7-Ubuntu-124.04)
OpenJDK 64-Bit Server VM (build 21.0.10+7-Ubuntu-124.04, mixed mode, sharing)
Neo4jインストール
リポジトリ追加
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
echo 'deb https://debian.neo4j.com stable latest' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
sudo apt update
apt list -a neo4j
Listing... Done
neo4j/stable 1:2026.01.4 all
neo4j/stable 1:2026.01.3 all
neo4j/stable 1:2025.12.1 all
neo4j/stable 1:2025.11.2 all
neo4j/stable 1:2025.10.1 all
neo4j/stable 1:2025.09.0 all
neo4j/stable 1:2025.08.0 all
neo4j/stable 1:2025.07.1 all
neo4j/stable 1:2025.07.0 all
neo4j/stable 1:2025.06.2 all
neo4j/stable 1:2025.06.1 all
neo4j/stable 1:2025.06.0 all
neo4j/stable 1:2025.05.1 all
neo4j/stable 1:2025.05.0 all
neo4j/stable 1:2025.04.0 all
neo4j/stable 1:2025.03.0 all
neo4j/stable 1:2025.02.0 all
neo4j/stable 1:2025.01.0 all
最新版をインストール
sudo apt install neo4j=1:2026.01.4
インストール確認
neo4j --version
Neo4jサービス起動
sudo systemctl start neo4j
sudo systemctl status neo4j
● neo4j.service - Neo4j Graph Database
Loaded: loaded (/usr/lib/systemd/system/neo4j.service; enabled; preset: enabled)
Active: active (running) since Sat 2026-02-21 02:41:01 UTC; 4s ago
Main PID: 176120 (java)
Tasks: 31 (limit: 9486)
Memory: 293.3M (peak: 293.5M)
CPU: 8.755s
CGroup: /system.slice/neo4j.service
├─176120 /usr/bin/java -Xmx128m -classpath "/usr/share/neo4j/lib/*:/usr/share/neo4j/etc:/usr/share/neo4j/repo/*" -Dapp.name=neo4j -Dapp.pid=176120 -Dapp.repo=/usr/s>
└─176177 /usr/lib/jvm/java-21-openjdk-amd64/bin/java -cp "/var/lib/neo4j/plugins/*:/etc/neo4j/*:/usr/share/neo4j/lib/*" -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow >
参考
- dataファイルのありか:
/var/lib/neo4j/data - 設定ファイルのありか:
/etc/neo4j/neo4j.conf
外部からのアクセス許可
外部からアクセスできるように設定変更を行う。
sudo ufw allow 7474
sudo ufw allow 7687
sudo nano /etc/neo4j/neo4j.conf
下記のコメント(#)を外す
#server.default_listen_address=0.0.0.0
再起動
sudo systemctl restart neo4j
Webブラウザで http://IPアドレス:7474/browser/ に接続

UserName, Passwordは以下の通り
| UserName | Password |
|---|---|
| neo4j | neo4j |
GUIからデータを作ってみる
ノードの作成
Webブラウザ内のプロンプトに下記を入力し実行
create (a:Person {name:'のび太'})
create (b:Person {name:'しずか'})
データベース全体の可視化
グラフを表示するには下記を入力し実行
MATCH(n)OPTIONAL MATCH(n)-[r]-()RETURN n,r
リレーションの作成
ノード間のリレーションを作成するには下記を入力し実行
MATCH (a:Person {name: 'のび太'}), (b:Person {name: 'しずか'})
CREATE (a)-[:夫婦]->(b);
データ削除
MATCH(n)OPTIONAL MATCH(n)-[r]-()DELETE n,r
または
MATCH (n) DETACH DELETE n
Globianceの返金トランザクションを可視化してみる
XDCScanからトランザクションデータを拾ってきて、データを反映するとこんな感じ
Node.jsでNeo4jを使ってみる
ゴール🏁
ブロックチェーンから特定のEOAについて、XDCの送受信記録をNeo4jを使ってデータベースに保存します。
NPM環境セットアップ
NPMがインストールされている場合はスキップ
cd ~
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.nvm/nvm.sh
nvm install stable --latest-npm
nvm alias default stable
Neo4jドライバインストール
mkdir neo4jTest
cd neo4jTest
npm install neo4j-driver
公式ドキュメント -> こちら
高速化のためのインデックス作成
CREATE CONSTRAINT address_unique IF NOT EXISTS
FOR (a:Address) REQUIRE a.address IS UNIQUE;
CREATE CONSTRAINT scan_state_unique IF NOT EXISTS
FOR (s:ScanState) REQUIRE s.id IS UNIQUE;
CREATE INDEX transfer_hash IF NOT EXISTS
FOR ()-[r:TRANSFER]-() ON (r.txHash);
記事は工事中です・・・



