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?

Neo4jでブロックチェーンを可視化してみる

0
Last updated at Posted at 2026-02-21

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/ に接続
スクリーンショット 2026-02-21 12.22.18.png

UserName, Passwordは以下の通り

UserName Password
neo4j neo4j

Connectで接続すると、パスワード変更が強制となので変更する
スクリーンショット 2026-02-21 13.47.22.png

初期画面
スクリーンショット 2026-02-21 13.49.30.png

GUIからデータを作ってみる

ノードの作成

Webブラウザ内のプロンプトに下記を入力し実行

create (a:Person {name:'のび太'})
create (b:Person {name:'しずか'})

データベース全体の可視化

グラフを表示するには下記を入力し実行

MATCH(n)OPTIONAL MATCH(n)-[r]-()RETURN n,r

スクリーンショット 2026-02-21 18.03.31.png

リレーションの作成

ノード間のリレーションを作成するには下記を入力し実行

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からトランザクションデータを拾ってきて、データを反映するとこんな感じ

スクリーンショット 2026-02-21 20.43.59.png

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);

記事は工事中です・・・

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?